본문 바로가기

메뉴135

[kotlin] Sealed classes & interfaces Kotlin의 Sealed 클래스와 인터페이스Kotlin의 sealed 클래스와 인터페이스는 클래스 계층 구조의 제어된 상속을 제공하는 강력한 기능입니다.이 가이드에서는 sealed 클래스와 인터페이스의 다양한 측면을 상세히 살펴보겠습니다.  sealed 클래스와 인터페이스 기본 (Sealed Classes and Interfaces Basics)sealed 클래스와 인터페이스는 제한된 상속을 구현할 때 사용됩니다. sealed 클래스의 모든 직접 하위 클래스는 컴파일 시점에 알려져 있어야 하며, 같은 모듈과 패키지 내에서만 정의될 수 있습니다.sealed interface Errorsealed class IOError(): Errorclass FileReadError(val file: File): IO.. 2024. 8. 14.
[kotlin] 데이터 클래스(Data classes) Kotlin의 데이터 클래스Kotlin의 데이터 클래스(Data Classes)는 주로 데이터를 보유하는 용도로 사용되는 특별한 클래스입니다.이 가이드에서는 Kotlin 데이터 클래스의 다양한 측면을 상세히 살펴보겠습니다.  데이터 클래스 기본 (Data Class Basics)데이터 클래스는 data 키워드로 표시됩니다:data class User(val name: String, val age: Int)컴파일러는 주 생성자에 선언된 모든 속성에 대해 자동으로 다음과 같은 멤버 함수를 생성합니다:.equals()/.hashCode() 쌍.toString() (예: "User(name=John, age=42)").componentN() 함수 (속성 선언 순서에 해당).copy() 함수 데이터 클래스 요구사.. 2024. 8. 14.
[kotlin] 확장 기능(Extensions) Kotlin의 확장 기능Kotlin의 확장(Extensions) 기능은 기존 클래스나 인터페이스에 새로운 기능을 추가할 수 있게 해주는 강력한 도구입니다.이 가이드에서는 Kotlin 확장의 다양한 측면을 상세히 살펴보겠습니다. 확장 함수 (Extension Functions)확장 함수를 사용하면 기존 클래스에 새로운 메서드를 추가할 수 있습니다. 이는 특히 서드파티 라이브러리의 클래스를 수정해야 할 때 유용합니다.fun MutableList.swap(index1: Int, index2: Int) { val tmp = this[index1] // 'this'는 리스트를 가리킵니다 this[index1] = this[index2] this[index2] = tmp}val list = muta.. 2024. 8. 14.
[kotlin] 가시성 수정자(Visibility modifiers) Kotlin의 가시성 수정자Kotlin에서 가시성 수정자(visibility modifiers)는 코드의 캡슐화와 접근 제어를 위한 핵심 기능입니다.이 가이드에서는 Kotlin의 가시성 수정자에 대해 상세히 알아보겠습니다.   가시성 수정자 기본 (Visibility Modifiers Basics)Kotlin에는 네 가지 가시성 수정자가 있습니다: private, protected, internal, public. 기본 가시성은 public입니다.이 수정자들은 클래스, 객체, 인터페이스, 생성자, 함수, 프로퍼티 및 그 세터에 적용될 수 있습니다. 게터는 항상 해당 프로퍼티와 동일한 가시성을 가집니다. 패키지 레벨 선언 (Package-Level Declarations)함수, 프로퍼티, 클래스, 객체, .. 2024. 8. 13.