본문 바로가기

Kotlin15

(Kotlin) sealed class 1. sealed class 보통 여러 자식 클래스들이 하나의 부모 클래스를 상속하게 되면 컴파일러는 상속하는 자식 클래스가 어떤 클래스인지 모른다. Kotlin의 sealed class는 부모 클래스를 상속하는 자식 클래스의 종류를 제한하는 특성을 갖는 클래스이다. 또한, sealed class는 같은 패키지에 존재하는 자식 클래스만 상속할 수 있다. 즉, sealed class를 사용하게 되면 동일 파일에 정의되어 있는 자식 클래스 외에 다른 어떤 클래스도 존재하지 않는다는 것을 명시적으로 컴파일러에 알려 컴파일 에러를 없에게 된다. UI의 상태를 관리하는 클래스를 만든다고 가정해보자. abstract class UiState class Loading : UiState class Running : U.. 2022. 7. 27.
(Kotlin) open class, abstract class Java에는 final이라는 키워드가 있다. final로 선언된 클래스와 메소드는 기본적으로 상속과 오버로드가 제한된다. 즉, 자식 클래스에서 이 클래스나 메소드를 재정의하려 할 때 컴파일 에러를 발생시키게 된다. final로 선언한다는 의미는 명시적으로 Override Method를 제한하고 싶을 때 사용할 수 있다. Kotlin은 어떨까? Kotlin의 클래스와 메소드는 기본적으로 final이다. 하지만, 우리는 다양한 이유로 클래스나 메소드를 상속하여 개발해야 하는 상황이 존재한다. 이를 위해, Kotlin은 상속에 사용되는 몇가지 키워드를 제공하고 있다. 1. open class open class Shape class Rectangle(var height: Double, var length: D.. 2022. 7. 27.
(Coroutine) 0. 개요 및 특징 1. 루틴? 코루틴? 1.1. 루틴, 메인 루틴, 서브 루틴 루틴(Routine)은 어떤 작업을 정의한 명령어의 집합을 의미한다. 간단하게 우리가 작성하는 코드들의 집합이라고 볼 수 있다. 따라서 하나의 프로그램은 보통 크고 작은 여러 가지 루틴들을 조합하여 만들어진다고 볼 수 있다. 루틴은 다시 메인 루틴(Main Routine)과 서브 루틴(Sub Routine)으로 나뉜다. 일반적으로 main 함수에 의해 수행되는 프로그램의 흐름을 메인 루틴이라고 한다. 반면, main 함수 안에서 실행되는 개별 함수들에 의해 수행되는 흐름을 서브 루틴이라고 한다. 메인 루틴과 서브 루틴의 차이는 아래의 코드를 통해 쉽게 확인할 수 있다. fun main() { val addValue = plusOne(10) //.. 2021. 12. 20.
(Kotlin) Class 정의 2021.10.04 - [[Languages]] - 객체 지향 프로그래밍 (OOP) 에서 이어지는 포스팅입니다. Kotlin에는 사용할 수 있는 Class의 유형이 아주 다양하다. 이번 포스팅은 다양한 유형의 Class 중 일반적인 Class를 정의하는 방법에 대한 포스팅이다. 1. 일반적인 Class Kotlin에서 Class는 class 키워드를 사용하여 정의한다. class Soldier { /* 멤버 변수 (클래스 변수, 인스턴스 변수) 멤버 함수 */ } class Message { // 구현 } class PracticleSystem { // 구현 } class MainActivity: AppCompatActivity() { override fun onCreate(...) { // 인스턴스화 .. 2021. 10. 4.