별의 공부 블로그 🧑🏻‍💻
728x90
728x170
  • 게터와 세터가 포함되는 프로퍼티 선언에 대한 구조

 var 프로퍼티_이름[: 프로퍼티 자료형] [= 프로퍼티 초기화]
     [get() { 게터 본문 }]
     [set(value) { 세터 본문 }]

 val 프로퍼티 이름[: 프로퍼티 자료형] [= 프로퍼티 초기화]
     [get() { 게터 본문 }]

 

  • 프로퍼티를 var로 선언하는 경우
    • 게터와 세터 둘 다로 선언할 수 있음.
  • 프로퍼티를 val로 선언하는 경우
    • 게터로만 선언 가능함.

 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class User(_id: Int, _name: String, _age: Int) {
    // 프로퍼티
    val id: Int = _id
        get() = field

    var name: String = _name
        get() = field
        set(value) {
            field = value
        }

    var age: Int = _age
        get() = field
        set(value) {
            field = value
        }
}

fun main() {
    val user1 = User(1, "Kildong", 30)
    // user1.id = 2     // val 프로퍼티는 값 변경 불가
    user1.age = 35      // 세터
    println("user1.age = ${user1.age}")
}

 

user1.age

 

728x90
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