코틀린 프로퍼티
- 읽기 전용 프로퍼티
- val
- private 필드
- public getter 자동 생성
- 변경 가능한 프로퍼티
- var
- private 필드
- 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 |