Kotlin基礎教程之伴生對象,getter,setter,內部,局部,匿名類,可變參數(shù)
先來看一個名為Message的類

在這個類中有一段包含在companion object中的代碼,需要說一下的是,Kotlin的class并不支持static變量,所以需要使用companion object來聲明static變量,其實這個platformStatic變量也不是真正的static變量,而是一個伴生對象,
這個伴生對象位于Message類中定義的一個叫做Companion的內部類中,如圖:

可以看到在Kotlin中編譯器自動生成類是很常見的事情,那么這個伴生對象作何理解呢?
我的理解是,伴生對象與單例模式相關,這個對象是Companion類的對象,伴隨著Message類而生.
Companion這個內部類是編譯器自動生成的,我們也可以自己定義內部類,如:

回到Message類中,我們可以看到在info和what域下還存在get和set,不錯,這就是getter和setter函數(shù),一般getter函數(shù)使用默認的就好,setter函數(shù)其實就是在賦值的時候進行一些處理,為了防止setter函數(shù)無限遞歸調用,在類中可以使用$符號訪問成員變量,可以繞過getter和setter函數(shù)直接訪問成員變量.
當然,在Kotlin中除了內部類,還有匿名類和局部類,如圖:
匿名類:


可以看到r這個變量所屬類型是匿名的(no name provided)

局部類:

局部類,就是在函數(shù)內部定義的類,只在函數(shù)內部可以訪問.
在Kotlin中還提供了一些額外的特性,比如可變參數(shù)


這段代碼運行結果如下:

讓我們測試一下Message類:


可見Kotlin的getter和setter所起的作用
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
Idea設置spring boot應用配置參數(shù)的兩種方式
本文通過兩個方式介紹Idea設置spring boot應用配置參數(shù),一種是配置VM options的參數(shù)時要以:-DparamName的格式設置參數(shù),第二種可以參考下本文詳細設置,感興趣的朋友跟隨小編一起看看吧2023-11-11
SpringCloud如何創(chuàng)建一個服務提供者provider
這篇文章主要介紹了SpringCloud如何創(chuàng)建一個服務提供者provider,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07
java開發(fā)實現(xiàn)訂閱到貨通知幫我們買到想買的東西
這篇文章主要為大家介紹了java開發(fā)實現(xiàn)訂閱到貨通知幫我們買到想買的東西示例demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02
Struts2攔截器Interceptor的原理與配置實例詳解
攔截器是一種AOP(面向切面編程)思想的編程方式.它提供一種機制是開發(fā)者能夠把相對獨立的代碼抽離出來,配置到Action前后執(zhí)行。下面這篇文章主要給大家介紹了關于Struts2攔截器Interceptor的原理與配置的相關資料,需要的朋友可以參考下。2017-11-11

