티스토리 뷰
📌field와 property
-자바에서는 클래스의 속성이나 상태를 나타낼 때 field와 property를 사용한다.
-코틀린에서는 클래스와 속성의 상태를 나타낼 때 property만 사용한다.
📌Java의 field와 property
-field: 자신이 속한 클래스의 내부 변수이다.
-property: 클래스의 내부 변수에 대해 접근자를 사용해 접근하는 것이다.
-필드는 외부에서 접근이 가능하다. 그러나 클래스 밖에서의 직접적인 접근은 권장되지 않는다. 따라서 자바는 필드를 private로 선언한 후, 접근자(getter,setter)를 사용하여 접근한다.
public class Person {
private final String name;
private boolean isMarried;
public Person(String name, boolean isMarried) {
this.name = name;
this.isMarried = isMarried;
}
public String getName() {
return this.name;
}
public void setIsMarried(boolean isMarried) {
this.isMarried = isMarried;
}
public boolean getIsMarried() {
return this.isMarried;
}
}
📌Kotlin의 property
-위에 자바 코드에서 Person클래스 필드에 들어가는 데이터들이 증가하면 getter, setter 같은 보일러플레이트가 지저분하게 많아진다. 코틀린에서는 아래와 같이 Person클래스를 간단하게 정의할 수 있다.
-자바에서는 private로 선언한 필드를 getter,setter를 통해 다른 클래스에서 사용 가능하지만, 코틀린에서는 프로퍼티를 private로 선언하면 다른 클래스에서 사용이 불가하다.
class Person{
val name: String
var isMarried: Boolean
}
-위에 자바 코드에서 setter를 제공하지 않는 name은 val로 선언 했고 getter,setter를 제공하는 isMarried는 var로 선언했다. val은 불변, var은 가변이므로 val로 선언한 name은 setter가 생성되지 않는다.
-기본적으로 코틀린 클래스를 만들 때 생성자에 넣어준 데이터들에 대하여 get(),set()이 숨겨져 있으나 , 아래 코드와 같이 명시적으로 적어줄 수도 있다.
class Person {
val name: Int
get() {
return this.age
}
var isMarried: Boolean
get() {
return this.isMarried
}
set(isMarried: Boolean) {
this.isMarried = isMarried
}
}'코틀린' 카테고리의 다른 글
| 디미터의 법칙 (0) | 2025.03.30 |
|---|---|
| 코틀린 문법(Sealed Interface) (0) | 2025.03.30 |
| 코틀린 문법(배열) (0) | 2024.08.19 |
| 코틀린 문법(OOP문법) (0) | 2024.08.04 |
| 코틀린 문법(변수) (0) | 2024.08.01 |
