3장 코틀린 객체지향 프로그래밍
코틀린 쿡북 3장을 요약한 내용 입니다.
const와 val의 차이 이해하기
class Task(val name: String, _priority: Int = DEFAULT_PRIORITY) {
companion object {
const val MIN_PRIORITY = 1
const val MAX_PRIORITY = 5
const val DEFAULT_PRIORITY = 3
}
var priority = validPriority(_priority)
set(value) {
field = validPriority(value)
}
private fun validPriority(p: Int) =
p.coerceIn(MIN_PRIORITY, MAX_PRIORITY)
}사용자 정의 획득자와 설정자 생성하기
priority의 단점은 무엇일까?
그렇다면 장점은 없을까?
사용자 정의 획득자
사용자 정의 설정자
데이터 클래스 정의하기
지원 속성 기법
연산자 중복
자신이 작성하지 않은 클래스에 함수를 추가하고 싶다면?
나중 초기화를 위해 lateinit 사용하기
lateinit과 lazy의 차이
equals 재정의를 위해 안전 타입 변환, 레퍼런스 동등, 엘비스 사용하기
어떻게 하면 equals 함수를 잘 구현할 수 있을까?
다음의 과정을 순서대로 확인해보자
싱글톤 생성하기
싱글톤을 정의하는 방법은 다음과 같다
자바에서 싱글톤 구현 예
코틀린 싱글톤 선언
Nothing에 관한 야단법석
Nothing클래스를 사용하는 예를 알아보자
함수 몸체가 전적으로 예외를 던지는 코드로 구성된 상황이다.
초기화를 할 경우 구체적인 타입을 명시하지 않은 경우다.
Last updated