Skip to main content Link Menu Expand (external link) Document Search Copy Copied

kotlin의 기본 문법 정리(029)

001 ~ 028 요약


그 동안 포스팅했던 001 ~ 028의 내용 간단 요약


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

1 : 자바 8부터는 자바에서도 가능하다.
2 : 자바에서는 불가능하다.
3 : 또는 내부.
4 : 코틀린 1.1부터는 같은 파일 안에만 있으면 된다.

참고 서적 : Kotlin IN Action