본문 바로가기
2024.10~/일일 학습 노트

[2024-11-24] Kotlin 문법 입문 스타트

by HJfan 2024. 11. 24.

Title : -


공부한 개념 나열하며 복기

 

Kotlin 프로퍼티와 Java Getter의 관계

코틀린에서 프로퍼티란 자바에서 필드와 그에 대한 접근자(getter, setter)를 합친 개념이다.

자바에서는 생성자, getter, setter를 직접 구현해 주어야 하지만, 코틀린에서는 프로퍼티를 선언할 때

자동으로 getter와 setter를 생성해 주기 때문에 자바처럼 명시적으로 getOOO, setOOO과 같은 함수를

생성할 필요가 없다. 따라서 코틀린에서는 함수처럼 사용하지 않아도 함수를 사용한 것과 동일한

결과를 도출할 수 있는 프로퍼티 방식이라는 문법이 존재한다.

 

 

문법 비교

코틀린(with 프로퍼티 방식)

val isAdult: Boolean
    get() = this.age >= 20


val isAdult: Boolean
    get() {
        return this.age >= 20
    }

 

코틀린(with 함수 방식)

fun isAdult(): Boolean {
    return this.age >= 20
}

 

자바

if (person.isAdult()) {
    // 성인일 때 처리
}

 

우선 코틀린에서 구현한 3가지 방식 모두 디컴파일 했을 경우 자바에선 동일하게 구현된다.

다만 코틀린에서 프로퍼티 방식으로 구현했을 경우 내부적으로 get 함수가 호출되기 때문에

가시성 측면에서 함수 방식보다 더 직관적인 프로퍼티 방식을 사용하는 것이 권장된다고 한다.

조금 더 구체적으로 상황을 구분해 보자면, 객체의 속성을 확인 즉, READ만 필요한 경우

프로퍼티 방식으로 사용하는 것이 직관적일 것이고, 객체의 속성에 대해 계산, WRITE가 필요한 경우

함수처럼 구현하는 것이 직관적일 것이다.

 

 

 

 


단어 사전

[1] :

[2] :


Reference :