본문 바로가기

Android/안드로이드 스터디(Kotlin)61

Kotlin] 24. 동반자 객체(Companion Object) 동반자 객체는 클래스 안에 이름이 없는 객체이다. 이 객체는 인스턴스가 몇 개이던 간에 모든 인스턴스가 공유한다. 코틀린은 static이 없기 때문에 동반자 객체가 static과 유사한 작동을 한다. 예시를 보자. package companionObject class Person private constructor(){ companion object{ fun create() : Person { countCreated += 1 return Person() } var countCreated = 0 private set } } fun main() { val a = Person.create() val b = Person.create() println(Person.countCreated) } Person은 싱글톤.. 2020. 12. 10.
Kotlin] 23. 객체 선언(Singleton) 싱클톤 디자인 패턴은 전체 프로그램에서 객체를 단 한번만 선언하여 인스턴스에 띄우고 그 인스턴스로 접근하는 방식이다. 자바의 경우 static으로 띄워 instance 를 공유하는 방식인데, 코틀린은 static이 없다. 그러므로 싱글톤을 만드는 키워드를 제공한다(!) class를 선언하듯 object를 선언하기만 하면 싱글톤이 된다. package objectDeclaration object Person { var name : String = "" var age : Int = 0 fun print(){ println(name) println(age) } } fun main(){ Person.name = "Singleton" Person.age = 32 Person.print() } 대신 이 키워드에는 .. 2020. 12. 10.
Kotlin] 22. 확장 코틀린은 String등에 접근할 수가 없다. 대신 이를 접근하기 위해 확장함수의 개념을 사용한다. package extension fun String.isNumber() : Boolean { var i =0 while (i Unit instantFunc = {number: Int -> println("Hello $number") } instantFunc(33) instantFunc?.inv.. itstudy-mary.tistory.com 이 리터럴을 확장하는 것도 .. 2020. 12. 10.
Kotlin] 21. 다운캐스팅 자바에서의 다운 캐스팅은 객체 앞에 (다운캐스팅 될 서브 클래스 타입)을 붙이면 다운 캐스팅이 됐다. 그럼 코틀린은? 코틀린은 as를 붙인다. 슈퍼클래스 as 서브클래스 로 다운 캐스팅을 한다. 예시를 보자. package downCastingEx import `object`.Person import `object`.Student fun main() { val person : Person = Student("John", 21, 20201209) val person2 : Person = Person("Kahn", 21) var person3 : Student = person as Student } 현재 Student는 Person의 서브 클래스 형태이다. Person3는 Person 성격을 가지는 pers.. 2020. 12. 9.
반응형