Class4 [코틀린/Kotlin] enum / enum class enum열거형; enumeration여러 개의 이름이 붙은 상수를 하나의 타입으로 묶어서 표현상수 값이 미리 정해져있고, 컴파일 시점에 확정일반 enum상수 목록만 정의: 추가 메서드나 프로퍼티 없음각 상수는 고유한 값을 가짐보통 switch-case나 조건문에서 사용Java에서의 enumpublic enum Direction { NORTH, SOUTH, EAST, WEST}class Main { public static void main(String[] args) { Direction dir = Direction.NORTH; System.out.println(dir); // NORTH }}Direction 타입의 변수는 4개의 값 중 하나만 가짐.. 2025. 9. 8. [코틀린/Kotlin] 로컬 클래스(Local Class) 로컬 클래스(Local Class)함수 또는 블록 내부에 선언된 클래스외부에는 보이지 않으며 해당 함수 내부에서만 사용 가능예시fun exampleFunction() { class LocalUser(val name: String) { fun sayHello() { println("Hello, my name is $name") } } val user = LocalUser("희우") user.sayHello() // 출력: Hello my name is 희우LocalUser은 exampleFunction 내부에서만 정의되고 사용용도특정 함수 안에서만 사용하는 간단한 구조외부에 노출하지 않으면서 캡슐화복잡한 로직을 분리하여 가독성을 높히기예시fun processNumbers(numbers: List).. 2025. 9. 5. [코틀린/Kotlin] sealed class/when sealed class상속 계층을 제한하는 클래스같은 파일 내에서만 상속이 가능모든 서브클래스를 컴파일 시점에 알 수 있음when과 함께 사용하기 용이추상 클래스처럼 동작하지만 서브클래스를 한정하여 완전한 경우의 수 처리가 가능작동 예시sealed class Result { data class Success(val data: String): Result() data class Error(val errorMsg: String): Result()}Result: sealed classSuccess, Error: Result의 서브 클래스사용 이유when 문으로 Result를 처리할 경우 모든 경우를 다루었는지 컴파일러 체크가 가능else없이 안전하게 분기 처리 가능when 사용 예시fun handl.. 2025. 8. 22. [코틀린/Kotlin] 상속과 인터페이스/추상클래스 상속추상 클래스 상속상속을 받을 때는 extends가 아닌 :을 사용부모 클래스의 생성자를 바로 호출kotlin의 클래스는 기본적으로 final: 상속 허용을 위해서는 open 키워드를 사용추상 멤버가 아니면 오버라이드 불가능생성자 또는 초기화 블럭에서 사용되는 프로퍼티는 open 사용을 피하기자식 클래스에서 메서드나 프로퍼티를 재정의하려면 override를 명시부모 클래스의 기능을 사용할 때는 super 사용정적 메소드가 없음package-level 함수를 대신 사용object, compoanion object 사용open class Animal ( protected val species: String, protected val legCount: Int,){ open fun sound() { prin.. 2025. 8. 13. 이전 1 다음