類和繼承

Kotlin 中使用 關(guān)鍵字 Class 聲明類

class Invoice{
...
}
//如果類沒(méi)有內(nèi)容,可以省略 {}
class Invoice

構(gòu)造函數(shù)

Kotlin 中類可以有主構(gòu)造函數(shù)次構(gòu)造函數(shù)

class Person constructor(firstName :String){
...
}
//如果主構(gòu)造函數(shù)沒(méi)有任何注釋和可見(jiàn)性修飾符 ,則可以省略 **constructor**關(guān)鍵字
class Person(firstName :String){
...
} 

主構(gòu)造函數(shù)不能有任何代碼塊,初始化代碼可以放在以 init為關(guān)鍵字的初始化塊中

//與常規(guī)屬性相同,constructor中聲明的屬性可以是 val (只讀)和  var (可變的)
class  Person( var firstName :String){
    init{
      firstName = "vincent"  
    }
}

次構(gòu)造函數(shù)

class Personal(var firstName : String){
    
    //初始化代碼塊
    //所有init代碼塊中的代碼都在次構(gòu)造函數(shù)之前執(zhí)行
    init {
        firstName = "vincnet"
    }
    //次構(gòu)造函數(shù)  ,
    constructor( firstName: String , parent: Parent) : this(firstName){
        
    }
    
}
可見(jiàn)性修飾符
  • public (默認(rèn)為public)
  • private (私人的)
  • protected (private + 可以在子類中被看到)
  • internal (模塊內(nèi)可見(jiàn))

繼承 -> 要么為繼承而設(shè)計(jì),并提供文檔說(shuō)明,要么就禁止繼承。

//父類使用open  或者 abstract 修飾
open  class Base{  
    open fun v(){
        ...
    }
}
//子類使用 : Base()進(jìn)行繼承 
class  Gss : Base(){
     override fun v() {
        super.v()
    }
}

對(duì)象表達(dá)式和對(duì)象聲明

對(duì)象表達(dá)式
// 比如使用一個(gè)匿名內(nèi)部類
btn_login.setOnClickListener(object:View.OnClickListener{
            override fun onClick(p0: View?) {
            }
        })
//如果只有一個(gè)方法對(duì)象 ,繼續(xù)簡(jiǎn)化
btn_login.setOnClickListener {
            ...
        }

單例 -> 用 object 修飾類名即可

伴生對(duì)象 ->

與java 中的靜態(tài)方法用法一樣 ,(官方推薦使用包級(jí)函數(shù))伴生用 companion 關(guān)鍵字標(biāo)記

class  Sample{
    companion object  Util{
        fun sum(a: Int, b:Int )  = a + b
    }
}
// 也可以省略伴生對(duì)象的名稱 ,在這種情況下將使用名稱 Companion:
class  Sample{
    companion object {
        fun sum(a: Int, b:Int )  = a + b
    }
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容