kotlin의 기본 문법 정리(029)
001 ~ 028 요약
그 동안 포스팅했던 001 ~ 028의 내용 간단 요약
- 코틀린 인터페이스는 자바 인터페이스와 비슷하지만 디폴트 구현을 포함할 수 있고[1], 프로퍼티도 포함할 수 있다.[2]
- 모든 코틀린 선언은 기본적으로 final이며 public이다.
- 선언이 final이 되지 않게 만들려면 앞에 open 키워드를 사용해야 한다.
- internal 선언은 같은 모듈 안에서만 볼 수 있다.
- 중첩 클래스는 기본적으로 내부 클래스가 아니다. 바깥쪽 클래스에 대한 참조를 중첩 클래스 안에 포함시키려면 inner 키워드를 중첩 클래스 선언 앞에 붙여서 내부 클래스로 만들어야 한다.
- sealed 클래스를 상속하는 클래스를 정의하려면 반드시 부모 클래스 정의 안에 중첩[3] 클래스로 정의해야 한다.[4]
- 초기화 블록과 부 생성자를 활용해 클래스 인스턴스를 더 유연하게 초기화할 수 있다.
- field 식별자를 통해 프로퍼티 접근자 안에서 프로퍼티의 데이터를 저장하는 데 쓰이는 뒷받침하는 필드를 참조할 수 있다.
- 데이터 클래스를 사용하면 컴파일러가 equals, hashCode, toString, copy 등의 메소드를 자동으로 생성해준다.
- 클래스 위임을 사용하면 위임 패턴을 구현할 때 필요한 수많은 준비코드를 줄일 수 있다.
- 객체 선언을 사용하면 코틀린스럽게 싱글턴 클래스를 정의할 수 있다.
- 동반 객체는 자바의 정적 메소드와 필드 정의를 대신한다.
- 동반 객체도 다른 싱글턴 객체와 마찬가지로 인터페이스를 구현할 수 있다. 외부에서 동반 객체에 대한 확장 함수와 프로퍼티를 정의할 수 있다.
- 코틀린의 객체 식은 자바의 무명 내부 클래스를 대신한다. 하지만 코틀린 객체식은 여러 인스턴스를 구현하거나 객체가 포함된 영역에 있는 변수의 값을 변경할 수 있는 등 자바 무명 내부 클래스보다 더 많은 기능을 제공한다.
1 : 자바 8부터는 자바에서도 가능하다.
2 : 자바에서는 불가능하다.
3 : 또는 내부.
4 : 코틀린 1.1부터는 같은 파일 안에만 있으면 된다.
참고 서적 : Kotlin IN Action