1. 類的定義
kotlin中用class
關鍵字定義乙個類。
//定義乙個空類
class emptyclass
//在kotlin中,乙個類可以有primary構造方法, 以及乙個或多個secondary構造方法
//primary 構造方法是類頭(class header)的一部分,它位於類名後面,可以擁有若干引數
//如果 primary構造方法沒有任何註解或是可見性關鍵字修飾, 那麼constructor關鍵字可以省略
class myclass constructor
(username: string)
/** * 定義和方法體放在一起了
* 對於secondary構造方法的呼叫,一定會直接或間接的呼叫primary構造方法
*/constructor
(username: string, age: int)
:this
(username)
}fun
main
(args: array
)
輸出結果:
primary constructor: username zhangsan , age : 30
primary constructor: username lisi , age : 30
second constructor: username: lisi, age: 50
可以看出,通過secondary構造方法例項化物件時,primary構造方法會首先得到呼叫,其次呼叫secondary構造方法。
宣告乙個類的屬性可以直接在primary構造方法引數中定義,更為簡潔:
class
person
(private
val firstname: string,
private
val age: int,
private
val lastname: string)
}
在jvm上,如果乙個類的primary構造方法的所有引數都包含預設值,那麼kotlin編譯器就會自動生成乙個預設的不帶引數的構造方法,該方法會使用這些引數的預設值,目的在於跟spring等框架更好的整合。如下程式可以正常執行:
class
person
(private
val firstname: string =
"deng"
,private
val age: int =25,
private
val lastname: string =
"changjian")}
funmain
(args: array
)
2. 類的繼承
**示例:
/**
* 乙個類要想被繼承,必須被open關鍵字修飾
*/open
class fruit
funexpirationdate()
}注意繼承這裡的()不能省略
open()
:fruit()
constructor
(color: string)
:this()
//方法被重寫,必須新增override修飾符,並且父類的對應方法也必須被open修飾
//已經被重寫的方法可以繼續被子類重寫
//如果該方法不想被子類重寫,可以新增final關鍵字修飾
override
funname()
open
fungetcolor()
}//注意繼承這裡的()不能省略,在構造方法呼叫時會呼叫父類的構造方法
("red color")}
funmain
(args: array
)
3. 介面實現
用inte***ce
關鍵字定義乙個介面。
介面可以定義抽象方法,也可以定義介面實現。
inte***ce a
funmethod1()
}open
class b
}class c : a,b(
)override
funmethod()
}fun
main
(args: array
)
super.method(), 該語法可以指定具體呼叫哪個介面的方法。 kotlin學習筆記2
函式宣告的方式 1 一般方式 fun fun name 引數 引數型別 返回值型別 當函式只有一行時 var i 引數型別,引數型別 返回值型別 i x,y 直接呼叫 例如 var i int,int int i 3,5 更簡潔的寫法 var i 變數i本身就是乙個函式 i 引數 直接進行呼叫 具名...
Swift學習筆記 物件導向(2)
定義計算屬性 修飾符 var 計算屬性名 屬性型別 set 形參名 1,修飾符可省略 2.var 只能定義成變數,因此只能使用var 使用列舉定義乙個計算屬性 enum season set set newvalue var s season.spring 正在執行getter方法 春暖花開 pri...
物件導向java學習筆記2
x abc y x和y指向同乙個。x abc y abc x和y的值相同。拓 char x abc char y abc x y的結果是false,判讀的是指標引用的記憶體位址不同 x y的結果是true,兩個指標位址所儲存的數值相同。例項1 package oolearning public cl...