1. 코틀린 Getter/Setter 자동 제공
- PersonJava
- PersonKotlin
- JavaTest
- KotlinTest
결과)
2. Setter 수정해서 사용
- PersonJava
- PersonKotlin
- JavaTest
- KotlinTest
3. Property와 Field
Field : 클래스에 선언되어 있는, '클래스 변수'가 아닌 '인스턴스 변수'를 의미
Property : Field와 접근 가능한 Geter, Seter의 조합을 의미
4. 클래스 상속
- 코드 구현에 대한 상속 : 다중 상속에 취약함 그리고 '취약한 기반 클래스 문제(fragile base class)' 라고 하위 클래스에서 상위 클래스의 메소드를 오버라이딩하면서 발생됨
- 인터페이스 집합에 대한 상속 : 다중 상속에 자유로움
취약코드)
- AttackObject
- ZeroAttack
- Calc
- Attacktest
- 결과)
- 코틀린 코드 상속
5. 클래스 위임
- 코틀린은 기본적으로 상속을 허용하지 않는다
- 그러므로 위임을 통해 하는 방법이 존재
a) 데코레이터(Decorator) 패턴
: 특정 클래스의 기능에 추가 기능을 덧붙이는 방법
단, 데코레이터 패턴은 인터페이스에 포함된 메소드가 많다면 코드가 매우 길어진다.
하지만 코틀린은 단 한줄로 가능하다
6. 프로퍼티 위임
A. lazy properties : 값의 초기화를 처음 프로퍼티를 사용할 때 초기화
B. observable propertiese : 프로퍼티에 값이 변경되면 옵저버에게 알려 준다.
C. Map properties : 필드가 아닌 맵에 속성을 저장합니다
A. lazy 위임
- User.kt
- UserLazyTest
- 결과)
B. observable 위임
- User.kt
- UserObservableTest.kt
- 결과)
C. Map 위임
- Animal.kt
- AnimalByMaptest
- 결과)
'App > 안드로이드' 카테고리의 다른 글
람다 식 / Collection API / 확장함수 / Null Safety (0) | 2019.04.11 |
---|---|
Singleton 패턴 및 Obejct 클래스 / Data Class / 내부/중첩 클래스 (0) | 2019.04.10 |
코틀린(Kotlin) 특징 (0) | 2019.04.06 |
버튼 구현 / 데이터 타입 / 제약정보 추가 / 접근제어자 (0) | 2019.04.06 |
초기 폴더 구조 / 주석 / 진입점 및 매니페스트 (0) | 2019.04.06 |