ํด๋์ค ์ ์ธ
//ํด๋์ค ์ ์ธ
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 |