Kotlin第二講

1940 ワード

レイアウトファイルがidを宣言した後、Activityでfindviewbyidの操作を行う必要はなく、コントロールを宣言する必要はなく、直接使用できます.ただしactivityでimportする必要があります(android studioは一般的に自動的に導入されます).のように
activityではmessageを直接使用することができる.text=「hello kotlin」で、android studioは一般的にimport文を導入しますが、そうでない場合は手動で導入する必要があります.
import kotlinx.android.synthetic.main.activity_main.*
これらのメソッドをセットする必要がなく、コンパイラがjavaコードに自動的に変換されることがわかります.
クラスの定義
class MainActivity{}は、デフォルトで一意のコンストラクタを持っていますが、ほとんどの場合、このデフォルトのコンストラクタしか必要ないことを覚えておいてください.クラス名の後ろにパラメータを書くだけです.このクラスにカッコ:class Person(name:String,surname:String)を省略できる内容がない場合、構造関数の関数体はどこにありますか?Initブロックに書くことができます.
class Person(name: String, surname: String) {init{...}}
クラス継承
デフォルトのクラスはAnyから継承されます(javaのObjectと似ていますが、特にequals()、hashCode()、toString()以外にメンバーはありません).しかし、他のクラスを継承することができます.すべてのクラスのデフォルトは継承できません(final)ので、openを明確に宣言するしか継承できません.
またはabstractのクラス:open class Animal(name:String)class Person(name:String,surname:String):Animal(name)
クラスのインスタンスの作成
KotlinにはNewというキーワードはありませんが、どのようにしてインスタンスを作成しますか?多くの簡単さは、通常の関数のようにコンストラクション関数を呼び出すだけでいいです.
val invoice = Invoice()
val customer = Customer("Joe Smith")
これにより、インスタンスが作成される.
属性とフィールド:
Kotlinのクラスには属性があります.プロパティは、キーワードvarで可変と宣言できます.そうしないと、読み取り専用キーワードvalが使用されます.
インタフェース
インタフェースはインターネットキーワードで定義されています.
interface MyInterface {
fun bar()
fun foo() {
//  
}
 。
class Child : MyInterface {
override fun bar() {
//  
}

汎用型
class Box(t: T) {
    var value = t
}																// val box: Box = Box(1);

ネストされたクラスと内部クラス
 :
class Outer {
private val bar: Int = 1
class Nested {
fun foo() = 2
}}
val demo = Outer.Nested().foo() // == 2
 :
class Outer {
private val bar: Int = 1
inner class Inner {
fun foo() = bar
}}
val demo = Outer().Inner().foo() // == 1
によると、内部クラスはinnerキーを使用しており、使用方法も少し異なり、内部クラスは外部クラスオブジェクトの参照を持っている.