<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 創建[伴生對象](http://www.hmoore.net/alex_wsc/android_kotlin/1318311#companion_object_113) 由于**在Kotlin中沒有靜態變量**,因此它**使用了伴生對象來替代Java中的靜態變量的作用**。**伴生對象是在類加載時初始化,生命周期與該類的生命周期一致。在Kotlin中,定義伴生對象是通過“companion”關鍵字標識的。** 由于**每個類中有且僅有一個伴生對象,因此也可以不指定伴生對象的名稱,并且其他對象可以共享伴生對象**。 伴生對象的語法格式如下: ``` companion object 伴生對象名稱(也可以不寫,但使用時要用Companion) { 程序代碼…… } ``` 由于**伴生對象可以指定名稱,也可以不指定名稱**,因此在調用伴生對象時分兩種情況,具體如下。 * (1)**有名稱**:調用方式為“**類名.伴生對象名.成員名**”或“**類名.成員名**”。 * (2)**無名稱**:調用方式為“**類名.Companion.成員名**”或“**類名.成員名**”。 示例 ``` fun main(args: Array<String>) { //調用伴生對象中的函數 Company.Factory.sayHello() //第一種調用方式:類名.伴生對象名.成員函數名 Company.sayHello() //第二種調用方式:類名.成員函數名 } class Company { companion object Factory { fun sayHello() { println("我是一個伴生對象,與類相生相伴") } } } ``` 運行結果 ``` 我是一個伴生對象,與類相生相伴 我是一個伴生對象,與類相生相伴 ``` 我們知道Kotlin中成員方法的調用形式是【對象.方法()】。包級別函數的調用形式是【方法()】。那有沒有【類.方法()】的形式呢?也就是**類似java里面的靜態方法的調用**。答案是有的,**通過companionobject關鍵字申明的伴生對象,方法或者屬性調用的時候就是【類.方法()】、【類.屬性】**。 什么是伴生對象呢?也就是伴隨在某一個類身上。定義的時候,定義在一個類的內部,參考案例: ![](http://upload-images.jianshu.io/upload_images/7368752-6554c8de39a53ff8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 這里的B就是A的伴生對象,只有在A創建的時候,對象B的實例才會創建。 >[success]伴生對象可以有自己的方法和屬性,甚至可以實現接口,繼承類。伴生對象內的方法訪問可以有【外部類.內部類.方法()】的形式以及【外部類.方法()】。伴生對象內的屬性訪問可以有【外部類.內部類.屬性】的形式以及【外部類.屬性】, 參考代碼: ![](http://upload-images.jianshu.io/upload_images/7368752-37c3fa766f10ba3c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看