본문 바로가기

코틀린 공부

코틀린 공부(8) 클래스 - 2

생성자란?

 

클래스를 호출함과 동시에 호출하는 것

 

인스턴스의 속성을 초기화하고 인스턴스 생성 시 구문을 수행한다.

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("보조 생성자가 사용되었습니다")
 }
}

 

실행결과