class Person(var name: String){
}
fun main() {
val person = Person("홍길동")
print(person.name) // 홍길동
}
-> Person 클래스의 생성자인 name에 바로 접근 가능
Constructor
코틀린의 클래스는 하나의 주 생성자와 다수의 부 생성자를 가질 수 있다.
class Person private constructor()
//primary constructor 가 없는 경우
class Person {
var children: MutableList<Person> = mutableListOf<Person>();
constructor(parent: Person) { // 부 생성자
parent.children.add(this)
}
}
//primary constructor 가 있는 경우
class Person(var name: String) {
var age: Int = 26
constructor(name: String, age: Int) : this(name) { // 부 생성자
this.age = age
}
}
부 생성자 사용 시 주 생성자가 있는 경우 는
-> this() 생성자를 이용해 직간접적으로 주 생성자에 위임해야 함
- 상속 (extends) : 호출 시 생성자 필요
ex. Activity : AppCompatActivity()- 인터페이스 (implements) : 생성자 필요 x
ex. View : View.OnClickListener
기존에 정의된 클래스에 함수를 추가하는 기능
// String type 뒤에 새로 정의한 myLength 함수 사용 가능
fun String.myLength() : Int {
return this.length
}
fun main() {
var str: String = "kotlin"
str.myLength()
}