2016/12/23の30分 Kotlinメモ
書いてるコードは雑にここにあります。
Kotlinスタートブック -新しいAndroidプログラミング を引き続き読んでる。
Kotlinスタートブック -新しいAndroidプログラミング
- 作者: 長澤太郎
- 出版社/メーカー: リックテレコム
- 発売日: 2016/07/13
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
Extension Properties
プロパティも拡張できるのか。便利だなーまったく!!
// 拡張プロパティ // バッキングフィールドは持てない val String.countWords: Int get() = split("""\s+""".toRegex()).size println("Kotlin Kotlin Kotlin!!".countWords) // 3
継承
継承していいものにopen
つけろよ!ってところ以外はだいたいJavaと同じかなー。
プロパティもoverrideできるのか!?ってことには驚いた!できるのか、そうか。
open class Person(val name: String) { open var age: Int = 0 open fun introduce() { println("I am $name2.") } } class Student(name: String, val id: Long) : Person(name) { override var age: Int = 0 get() = field set(value) { field = value * 2 } override fun introduce() { println("I am $name(id=$id).") } } // super classの型にsub classの型は入る val p2: Person = Student("kotlin", 1L) p2.introduce()
Abstract Classes
これはほぼJavaと同じかなー
そしてプロパティをabstractにできるのか!?できるのか、そうか。
abstract class Greeter(val target: String) { abstract var code: String abstract val age: Int abstract fun sayHello() } class EnglishGreeter(target: String, override val age: Int) : Greeter(target) { override var code: String = "" get() = "en" set(value) { field = value } override fun sayHello() { println("Hello $target!") } } class JapaneseGreeter(target: String, override val age: Int) : Greeter(target) { override var code: String = "" get() = "ja" set(value) { field = value } override fun sayHello() { println("こんにちは、$target!") } }
まとめ
冬休みもKotlinガンバルぞい!