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값 한 줄이 있으면 등호로 바꾸어 짧게 표시할 수도 있다.
'Kotlin' 카테고리의 다른 글
[Kotlin] Pair와 Triple 객체 (0) | 2023.01.25 |
---|---|
[Kotlin] 열거형(enum) 클래스 (0) | 2023.01.25 |
[Kotlin] class와 object 키워드의 차이 (0) | 2023.01.25 |
[Kotlin] Null 안전성(Null Safety) (0) | 2023.01.17 |
[Kotlin] 변수(Variable), 자료형(Data type) (0) | 2023.01.17 |