본문 바로가기

Language/Kotlin15

[Kotlin] Object 키워드(Object Keyword)란? JAVA와 동일하게 코틀린에서도 Object 형식으로 변수 및 클래스를 사용 할 수 있습니다. 코틀린 Ojbect 클래스의 경우 싱글턴 패턴으로 생성되어 2개 이상의 스레드에서 생성 할 경우에도 해당 클래스 인스턴스는 하나만 생성됩니다. JAVA 역시 싱글턴 패턴 클래스 생성 후 사용 가능 하지만 코틀린에서는 더욱 간결하게 생성 및 사용 가능합니다. Object 변수 선언 fun main() { rentPrice(10, 2, 1) } fun rentPrice(standardDays: Int, festivityDays: Int, specialDays: Int): Unit { val dayRates = object { //1 var standard: Int = 30 * standardDays var fest.. 2021. 7. 17.
[Kotlin] 클래스를 봉인한다.(Sealed Classes)란? Sealed Classes사용 할 경우 상속을 제한 할 수 있습니다. Sealed Classes로 선언될 경우 동일한 패키지나 내부에서만 사용 할 수 있습니다. Sealed Classes는 패키지 외부에서 선언해서 사용 할 수 없습니다. sealed class Mammal(val name: String) // 1 class Cat(val catName: String) : Mammal(catName) // 2 class Human(val humanName: String, val job: String) : Mammal(humanName) fun greetMammal(mammal: Mammal): String { when (mammal) { // 3 is Human -> return "Hello ${mamma.. 2021. 7. 17.
[Kotlin] enum 클래스(Enum Classes)란? enum 클래스는 상태 모드 등 유사한 값들을 고유값으로 만들어 사용하기 위해 사용합니다. enum class State { IDLE, RUNNING, FINISHED // 1 } fun main() { val state = State.RUNNING // 2 val message = when (state) { // 3 State.IDLE -> "It's idle" State.RUNNING -> "It's running" State.FINISHED -> "It's finished" } println(message) } 결과 : It's running 설명 1. enum 클래스에 값을 선언한다. 선언된 값은 모두 고유값이다. 2. enum 클래스를 특정 값은 선언한다. 3. when 조건문을 통해 state.. 2021. 7. 17.
[Kotlin] 데이터 클래스(Data Classes)란? 코틀린 데이터 클래스(Data Classes)란? 1. 값을 저장하는 클래스를 쉽게 만들 수 있다. 2. 복사, 문자열 가져오기 3. 메소드 재정의 할 수 있다. data class User(val name: String, val id: Int) { // 1 override fun equals(other: Any?) = other is User && other.id == this.id // 2 } fun main() { val user = User("Alex", 1) println(user) // 3 val secondUser = User("Alex", 1) val thirdUser = User("Max", 2) println("user == secondUser: ${user == secondUser}".. 2021. 7. 14.