[코틀린인액션] 프로퍼티

코틀린 프로퍼티

  1. 읽기 전용 프로퍼티
    1. val
    1. private 필드
    1. public getter 자동 생성
  1. 변경 가능한 프로퍼티
    1. var
    1. private 필드
    1. public setter getter 자동 생성

클래스 안에서 프로퍼티 선언

class Person(
    val name: String,
    var isMarried: Boolean
)
  • name : 읽기 전용
  • isMarried : 변경 가능한 프로퍼티

자바와의 호환성

  • 코틀린에서 선언한 프로퍼티
    • 자바코드에서도 사용가능
  • 코틀린 val
    • 자바의 getName()
  • 코틀린 var
    • 자바의 getName()
    • setName()
  • is 로 시작하는 불리언 속성
    • isPropertyName() 으로 접근할 수 있다.
public class Main {
    public static void main(String[] args) {
        Person person = new Person("홍길동", true);
        System.out.println(person.getName());
        System.out.println(person.isMarried());
    }
}
  • 를 수행하면
  • 이 출력된다.. 호환되는겨

코틀린에서 클래스 사용

fun main() {
    val person = Person("Bob", true)
    println(person.name)
    println(person.isMarried)
}
Bob
true

프로퍼티 접근법

  • 코틀린에서는 프로퍼티에 직접 접근하는 것처럼 사용이 가능하다.
  • 내부적으로 적절한 게터/세터가 호출됨.
  • 예를 들어, person.name 은 내부적으로 person.getName() 을 호출하는 것과 동일함
  • var 프로퍼티의 경우, 값을 설정시 person.isMarried = false 와 같이 직접 할당이 가능하다

커스텀 접근자 설정

class Rectangle(private val height: Int, private val width: Int) {
    val isSquare: Boolean
        get() = height == width
}
  • isSquare
fun main() {
    val rectangle = Rectangle(41, 43)
    println(rectangle.isSquare)
}

//false 출력


Uploaded by N2T

'코틀린 > 코틀린인액션' 카테고리의 다른 글

[코틀린인액션] 함수  (0) 2023.11.23
[코틀린인액션] 변수  (0) 2023.11.23
[코틀린인액션] enum  (0) 2023.11.23
[코틀린인액션] when 과 임의의 객체  (0) 2023.11.23
[코틀린인액션] 스마트 캐스트  (0) 2023.11.23