-
[Kotlin] 8. 클래스 생성, 생성자, init, constructor (보조 생성자 )Kotlin 2024. 3. 12. 17:28
클래스 생성
class Person(var name:String, var birthYear:Int){ }
인스턴스 생성 후 출력
fun main() { var a = Person("박보영",1990) var b =Person("전정국", 1997) var c = Person("장원영", 2004) println("안녕하세요!! 제 이름은 ${a.name} 이고 저는 ${a.birthYear} 년생 입니다.") }
매번 println을 사용하기에 번거로우니 클래스에서 공통적으로 사용한 자기소개 함수를 생성해서 사용하겠습니다.
fun main() { var a = Person("박보영",1990) var b =Person("전정국", 1997) var c = Person("장원영", 2004) a.introduce() } class Person(var name:String, var birthYear:Int){ fun introduce(){ println("안녕하세요!! 제 이름은 ${name} 이고 저는 ${birthYear} 년생 입니다.") } }
init
인스턴스 생성 시 구문을 수행하는 기능을 넣을 수 있다.
fun main() { var a = Person("박보영",1990) var b =Person("전정국", 1997) var c = Person("장원영", 2004) a.introduce() } class Person(var name:String, var birthYear:Int){ init{ println("인스턴스 생성 완료 이름 : ${this.name} 탄생연도 : ${this.birthYear}") } fun introduce(){ println("안녕하세요!! 제 이름은 ${name} 이고 저는 ${birthYear} 년생 입니다.") } }
보조 생성자 : 기본 생성자와 다른형태의 생성자를 만들어 인스턴스 생성 시 편의를 제공하거나 추가적인 구문을 수행하는 기능을 제공하는 역할을 한다
보조 생성자는 constructor 이라는 키워드를 사용하여 생성한다
: (콜론) 을 붙이고 this라는 키워드를 사용하여 기본 생성자가 필요로 하는 파라미터의 값을 넣어주면 됩니다.
fun main() { var a = Person("박보영",1990) var b =Person("전정국", 1997) var c = Person("장원영", 2004) var d = Person("이루다") var e = Person("차은우") var f = Person("류수정") a.introduce() } class Person(var name:String, var birthYear:Int){ init{ println("인스턴스 생성 완료 이름 : ${this.name} 탄생연도 : ${this.birthYear}") } constructor (name:String):this(name,1997){ println("보조 생성자 사용") // 이 부분 } fun introduce(){ println("안녕하세요!! 제 이름은 ${name} 이고 저는 ${birthYear} 년생 입니다.") } }
이렇게 보조생성자가 정상적으로 작동하는 것을 볼 수 있다.
'Kotlin' 카테고리의 다른 글
[Kotlin] 오버라이딩과 추상화 (1) 2024.03.12 [Kotlin] 상속 (0) 2024.03.12 [Kotlin] 7. 흐름제어와 논리연산자 (0) 2024.03.12 [Kotlin] 6. 반복문과 증감 연산자 (0) 2024.03.12 [Kotlin]5. 조건문과 비교연산자 (0) 2024.03.12