[Kotlin] ํด๋ž˜์Šค

2020. 8. 27. 18:51ยท๊ฐœ๋ฐœ ํƒ€์ž„์บก์А/Kotlin

ํด๋ž˜์Šค ์„ ์–ธ

//ํด๋ž˜์Šค ์„ ์–ธ
class Person {

}

//์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
val person = Person()

#ํด๋ž˜์Šค๋Š” ๋ถ•์–ด๋นต ํ‹€์— , ์ธ์Šคํ„ด์Šค๋Š” ๋ถ•์–ด๋นต์— ๋น„์œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ž๋ฐ”์—์„œ๋Š” newํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€๋งŒ ์ฝ”ํ‹€๋ฆฐ์—์„œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

์ƒ์„ฑ์ž

class Person(var name: String) {
   
}

# ๋นˆ ์ƒ์„ฑ์ž๋ฅผ ๊ฐ€์ง€๋Š” ํด๋ž˜์Šค

 

 

class Person {
    constructor(name: String) {
        println(name)
    }
}

#์ƒ์„ฑ์ž์—์„œ ์ดˆ๊ธฐํ™” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๋ฉด constructor๋กœ ์ƒ์„ฑ์ž๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ๋ธ”๋ก์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

์ด ์ƒ์„ฑ์ž๋Š” name์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

class Person(name: String) {
    init{
        println(name)
    }
}

#์œ„ ์ฝ”๋“œ๋ฅผ ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

init๋ธ”๋ก์— ์ž‘์„ฑํ•œ ์ฝ”๋“œ๊ฐ€ ํด๋ž˜์Šค๋ฅผ ์ธ์Šคํ„ด์Šคํ™”ํ•  ๋•Œ ๊ฐ€์žฅ ๋จผ์ € ์ดˆ๊ธฐํ™”๋œ๋‹ค.

 

ํ”„๋กœํผํ‹ฐ

//ํด๋ž˜์Šค ์„ ์–ธ
class Person(var name: String) {
  
}

//์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
val person = Person("๋ฉ‹์Ÿ์ด")
person.name = "ํ‚ค๋‹ค๋ฆฌ" //์“ฐ๊ธฐ
println(person.name) //์ฝ๊ธฐ

# ์†์„ฑ๊ฐ’์„ ์„ฑ์ •ํ•˜๊ฑฐ๋‚˜ ์–ป์œผ๋ ค๋ฉด gettet/setter ๋ฉ”์„œ๋“œ ์—†์ด ๋ฐ”๋กœ ์ (.)์„ ์ฐ๊ณ  name ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์ ‘๊ทผ ์ œํ•œ์ž

public : ์ „์ฒด๊ณต๊ฐœ, ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ์“ฐ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ public์ด๋‹ค. (์ƒ๋žต๊ฐ€๋Šฅ)

private : ํ˜„์žฌ ํŒŒ์ผ ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

internal : ๊ฐ™์€ ๋ชจ๋“ˆ ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

protected : ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

class A{
    val a = 1 //public
    private val b = 2
    protected val c = 3
    internal val d = 4
}

 

ํด๋ž˜์Šค์˜ ์ƒ์†

//Animalํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š” Dogํด๋ž˜์Šค
open class Animal {

}

class Dog : Animal(){

}

#์ฝ”ํ‹€๋ฆฐ์—์„œ์˜ ํด๋ž˜์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์†์ด ๊ธˆ์ง€๋œ๋‹ค. ์ƒ์†์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด openํ‚ค์›Œ๋“œ๋ฅผ ํด๋ž˜์Šค ์„ ์–ธ ์•ž์— ์ถ”๊ฐ€ํ•ด์•ผํ•œ๋‹ค.

 

open class Animal(val name: String) {

}

class Dog(name: String): Animal(name) {

}

#์ƒ์†๋ฐ›์„ ํด๋ž˜์Šค๊ฐ€ ์ƒ์„ฑ์ž๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ์ด๋ ‡๊ฒŒ ์ƒ์†๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

 

๋‚ด๋ถ€ ํด๋ž˜์Šค

class OuterClass {
    var a = 10
    
    //๋‚ด๋ถ€ํด๋ž˜์Šค
    inner class OuterClass2 {
        fun something(){
            a = 20 //์ ‘๊ทผ๊ฐ€๋Šฅ
        }
    }
}

