1.類的創建
在kotlin中類的創建很簡單,只需要
class Person{
}
因爲在kotlin中有默認的構造函數,當我們需要向這個類裏面傳入參數的時候,和java有點不同的是,參數直接在類名中,並且是 (變量名:類型)的格式,並且如果這個
類沒有任何的內容就可以省略大括號和內容
class Person(name: String, surname: String)
//或是
class Person(name: String, surname: String){
}
以上的兩種方式都是可以的2.主構造函數
以上的實現是屬於主構造函數,相當於默認的構造函數,而在主構造函數中,我們想要初始化一些數據,必須要把內容寫在init的內容塊中
class Person(name:String,surname:String){
init{
val namelength=name.length
}
}
3.次構造函數當我們想要實現像java中的多種構造函數的效果的時候,就需要用到一個constructor 的關鍵字
class Person {
//主構造函數
constructor() {
Log.e("Person","2")
}
//通過this調用主構造函數,類似java中的super的調用
constructor(name: String):this() {
Log.e("Person","2")
}
constructor(name: String, age: Int) : this(name) {
Log.e("Person","3")
}
}
在上面的代碼中,相當於次構造函數委託給主構造函數,相當於java中的 super操作,次函數有自己要實現的內容,並且實現主函數中的內容
當代碼調用這個類的時候
val person=Person("name1","name2")
調用了第三個構造方法,並且打印出123,如果不想要繼承主構造函數,或是其他的構造函數,只需要去掉後面的 (:this())即可。
4.類繼承
在kotlin中也有和java中一樣的基類 Any (相當於java 中的Object),一般的類是不繼承,我們新建一個類的時候,能夠繼承的只有,
生命了 open 或是 abstract 的類,而繼承也是很簡單,和構造方法的繼承一樣
open class body(height: Int)
class Person(name: String, height: Int) : body(height)
5.函數在java中相當於方法,在kotlin中定義函數只需要用 fun 這個關鍵字即可
//當沒有指定數據類型的時候爲無返回類型,會返回一個Unit,相當於java的void,不過Unit是一個真正的對象
fun log(){
Log.e("log","log")
}
//以下的就是指定返回Int類型
fun add(x: Int, y: Int) : Int {
return x + y
}
//能夠用一個等式結束的內容,可以簡寫爲以下這種方式
fun add(x: Int, y: Int) : Int =x+y
//還可以爲函數添加默認值,這樣調用的時候,可以不需要傳入這個值
fun atoast(message:String ,duration: Int=Toast.LENGTH_SHORT){
Toast.makeText(this,message,duration).show()
}