initializer blocks 2

[Kotlin] 코틀린의 클래스(Class), 생성자(Constructor), 초기화 블록(Initializer blocks), 인스턴스(Instance) 사용법

💗 클래스 ClassesKotlin에서 클래스들은 class 키워드로 선언 class Person { /*...*/}클래스 선언은 클래스 이름, 클래스 헤더(타입 매개변수, 기본 생성자 등 지정) 및 중괄호로 둘러싸인 클래스 본문으로 구성헤더와 본문은 선택 사항이며, 클래스에 본문이 없으면 중괄호를 생략할 수 있음 class Empty💗 생성자 ConstructorsKotlin의 클래스에는 기본 생성자(primary constructor)와 하나 이상의 보조 생성자(secondary constructors)가 있을 수 있음기본 생성자는 클래스 헤더에 선언되며, 클래스 이름과 선택적 타입 매개변수 뒤에 온다. class Person constructor(firstName: String) { /*...

Kotlin 2024.07.22

[Kotlin] 보조 생성자(secondary constructors)에서의 초기화 블록(initializer blocks) 실행 타이밍

보조 생성자(Secondary constructors)에서 초기화 블록(initializer blocks) 실행 타이밍은 언제일까? 정답은 일단 보조 생성자 첫 문장 접근 순간! 이다. 이제 왜 그런건지 차근차근 알아보자.이니셜라이저 블록의 코드는 기본 생성자의 일부가 됨!!기본 생성자에 대한 위임은 보조 생성자의 첫 번째 문장에 접근하는 순간에 발생하므로, 모든 이니셜라이저 블록 및 속성 초기화 코드가 보조 생성자의 본문 이전에 실행클래스에 기본 생성자가 없더라도 위임은 암시적으로 발생하며, 이니셜라이저 블록은 여전히 실행됨class Constructors { init { println("Init block") } constructor(i: Int) { prin..

Kotlin 2024.07.22