#๋‚ด๋ถ€ ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•  ๋•Œ inner์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋งŒ์•ฝ inner๊ฐ€ ์—†๋‹ค๋ฉด a = 20์œผ๋กœ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์ถ”์ƒ ํด๋ž˜์Šค

abstract class A {
    abstract fun func()
    
    fun fnuc2(){
        
        
    }
}
class B: A() {
    override fun func(){
        println("hello")
    }
}

val a = A() //์—๋Ÿฌ
val a = B() //OK

#ํด๋ž˜์Šค์•ž์— abstractํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด ์ถ”์ƒ ํด๋ž˜์Šค๋กœ ์ •์˜ํ•œ๋‹ค.

์ถ”์ƒํด๋ž˜์Šค๋Š” ์ง์ ‘ ์ธ์Šคํ„ด์Šคํ™” ๋ถˆ๊ฐ€๋Šฅ, ๋‹ค๋ฅธ ํด๋ž˜์Šค๊ฐ€ ์ƒ์†ํ•˜์—ฌ ๋ฏธ๊ตฌํ˜„ ํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค. 

์ถ”์ƒ ํด๋ž˜์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž๋ฐ”์™€ ๋™์ผํ•œ ํŠน์„ฑ์„ ๊ฐ€์ง„๋‹ค. 

'๊ฐœ๋ฐœ ํƒ€์ž„์บก์А > Kotlin' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Kotlin] null ์ฒ˜๋ฆฌ  (0) 2020.08.27
[Kotlin] ์ธํ„ฐํŽ˜์ด์Šค  (0) 2020.08.27
[Kotlin] ์ œ์–ด๋ฌธ(if, when, for, while)  (0) 2020.08.25
[Kotlin] ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•๊ณผ ๋ฐฐ์—ด  (0) 2020.08.25
[Kotlin] ํ•จ์ˆ˜(function)  (0) 2020.08.25
'๊ฐœ๋ฐœ ํƒ€์ž„์บก์А/Kotlin' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Kotlin] null ์ฒ˜๋ฆฌ
  • [Kotlin] ์ธํ„ฐํŽ˜์ด์Šค
  • [Kotlin] ์ œ์–ด๋ฌธ(if, when, for, while)
  • [Kotlin] ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•๊ณผ ๋ฐฐ์—ด
๐ŸฅญMango
๐ŸฅญMango
  • ๐ŸฅญMango
    AppleMango๐Ÿฅญ
    ๐ŸฅญMango
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
      • iOS
        • Swift
        • SwiftUI
        • RxSwift
      • Algorithm
        • C
        • Python
        • Swift
      • Computer Science
        • ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ
        • OS
      • ...
      • ๊ฐœ๋ฐœ ํƒ€์ž„์บก์А
        • Python
        • Flutter
        • Android
        • Kotlin
        • Java
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋ฐฑ์ค€ ํ† ๋งˆํ† 
    ํŒŒ์ด์ฌ
    1613 ํŒŒ์ด์ฌ
    ์—ญ์‚ฌ ํŒŒ์ด์ฌ
    ํŒŒ์ด์ฌ ์ •๋ ฌ
    ์ฝ”ํ‹€๋ฆฐ
    Swift Hello World!
    1์ฐจ์› ๋ฟŒ์š”๋ฟŒ์š”
    ํ† ๋งˆํ† 
    ์Šคํƒ
    ํŒŒ์ด์ฌ 1459
    MapMarker
    ์ฝ”ํ‹€๋ฆฐ ์ƒ์†
    ๋ฐฑ์ค€ ์†Œ์ˆ˜
    swiftUI Gradients
    ํŒŒ์ด์ฌ ํ† ๋งˆํ† 
    SwiftUI
    Apple Login
    ํŒŒ์ด์ฌ 14503
    Custom Map Marker
    14503 ๋กœ๋ด‡์ฒญ์†Œ๊ธฐ
    ํŒŒ์ด์ฌ 6118
    6118
    swiftUI tabview
    14503 ํŒŒ์ด์ฌ
    Code Base
    SwiftUI Apple Login
    typing animation
    IOS
    1613 ์—ญ์‚ฌ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.2
๐ŸฅญMango
[Kotlin] ํด๋ž˜์Šค
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”