분류 전체보기556 Kotlin] 41. 위임 코틀린에서는 프로퍼티의 getter/setter을 모듈화할 수 있도록 다른 객체에 위임할 수 있다. - Sample.kt package delegatedPropertyEx class Sample{ var number : Int by OnlyPositive() } by를 통해 위임할 객체를 찾는다. 위임할 객체를 보자. - OnlyPositive.kt package delegatedPropertyEx import kotlin.reflect.KProperty class OnlyPositive { private var realValue : Int = 0 operator fun getValue(thisRef : Any?, property : KProperty) : Int { return realValue } o.. 2020. 12. 14. Kotlin] 40. sealed Class 원래 중첩 클래스는 외부 클래스를 내부 클래스에 상속할 수 없다. 그런데 sealed 클래스는 자신의 중첩 클래스 안에서만 상속을 허용한다. - Sealed.kt package sealedEx sealed class Outer { class One : Outer() class Two : Outer() class Three : Outer() } 상속이 허용된다. 그런데.. 다른 클래스를 보면. - Other.kt package sealedEx //class Four : Outer() 주석을 풀면 다음처럼 컴파일 오류가 난다. Cannot access '': it is private in 'Outer' 오류이다. 접근할 수 없다고 한다. 모두가 같은 클래스를 가지고 있으므로 메인은.. 세번째가 출력된다. p.. 2020. 12. 11. Kotlin] 39. enum enum은 써봤지만 멤버함수랑 프로퍼티 주는건... 이게 자바에 있을 순 있는데 개발에 써먹어본적이 없어서(ㅋㅋ) 열거 클래스도 클래스라 프로퍼티와 멤버 변수를 가질 수 있다. package enumEx enum class Mode(val number : Int) { SELETCTION(0), PEN(1), SHAPE(2), ERASER(3); fun printNumber(){ println("모드 : $number") } } fun main() { val mode : Mode = Mode.ERASER println(mode.number) mode.printNumber() } 열거 클래스에 생성자가 있으면 반드시 (인수)를 적어 생성자를 호출해야한다. 열거 클래스는 열겨된 상수 뒤에 반드시 붙어야 한다... 2020. 12. 11. Kotlin] 38. 배열 배열을 선언하는 방식 역시 자바와 많이 다르다. package arrayEx fun main() { val integers : Array = arrayOf(10, 20, 30, 40) println(integers.size) println(integers[1]) } arrayOf를 이용하면 간편하게 arrayList를 만들 수 있다. 이 때 자바의 array와 다르게 딱히 배열의 크기를 지정하지 않아도 된다. 결과 : 4 20 그럼 배열을 가변인수로 활용해보자. 앞에서 vararg이라는 값을 통해 마치 배열처럼 여러개의 값을 넣는 것을 본 적이 있다. 그럼 array를 넣어보자 package arrayEx fun printAll (vararg token : String) { for(number in to.. 2020. 12. 11. 이전 1 ··· 66 67 68 69 70 71 72 ··· 139 다음 반응형