Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 버전일치
- FIle
- 숫자
- git
- Spring
- 스타일보험
- 미니게임
- parcel
- sub query
- degit
- 코틀린
- 상속
- snowpack
- kotlin
- SQL
- 안드로이드
- 게시판
- React
- 답글
- Android
- 오버라이드
- 스프링
- webpack
- 쿠키
- 왕초보
- Spinner
- java#왕초보
- java
- 시큐어코딩
- 함수
Archives
- Today
- Total
YSHUSH
Getter & Setter 본문
게터와 세터 형식
- field의 사용 (변수 자신을 가리킨다.)
class User(_id:Int, _name:String, _age:Int){
var id:Int = _id
get() = field
var name:String = _name
get() = field
set(value){
println("name setter")
field = value.toUpperCase()
}
var age:Int = _age
get(){
return field
}
set(v){
field = v
}
}
커스텀 setter
class FakeAge{
var age:Int = 0
set(value){
field = when{
value < 18 -> 18
value in 18..30 -> value
else -> value - 3
}
}
override fun toString(): String {
return "FakeAge(age=$age)"
}
}
함수호출부
fun main(args: Array<String>) {
val user = User(1, "Tom", 18)
// user.id = 11 // setter
// val name = user.name // getter
val id = user.id
println(id)
user.name = "Anne"
val kim = FakeAge()
kim.age = 15
println(kim.toString()) // 결과값 = FakeAge(age=18)
val lee = FakeAge()
lee.age = 36
println(lee.toString()) // 결과값 = FakeAge(age=33)
}