본문 바로가기
Kotlin

Kotlin과 친해지기 3 - class, constructor(1)

by Won's log 2023. 12. 11.

오늘은 코틀린의 클래스, 생성자에 대해 공부했다.

 

코틀린 공식문서에 따르면 클래스에 대한 정의는 다음과 같다. 

코틀린의 클래스는

클래스의 이름과, 헤더(파라미터, 주 생성자 등) { }를 감싸고 있는 바디로 이루어진다.

만약 바디가 없으면 { }은 생략할 수 있다. 


코틀린의 생성자는 다음과 같다.

클래스에는 주 생성자가 있으며

2개 이상의 secondary 생성자가 있을 수 있다.

 

주 생성자는 클래스의 해더에서 선언되며

클래스의 이름과 선택적 파라미터 타입 뒤에 선언된다.

 

주 생성자에 어노테이션이나 visibility modifier가 없으면

constructor 키워드는 생략이 가능하다.

*아래 생성자의 visibility modifier 참고

 

주 생성자는 헤더 안에 존재하는 인스턴스와 인스턴스의 properties를 초기화시킨다.

이때, 헤더에는 run해야하는 코드를 포함할 수 없다.

객체 생성 중에 코드를 run하고 싶으면

클래스 바디에 초기화 블럭을 사용해야한다.

 

이 초기화 블럭은 init { ... } 으로 선언된다.

run하고 싶은 코드를 { } 안에 작성하면 된다. 

 

주 생성자 파라미터들은 초기화 블럭과

바디에 선언된 property 초기화 안에 사용가능하다.

 

class Person(val firstName: String, val lastName: String, var isEmployed: Boolean = true)

 

코틀린은 주 생성자로부터 properties를 선언하거나 초기화할 때

간결한 syntax(배열?)이 있다. 

이런 선언들은 클래스 properties의 기본값을 포함할 수 있다.

 

주 생성자에 어노테이션이나 visibility modifier이 있는 경우,

constructor 키워드는 필수이며 modifiers가 앞에 와야 한다. 

 

 

생성자에 사용되는 visibility modifier에 대해 간략히 얘기하자면,

모든 생성자는 public을 기본으로 가진다.

이 부분은 자바와 같다. 

 

 

*visibility modifier에 대해서는 다른 포스트에 정리하고자 한다!

 

 

참고 : https://kotlinlang.org/docs/classes.html#secondary-constructors

 

Classes | Kotlin

 

kotlinlang.org

 

'Kotlin' 카테고리의 다른 글

Kotlin과 친해지기 1  (0) 2023.12.06