Enum class 열거형 클래스는 형식이 안전한 열거형을 구현하는 것입니다. enum class Direction { NORTH, SOUTH, WEST, EAST } 내부의 각각의 상수들은 오브젝트이다. 각 열거형 상수는 개체이다. 열거형 상수는 쉼표로 구분된다. 열거형 클래스는 다음과 같이 초기화할 수 있다. enum class Color(val rgb: Int) { RED(0xFF0000), GREEN(0x00FF00), BLUE(0x0000FF) } Anonymous classes 열거형 상수는 해당 메서드와 재정의 기본 메서드를 사용하여 고유한 익명 클래스를 선언할 수 있습니다. enum class ProtocolState { WAITING { override fun signal() = TALK..
Data class 란 데이터를 보유하는 것이 주된 목적인 클래스입니다. Ex) User의 data class data class User(val name: String, val age: Int) 데이터 클래스의 충족 조건 주요 생성장에는 적어도 하나의 파라매터가 필요하다. 모든 주요 생성자 파라매터는 val 혹은 var로 지정 데이터 클래스는 추상 클래스, open 클래스, sealed클래스, inner클래스 일수 없다. 1.1버전 이후 데이터 클래스는 다른 클래스를 확장할 수 있다. 클래스에 파라매터가 없는 생성자가 필요한 경우, 모든 프로퍼티의 기본값을 지정할 필요가 있다. data class User(val name: String = "", val age: Int = 0) 컴파일러에서는 기본생성자..
표현력과 간결함 코틀린의 최신 언어 기법을 이용하면 훨씬 간결한 구문으로 프로그램을 작성할 수 있습니다. 같은 로직을 자바와 코틀린으로 각각 작성해 보면 코틀린의 코드가 훨씬 간결하다는 것을 알 수 있습니다. 안전한 코드(safer code) 코틀린은 널안정성을 제공합니다. 객체지향 프로그래밍에선느 객체는 널 상태일 수 있으며, 이때 런타임 오류인 널 포인트 예외(NullPointException)가 발생할 수 있습니다. 따라서 객체가 널인 상황을 고려해 개발해야 하는데, 코틀린에서는 변수를널 허용(Nullable)과 널 불허용(not null)으로 구분해서 선언합니다. 이로써 널과 관련된 여러 부분을 컴파일러가 해결해줍니다. 상호운용성(interoperable) 코틀린은 자바와 100% 호환합니다. 따..