Kotlin學(xué)習(xí)筆記-class

一、類的構(gòu)造函數(shù)

在Kotlin中寿冕,允許有一個(gè)主構(gòu)造函數(shù)和多個(gè)二級(jí)構(gòu)造函數(shù)(輔助構(gòu)造函數(shù))谨读。其中主構(gòu)造函數(shù)是類頭的一部分。
關(guān)鍵字或者構(gòu)造函數(shù)名:constructor(參數(shù))

1晤锹、什么時(shí)候constructor可以省略

  • 在構(gòu)造函數(shù)不具有注釋符或者默認(rèn)的可見性修飾符時(shí)摩幔,constructor關(guān)鍵字可以省略。
  • 默認(rèn)的可見性修飾符時(shí)public鞭铆』蚝猓可以省略不寫
// 類似下面兩種情況的,都必須存在constructor關(guān)鍵字车遂,并且在修飾符或者注釋符后面封断。
class Test private constructor(num: Int){
}

class Test @Inject constructor(num: Int){
}

2、輔助(二級(jí))構(gòu)造函數(shù)

Kotlin中支持二級(jí)構(gòu)造函數(shù)舶担。它們以constructor關(guān)鍵字作為前綴坡疼。

2.1、聲明

class Test{
    constructor(參數(shù)列表){

    }
}

2.2衣陶、同時(shí)存在主構(gòu)造函數(shù)和二級(jí)構(gòu)造函數(shù)時(shí)的情況

如果類具有主構(gòu)造函數(shù)柄瑰,則每個(gè)輔助構(gòu)造函數(shù)需要通過另一個(gè)輔助構(gòu)造函數(shù)直接或間接地委派給主構(gòu)造函數(shù)。 使用this關(guān)鍵字對(duì)同一類的另一個(gè)構(gòu)造函數(shù)進(jìn)行委派:

fun main(args: Array<String>) {
    var test1 = Test(1)
    var test2 = Test(1,2)
}

// 這里是為了代碼清晰祖搓,故而沒有隱藏constructor關(guān)鍵字
class Test constructor(num: Int){

    init {
        println("num = $num")
    }

    constructor(num : Int, num2: Int) : this(num) {
        println(num + num2)
    }
}

說明:二級(jí)構(gòu)造函數(shù)中的參數(shù)1(num)狱意,是委托了主構(gòu)造函數(shù)的參數(shù)num。
可以看出拯欧,當(dāng)實(shí)例化類的時(shí)候只傳1個(gè)參數(shù)的時(shí)候详囤,只會(huì)執(zhí)行init代碼塊中的代碼。當(dāng)傳2個(gè)參數(shù)的時(shí)候,除了執(zhí)行了init代碼塊中代碼外藏姐,還執(zhí)行了二級(jí)構(gòu)造函數(shù)中的代碼隆箩。
輸出結(jié)果為:

num = 1
num = 1
3

2.3、當(dāng)類的主構(gòu)造函數(shù)都存在默認(rèn)值時(shí)的情況

  • 在JVM上羔杨,如果類主構(gòu)造函數(shù)的所有參數(shù)都具有默認(rèn)值捌臊,編譯器將生成一個(gè)額外的無參數(shù)構(gòu)造函數(shù),它將使用默認(rèn)值兜材。 這使得更容易使用Kotlin與諸如Jackson或JPA的庫(kù)理澎,通過無參數(shù)構(gòu)造函數(shù)創(chuàng)建類實(shí)例。
  • 同理可看出曙寡,當(dāng)類存在主構(gòu)造函數(shù)并且有默認(rèn)值時(shí)糠爬,二級(jí)構(gòu)造函數(shù)也適用
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市举庶,隨后出現(xiàn)的幾起案子执隧,更是在濱河造成了極大的恐慌,老刑警劉巖户侥,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件镀琉,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蕊唐,警方通過查閱死者的電腦和手機(jī)屋摔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刃泌,“玉大人凡壤,你說我怎么就攤上這事“姨妫” “怎么了亚侠?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)俗扇。 經(jīng)常有香客問我硝烂,道長(zhǎng),這世上最難降的妖魔是什么铜幽? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任滞谢,我火速辦了婚禮,結(jié)果婚禮上除抛,老公的妹妹穿的比我還像新娘狮杨。我一直安慰自己,他們只是感情好到忽,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布橄教。 她就那樣靜靜地躺著清寇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪护蝶。 梳的紋絲不亂的頭發(fā)上华烟,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音持灰,去河邊找鬼盔夜。 笑死,一個(gè)胖子當(dāng)著我的面吹牛堤魁,可吹牛的內(nèi)容都是我干的喂链。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼姨涡,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼衩藤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起涛漂,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎检诗,沒想到半個(gè)月后匈仗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡逢慌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年悠轩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片攻泼。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡火架,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出忙菠,到底是詐尸還是另有隱情何鸡,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布牛欢,位于F島的核電站骡男,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏傍睹。R本人自食惡果不足惜隔盛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拾稳。 院中可真熱鬧吮炕,春花似錦、人聲如沸访得。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至俱笛,卻和暖如春捆姜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背迎膜。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工泥技, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人磕仅。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓珊豹,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親榕订。 傳聞我的和親對(duì)象是個(gè)殘疾皇子店茶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • Google在今年的IO大會(huì)上宣布,將Android開發(fā)的官方語(yǔ)言更換為Kotlin劫恒,作為跟著Google玩兒An...
    藍(lán)灰_q閱讀 76,767評(píng)論 31 489
  • Scala與Java的關(guān)系 Scala與Java的關(guān)系是非常緊密的7坊谩! 因?yàn)镾cala是基于Java虛擬機(jī)两嘴,也就是...
    燈火gg閱讀 3,421評(píng)論 1 24
  • 面向?qū)ο缶幊蹋∣OP) 在前面的章節(jié)中憔辫,我們學(xué)習(xí)了Kotlin的語(yǔ)言基礎(chǔ)知識(shí)趣些、類型系統(tǒng)、集合類以及泛型相關(guān)的知識(shí)贰您。...
    Tenderness4閱讀 4,419評(píng)論 1 6
  • 導(dǎo)讀:繼建立米家品牌進(jìn)軍韓國(guó)市場(chǎng)之后坏平,小米將目標(biāo)轉(zhuǎn)向了美國(guó)市場(chǎng),目前流媒體設(shè)備競(jìng)爭(zhēng)激烈的美國(guó)市場(chǎng)會(huì)認(rèn)可孤身遠(yuǎn)洋的小...
    py_sama閱讀 168評(píng)論 0 0
  • 她是早上的霞光啊她是拖長(zhǎng)的身影窈窕在小巷她是一池翠碧里的蓮花啊她是一眼瞥見的難忘 清晨的目光透過車窗不經(jīng)意的一瞥在...
    青語(yǔ)書生閱讀 1,153評(píng)論 20 20