<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      kotlin類與對象——>嵌套類與內部類、枚舉類

      1.嵌套類,類可以嵌套在其他類中:

      class Outer {
          private val bar: Int = 1 
          class Nested {
              fun foo() = 2 
          }
      }
      
      val demo = Outer.Nested().foo() // == 2

      2.內部類,標記為inner的嵌套類能夠訪問其外部類的成員。內部類會帶有一個對外部類的對象的引用

      class Outer {
          private val bar: Int = 1 
          inner class Inner {
              fun foo() = bar
          }
      }
      
      val demo = Outer().Inner().foo() // == 1
      //參?限定的 this 表達式以了解內部類中的 this 的消歧義用法。

      3.匿名內部類,使用對象表達式創建匿名內部類實例

      window.addMouseListener(object : MouseAdapter() {
          override fun mouseClicked(e: MouseEvent) {
              ......
          }
      
          override fun mouseEntered(e: MouseEvent) {
              ......
          }
      })

        3.1 注:對于 JVM 平臺, 如果對象是函數式 Java 接口(即具有單個抽象方法的 Java 接口)的實例,你可以使 用帶接口類型前綴的lambda表達式創建它:

      val listener = ActionListener { println("clicked") }

      4.枚舉類,枚舉類的最基本的用法是實現類型安全的枚舉:

      enum class Direction { 
          NORTH, SOUTH, WEST, EAST
      }
      //每個枚舉常量都是一個對象。枚舉常量用逗號分隔。

      5.初始化,因為每一個枚舉都是枚舉類的實例,所以他們可以是這樣初始化過的

      enum class Color(val rgb: Int) { 
          RED(0xFF0000),
          GREEN(0x00FF00),
          BLUE(0x0000FF)
      }

      6.匿名類,枚舉常量還可以聲明其帶有相應方法以及覆蓋了基類方法的匿名類

      enum class ProtocolState {
          WAITING {
              override fun signal() = TALKING
          },
          TALKING {
              override fun signal() = WAITING
          };
          abstract fun signal(): ProtocolState
      }

        如果枚舉類定義任何成員,那么使用分號將成員定義中的枚舉常量定義分隔開。枚舉條目不能包含內部類以外的嵌套類型(已在 Kotlin 1.2 中棄用)。

      7.在枚舉類中實現接口

        一個枚舉類可以實現接口(但不能從類繼承),可以為所有條目提供統一的接口成員實現,也可以在相應 匿名類中為每個條目提供各自的實現。只需將接口添加到枚舉類聲明中即可,如下所示:

      enum class IntArithmetics : BinaryOperator<Int>, IntBinaryOperator {
          PLUS {
              override fun apply(t: Int, u: Int): Int = t + u
          },
          TIMES {
              override fun apply(t: Int, u: Int): Int = t * u
          };
      
          override fun applyAsInt(t: Int, u: Int) = apply(t, u)
      }

       8.使用枚舉常量

        Kotlin 中的枚舉類也有合成方法允許列出定義的枚舉常量以及通過名稱獲取枚舉常量。這些方法的簽 名如下(假設枚舉類的名稱是 EnumClass):

      EnumClass.valueOf(value: String): EnumClass 
      EnumClass.values(): Array<EnumClass>

        如果指定的名稱與類中定義的任何枚舉常量均不匹配,valueOf() 方法將拋出 IllegalArgumentException 異常。

        自 Kotlin 1.1 起,可以使用 enumValues<T>() 與 enumValueOf<T>() 函數以泛型的方式訪問枚 舉類中的常量 :

      enum class RGB { RED, GREEN, BLUE }
      
      inline fun <reified T : Enum<T>> printAllValues() {         
            print(enumValues<T>().joinToString { it.name })
      }
      printAllValues<RGB>() // 輸出 RED, GREEN, BLUE

      每個枚舉常量都具有在枚舉類聲明中獲取其名稱與位置的屬性:

      val name: String 
      val ordinal: Int

      枚舉常量還實現了 Comparable 接口,其中自然順序是它們在枚舉類中定義的順序

       

      posted @ 2020-06-24 15:27  王世楨  閱讀(421)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 无码人妻一区二区三区精品视频| 亚洲成a∨人片在线观看不卡| 精品午夜福利在线视在亚洲| 久热这里有精品视频播放| 精品亚洲香蕉久久综合网| 成人午夜在线观看刺激| 免费99视频| 99在线精品国自产拍中文字幕| 丰满少妇在线观看网站| 91福利视频一区二区| 国产精品高清一区二区三区| 成人无码潮喷在线观看| 亚洲精品福利一区二区三区蜜桃| 换着玩人妻中文字幕| 欧美不卡一区二区三区| 午夜射精日本三级| 日本亚洲一区二区精品| 亚洲性日韩精品一区二区 | 国产日韩综合av在线| 国产一区二区在线观看的| 九九在线精品国产| 亚洲一区在线成人av| 久久丫精品久久丫| 欧美不卡无线在线一二三区观| 国产人妻精品一区二区三区不卡| 精品久久精品午夜精品久久| 国产精品呻吟一区二区三区| 午夜精品福利亚洲国产| 日本一道一区二区视频| 亚洲国产成人精品区综合| 亚洲VA久久久噜噜噜久久无码| 精品一区二区中文字幕| 99精品国产在热久久婷婷| 亚洲男人的天堂一区二区| 久久精品国产99国产精品澳门| 在线视频一区二区三区色| 2020年最新国产精品正在播放| 国产真人性做爰久久网站| 国产精品对白刺激久久久| 亚洲欧洲精品日韩av| 金阳县|