티스토리 뷰

📌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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함