# lateinit
><h3> lateinit 사용 예시
```kotlin
fun main() {
var myCar = Car()
myCar.owner // init에서 초기화 하지 않을 시 오류가 발생한다.
}
class Car() {
lateinit var owner: String // 나중에 init에서 초기화 하겠다는 코드
init {
this.owner = "Frank"
}
}
```
- lateinit을 사용 후 init에서 초기화를 하지 않을 경우 my.Car.owner 부분은 작동하지 않는다.
><h3> GETTER / SETTER
```kotlin
package ch01
fun main() {
var myCar = Car()
println(myCar.myBrand)
myCar.maxSpeed = 240
println("Maxspeed is ${myCar.maxSpeed}")
// myCar.myModel = "M3" 이 경우에 M3로 변경되지 않음.
println("Model is ${myCar.myModel}") // 게터는 비공개가 아니기 때문에 출력이 가능하다.
}
class Car() {
lateinit var owner: String // 나중에 init에서 초기화 하겠다는 코드
val myBrand: String = "BMW"
// Custom getter
get() {
return field.toLowerCase()
}
var maxSpeed: Int = 250
get() = field
set(value) {
field = if (value > 0) value else throw IllegalArgumentException("Maxspeed cannot be less than 0")
}
// get() = field 변수를 생성할 시에 이 코드는 자동으로 생성된다. (보이지 않을뿐)
// set(value){
// field = value
// }
var myModel: String = "M5"
private set // 하나의 클래스에서만 사용가능, 이 경우엔 Car에서만 사용이 가능하다.
init {
this.myModel = "M3"
this.owner = "Frank"
}
}
```
게터와 세터 참고할만한 글
https://blog.naver.com/PostView.nhn?blogId=lth9036&logNo=221472031826
'Kotlin' 카테고리의 다른 글
배열 (1) | 2023.12.22 |
---|---|
내일배움캠프 12.19 TIL (1) | 2023.12.22 |
내일배움캠프 12.15 TIL (2) | 2023.12.22 |
객체지향 프로그램 기초개념 5가지 (1) | 2023.12.22 |
내일배움캠프 12.13 TIL (2) | 2023.12.22 |