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_no
,name
,amount
和三個成員函數:deposit()
,withdraw()
,checkBalance()
。
在Kotlin中,屬性必須初始化或聲明爲抽象。 在上面的類中,屬性acc_no
初始化爲0
,name
爲null
,amount
爲0f
。
Kotlin對象
對象是實時實體,或者可以是具有狀態和行爲的邏輯實體。 它具有以下特點:
- 狀態:表示對象的值。
- 行爲:它表示對象的函數。
對象用於訪問類的屬性和成員函數。 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