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 :
'2024.10~ > 일일 학습 노트' 카테고리의 다른 글
[2024-12-15] HTTP 프로토콜 강의 메모(1) (0) | 2024.12.15 |
---|---|
[2024-11-25] Android Library 개념 이해하기 (1) | 2024.12.15 |
[2024-11-19] 코테 기초(입력된 문자열을 정수로 변환 후 각 자리의 합 반환하기) (1) | 2024.11.19 |
[2024-11-17] Do it! 알고리즘 코딩테스트 with JAVA 강의 필기 노트(배열) (0) | 2024.11.17 |
[2024-11-17] Fragment 기초 개념 다지기(with 깡쌤의 안드로이드 프로그래밍 with 자바) (0) | 2024.11.17 |