Sealed class(봉인된 클래스) 상속 계층 구조를 정의할 때 유용한 특별한 종류의 클래스 Sealed class는 해당 클래스의 하위 클래스들을 제한하는데 사용되며, 특정 클래스의 하위 클래스를 제한하고 싶을 때 유용 Sealed class는 봉인된 클래스이기 때문에 다른 파일에서 하위 클래스를 추가할 수 없음 sealed 키워드 사용 sealed class Result Sealed class는 주로 패턴 매칭(when 식)과 함께 사용 모든 하위 클래스에 대해 처리를 보장하고, 그 외의 경우는 처리하지 않도록 강제 sealed class Result { class Success(val data: String) : Result() class Error(val message: String) : Re..
Enum class 코틀린에서 Enum 클래스는 서로 연관된 상수들의 집합을 나타냄 이러한 상수들은 보통 연관된 열거형 값으로 사용 enum class Direction { NORTH, SOUTH, EAST, WEST } // java public enum Direction { NORTH, SOUTH, EAST, WEST; } 생성자와 속성: 각 Enum 상수는 자체 생성자 매개변수와 속성을 가질 수 있음 enum class Color(val rgb: Int) { RED(0xFF0000), GREEN(0x00FF00), BLUE(0x0000FF) } 메서드 : Enum 클래스는 메서드도 정의 가능 enum class Direction { NORTH { override fun printMessage() {..
데이터 클래스(data class) 데이터를 보관하고 전달하기 위해 설계된 특별한 종류의 클래스 클래스를 작성할 때 많은 반복적인 코드를 줄이고 코드를 간결하게 유지 별도의 getter/setter 메서드를 정의할 필요가 없으며, 또한 equals(), hashCode(), toString() 등의 메서드도 자동으로 생성 데이터 클래스 생성 및 사용 data class Person(val name: String, val age: Int) fun main() { val person1 = Person("Alice", 30) val person2 = Person("Bob", 25) println(person1) // 출력: Person(name=Alice, age=30) println(person2) // 출..
범위 표현식 (..) 가장 기본적인 방법으로 start..end 형태로 사용, 이 범위는 시작 값 start부터 종료 값 end까지를 포함 val range1 = 1..10 // 1부터 10까지의 범위 val range2 = 'a'..'z' // 'a'부터 'z'까지의 범위 반 열린 범위 표현식 (until) start until end 형태로 사용 시작 값 start는 포함되지만 종료 값 end는 포함되지 않는 범위를 생성 val range3 = 1 until 10 // 1부터 9까지의 범위 val range4 = 'a' until 'z' // 'a'부터 'y'까지의 범위 감소하는 범위 downTo 함수를 사용하여 감소하는 범위를 만들 수 있음 val range5 = 10 downTo 1 // 10부터..