Kotlin

[Kotlin] 클래스와 접근자 메소드(getter/setter)

Frambda 2023. 1. 23. 16:53

 

Kotlin의 클래스

 

클래스를 사용하는 이유는 내부의 데이터를 캡슐화(Encapsulate)하기 위함이다.

 

변수(필드)를 이용해 값을 저장하고,

접근자 메서드 getter, setter를 이용해 값에 접근한다. 

 

getter는 값을 불러올 수 있고, setter는 값을 다시 지정할 수 있다.

 

 

JAVA에서는 클래스를 생성하면 변수, 생성자, getter, setter를 모두 선언해주어야 한다.

 

그러나 코틀린은 클래스와 변수만 선언해도 자동으로 getter, setter를 내부적으로 생성해 준다. 

 

 

* 변수 + 접근자 메서드를 프로퍼티(property)라고 한다.

 

 

 

클래스의 접근 제한자

 

class Student { //public 접근제한자
    var name : String //private 접근제한자
}

Kotlin은 기본적으로 클래스 접근 제한자가 public으로 생성되며, 생략 가능하다.

 

내부 변수는 private로 생성된다.

 

 

val은 읽기 전용 변수로 값 수정이 불가능하다.

public의 클래스와 private의 getter 함수를 생성해준다.

 

var은 읽기와 쓰기가 가능한 변수로 값을 수정할 수 있다.

public의 클래스와 private의 getter, setter 함수를 모두 생성해준다.

 

 

 

getter, setter 사용법

 

class SimpleSpice {
    var name = "curry"
    var spciness = "mild"
}

fun main() {
    var simpleSpice = SimpleSpice()
    println("name = ${simpleSpice.name}, spciness = ${simpleSpice.spciness}")
}

선언하지 않아도 객체 안의 변수를 사용하는 것처럼 내부의 getter와 setter를 바로 이용할 수 있다.

 

 

 

커스텀 접근자 사용법

 

class SimpleSpice() {
    val name = "curry"
    val spiciness = "mild"
    
    val heat: Int
        get() { return 5 }
}

getter와 setter 함수를 생략하지 않고 지정해줄 수도 있다.

 

 

get() = 5

get() {
    return 5
} //둘은 같은 문장이다.

참고로 메서드 아래에 return값 한 줄이 있으면 등호로 바꾸어 짧게 표시할 수도 있다.