Kotlin類和物件


Kotlin支援物件導向程式設計(OOP)以及函式式程式設計。 物件導向程式設計基於物件和類。 Kotlin還支援OOP語言的支柱,如:封裝,繼承和多型。

Kotlin類

Kotlin類與Java類基本類似,類是具有共同屬性的物件的藍圖。 Kotlin類使用關鍵字class宣告。 Kotlin類有一個類頭,它指定了它的型別引數,建構函式等,以及由花括號包圍的類體。

Kotlin類宣告的語法

class className{   // class header  
      // property  
      // member function  
}

在上面的範例中,class className是一個空建構函式。 它由編譯器自動生成,但如果想提供建構函式,需要編寫一個建構函式關鍵字,後跟類名:

class className constructor(){   // class header  
      // property  
      // member function  
}

Kotlin類範例

class Account {
    var acc_no: Int = 0
    var name: String? = null
    var amount: Float = 0f

    fun deposit() {
        //deposite code
    }

    fun withdraw() {
        // withdraw code
    }

    fun checkBalance() {
        //balance check code
    }
}

Account類有三個屬性acc_nonameamount和三個成員函式:deposit()withdraw()checkBalance()

在Kotlin中,屬性必須初始化或宣告為抽象。 在上面的類中,屬性acc_no初始化為0namenullamount0f

Kotlin物件

物件是實時實體,或者可以是具有狀態和行為的邏輯實體。 它具有以下特點:

  • 狀態:表示物件的值。
  • 行為:它表示物件的函式。

物件用於存取類的屬性和成員函式。 Kotlin允許建立一個類的多個物件。

建立一個物件

Kotlin物件分兩步建立,第一步是建立參照,然後建立一個物件。

var obj1 = className()

建立多個物件 -

var obj1 = className()  
var obj2 = className()

這裡obj1obj2是參照,className()是一個物件。

存取類屬性和成員函式

類的屬性和成員函式可以通過.運算子存取物件。 例如:

obj.deopsit()  
obj.name = Ajax

下面建立一個使用.運算子來存取類屬性和成員函式的範例。

class Account {
    var acc_no: Int = 0
    var name: String =  ""
    var amount: Float = 0.toFloat()
    fun insert(ac: Int,n: String, am: Float ) {
        acc_no=ac
        name=n
        amount=am
        println("賬號: ${acc_no} ,賬戶名 :${name},總金額 :${amount}")
    }

    fun deposit() {
        //deposite code
    }

    fun withdraw() {
        // withdraw code
    }

    fun checkBalance() {
        //balance check code
    }

}
fun main(args: Array<String>){
   // Account()
    var acc= Account()
    acc.insert(832345,"Maxsu",1000f) // 存取成員函式
    println("${acc.name}") // 存取類屬性
}

執行上面範例程式碼,得到以下結果 -

賬號: 832345 ,賬戶名 :Maxsu,總金額 :1000.0  Maxsu