생성자란?
클래스를 호출함과 동시에 호출하는 것
인스턴스의 속성을 초기화하고 인스턴스 생성 시 구문을 수행한다.
init을 사용해서 초기화 할 수 있음
fun main() {
// 사람의 이름과 출생년도를 관리하는 클래스 만들기
var a = Person("홍길동", 1999)
var b = Person("이순신", 1292)
var c = Person("세종대왕", 2193)
}
// 함수가 없는 속성으로 이루어진 클래스
class Person(var name:String, val birthYear:Int){
init{
println("안녕하세요, ${birthYear}년생 ${name}입니다.")
}
}
보조 생성자
기본 생성자와 다른 형태의 생성자를 제공하여 인스턴스 생성시 편의제공과 추가적인 기능 제공
constructor를 사용
반드시 기본 생성자를 통해 속성을 초기화 해줘야 함!
fun main() {
// 사람의 이름과 출생년도를 관리하는 클래스 만들기
var a = Person("홍길동", 1999)
var b = Person("이순신", 1292)
var c = Person("세종대왕", 2193)
var d = Person("123")
var e = Person("456")
var f = Person("789")
}
// 함수가 없는 속성으로 이루어진 클래스
class Person(var name:String, val birthYear:Int){
init{
println("안녕하세요, ${birthYear}년생 ${name}입니다.")
}
constructor(name:String) : this(name,1999){ // 반드시 기본 생성자를 통해 속성을 초기화 해줘야 함.
println("보조 생성자가 사용되었습니다")
}
}
실행결과
'코틀린 공부' 카테고리의 다른 글
코틀린 공부(10) 클래스 - 4 (0) | 2021.06.22 |
---|---|
코틀린 공부(9) 클래스 - 3 (0) | 2021.06.22 |
코틀린 공부(7) 클래스 - 1 (0) | 2021.06.22 |
코틀린 공부(6) 흐름제어, 논리연산자 (0) | 2021.06.22 |
코틀린 공부(5) 반복문, 증감연산자 (0) | 2021.06.22 |