3.kotlin 類和函數

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()
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章