2021. 4. 23. 19:12ㆍKotlin/문법
class Person(
val name :String= “nobody”,
var age :Int
) {
var singleYn = “Y”;
init {
Log.i(“KMJ”, “init block #1$name / $age / $singleYn”);
}
constructor(name :String, age :Int, height :Float) :this(name,age)
{
Log.i(“KMJ”, “sub - constructor block $name / $age / $height / $singleYn”);
}
init {
Log.i(“KMJ”, ”init block #2$name / $age / $singleYn”);
singleYn = “N”;
}
}
val person = Person(“MIJIN”, 27);
val person2 = Person(“MIJIN”, 27, 166.0f);
val person3 = Person(age = 27);
- property로 선언 : 클래스 primary constructor에 val or var 키워드 사용 시 클래스의 property로 사용
cf> property 생성없이 인자로 값만 넘겨받고 싶을 경우 초기화는 다음과 같이 진행한다.
class Person(name : String = “nobody”, age : Int){
val pName = name;
var pAge = age;
}
- sub constructor 선언 : 직간접적으로 primary constructor를 위임해야 함
- 초기화 순서 : primary constructor(property와 init block 나열순대로 진행) → sub constructor
2020-10-29 15:00:35.238 11203-11203/com.example.kotlinstudy I/KMJ: init block #1 MIJIN / 27 / Y
2020-10-29 15:00:35.238 11203-11203/com.example.kotlinstudy I/KMJ: init block #2 MIJIN / 27 / Y
2020-10-29 15:00:35.238 11203-11203/com.example.kotlinstudy I/KMJ: init block #1 MIJIN / 27 / Y
2020-10-29 15:00:35.238 11203-11203/com.example.kotlinstudy I/KMJ: init block #2 MIJIN / 27 / Y
2020-10-29 15:00:35.238 11203-11203/com.example.kotlinstudy I/KMJ: sub-constructor block MIJIN / 27 / 166.0 / N
2020-10-29 15:00:35.238 11203-11203/com.example.kotlinstudy I/KMJ: init block #1 nobody / 27 / Y
2020-10-29 15:00:35.238 11203-11203/com.example.kotlinstudy I/KMJ: init block #2 nobody / 27 / Y
'Kotlin > 문법' 카테고리의 다른 글
by (0) | 2022.02.24 |
---|---|
기본 문법 간단 리뷰 (1) | 2021.08.11 |
Class 상속 (0) | 2021.04.23 |