240509_디모의 코틀린 문법 강의 #9강. 클래스의 생성자
2024. 5. 6. 20:29ㆍTIL(Today I Learned)
유튜브 - 디모의 코틀린 문법 강의 정리
#9강. 클래스의 생성자
1. 생성자: 새로운 인스턴스를 만들기 위해 호출하는 특수한 함수
1) 생성자의 기능
- 인스턴스의 속성을 초기화
- 인스턴스 생성 시 구문을 수행(init 함수 사용)
2. init 함수: parameter나 반환형이 아닌, 생성자를 통해 인스턴스가 만들어질 때 호출되는 함수
class Person(var name:String, val birthYear:Int){
init{
println("${this.birthYear}년생 ${this.name}님이 생성되었습니다.")
// 인스턴스 자신의 속성이나 함수를 호출할 때는 클래스 내부에서 사용되는 키워드 'this'를 사용
}
}
var a = Person("박보영", 1990)
// -> 1990년생 박보영님이 생성되었습니다.
* 생성해야 하는 인스턴스가 많을 때, 속성이 겹치는 인스턴스가 많은 경우 일일이 인스턴스를 만드는 건 비효율적임
=> 기본 생성자(클래스 생성 시 기본으로 선언) + 보존 생성자(constructor) 형태로 인스턴스를 생성
class Person(var name:String, val birthYear:Int){
init{
println("${this.birthYear}년생 ${this.name}님이 생성되었습니다.")
}
constructor(name:String): this(name, 1997){
// 보조 생성자 사용 시 반드시 기본 생성자를 통해 속성을 초기화해줘야 함
println("보조 생성자가 사용되었습니다.")
}
var d = Person("이루다") // -> 1997년생 이루다님이 생성되었습니다. 보조 생성자가 사용되었습니다.
var e = Person("류수정") // -> 1997년생 류수정님이 생성되었습니다. 보조 생성자가 사용되었습니다.
var f = Person("장문복") // -> 1997년생 장문복님이 생성되었습니다. 보조 생성자가 사용되었습니다.
'TIL(Today I Learned)' 카테고리의 다른 글
240513_디모의 코틀린 강의 #11강. 오버라이딩과 추상화 (0) | 2024.05.14 |
---|---|
240510_디모의 코틀린 강의 #10강. 클래스의 상속 (0) | 2024.05.06 |
240508_디모의 코틀린 문법 강의 #8강. 클래스의 기본 구조 (0) | 2024.05.06 |
240507_디모의 코틀린 문법 강의 정리 #7강. 흐름제어와 논리연산자 (0) | 2024.05.06 |
240503_디모의 코틀린 문법 강의 정리 #6강. 반복문과 증감연산자 (0) | 2024.04.30 |