Kotlin支援物件導向程式設計(OOP)以及函式式程式設計。 物件導向程式設計基於物件和類。 Kotlin還支援OOP語言的支柱,如:封裝,繼承和多型。
Kotlin類與Java類基本類似,類是具有共同屬性的物件的藍圖。 Kotlin類使用關鍵字class
宣告。 Kotlin類有一個類頭,它指定了它的型別引數,建構函式等,以及由花括號包圍的類體。
Kotlin類宣告的語法
class className{ // class header
// property
// member function
}
在上面的範例中,class className
是一個空建構函式。 它由編譯器自動生成,但如果想提供建構函式,需要編寫一個建構函式關鍵字,後跟類名:
class className constructor(){ // class header
// property
// member function
}
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_no
,name
,amount
和三個成員函式:deposit()
,withdraw()
,checkBalance()
。
在Kotlin中,屬性必須初始化或宣告為抽象。 在上面的類中,屬性acc_no
初始化為0
,name
為null
,amount
為0f
。
物件是實時實體,或者可以是具有狀態和行為的邏輯實體。 它具有以下特點:
物件用於存取類的屬性和成員函式。 Kotlin允許建立一個類的多個物件。
Kotlin物件分兩步建立,第一步是建立參照,然後建立一個物件。
var obj1 = className()
建立多個物件 -
var obj1 = className()
var obj2 = className()
這裡obj1
和obj2
是參照,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