最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Kotlin 基礎(chǔ)教程之類、對象、接口

 更新時間:2017年06月30日 10:49:35   投稿:lqh  
這篇文章主要介紹了Kotlin 基礎(chǔ)教程之類、對象、接口的相關(guān)資料,需要的朋友可以參考下

Kotlin 基礎(chǔ)教程之類、對象、接口

Kotlin中類、接口相關(guān)概念與Java一樣,包括類名、屬性、方法、繼承等,如下示例:

interface A {
  fun bar()
  fun foo() {
  // 可選方法體
  }
}

class Child: A {
  override fun bar() {
    // todo
  }
  override fun foo() {
    super.foo()
  }
}

class

構(gòu)造器

Kotlin 中的類可以有一個 主構(gòu)造器, 以及一個或多個次構(gòu)造器, 主構(gòu)造器是類頭部的一部分, 位于類名稱之后。

class Person constructor(name: String) {...}

如果主構(gòu)造器沒有任何注解(annotation), 也沒有任何可見度修飾符, 那么 constructor 關(guān)鍵字可以省略

class Person(name: String) {...}

主構(gòu)造器中不能包含任何代碼. 初始化代碼可以放在初始化代碼段 (initializer block) 中

class Persion(name: String) {
  private val firstName: String = name
  private var age: Int
  init {
    age = 10
  }
}

Kotlin 有一種簡潔語法, 可以通過主構(gòu)造器來定義屬性并初始化屬性值:

class Persion(val name: String, var age: Int) {...}

如果構(gòu)造器有注解, 或者有可見度修飾符, 這時 constructor 關(guān)鍵字是必須的, 注解和修飾符要放在它之前

class Persion public @Inject constructor(val name: String) {...}

類還可以聲明次級構(gòu)造器 (secondary constructor)。如果類有主構(gòu)造器, 那么次級構(gòu)造器都必須委托給主構(gòu)造器

class Persion(val name: String) {
  constructor(name: String, age: Int): this(name) {
    // todo
  }
}

類實例化

Kotlin 沒有 new 關(guān)鍵字

val persion = Persion("jason")

繼承

Kotlin的繼承概念和Java一樣,”類名: 超類“ 冒號表示繼承。

與Java的Object相對,Kotlin也有一個這樣的Any類,類默認繼承Any。

與Java的final相反,Kotlin類默認是final的,允許被繼承的類,需要加 open 修飾。

open class Base {
  open fun v() {...}
  fun nv() {...} // can't be override
}

方法和屬性的覆蓋

方法的覆蓋和Java類似,但是只有 open 的方法才能 override, final 類是不允許定義 open方法。

class Other: Base() {
  override fun v() {...}
}

可以加final禁止ovrride, final override fun v() {...}

與方法的覆蓋類似, Kotlin提供了屬性的覆蓋,例如

open class Foo {
  open val x: Int = 0
}

class Bar(override val x: Int): Foo {...}

class Bar1: Foo() {
  override var x: Int = 0 // override to var
}

抽象類

類本身, 或類中的部分成員, 都可以聲明為 abstract 的, 抽象類不必標識 open。

abstract class Base {
  abstract fun v()
}

同伴對象

Kotlin 的類沒有靜態(tài)方法, 大多數(shù)情況下, 建議使用包級函數(shù)(packagelevel function)替代, 或者使用同伴對象,
達到靜態(tài)方法效果

class Foo {

companion object {
  fun v() {}
}
}

interface

Kotlin 的接口和Java差不多,但是接口的屬性不一樣,Kotlin接口中的屬性是抽象的。

interface A {
  val x: Int
}

class B: A {
  override val x: Int = 10
}

object

Kotlin 沒有靜態(tài)類, 可以用object實現(xiàn)靜態(tài)類的效果。

object B {
  fun foo() {
    // do something
  }
}

class A {
  fun bar() {
   B.foo()
  }
}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Java中Steam流的用法詳解

    Java中Steam流的用法詳解

    Stream是Java?8?API添加的一個新的抽象,稱為流Stream,本文主要介紹了Java中Steam流的用法詳解,具有一定的參考價值,感興趣的可以了解一下
    2023-04-04
  • Springboot系列之kafka操作使用詳解

    Springboot系列之kafka操作使用詳解

    這篇文章主要為大家介紹了Springboot系列之kafka操作使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • SpringBoot?整合?Quartz?定時任務(wù)框架詳解

    SpringBoot?整合?Quartz?定時任務(wù)框架詳解

    這篇文章主要介紹了SpringBoot整合Quartz定時任務(wù)框架詳解,Quartz是一個完全由Java編寫的開源作業(yè)調(diào)度框架,為在Java應(yīng)用程序中進行作業(yè)調(diào)度提供了簡單卻強大的機制
    2022-08-08
  • JAVA控制流程break?continue的示例代碼

    JAVA控制流程break?continue的示例代碼

    JAVA流程控制中有相關(guān)代碼可以終止整個流程的進程,他們就是(break和continue),本文通過實例代碼介紹下JAVA控制流程break?continue的相關(guān)知識,感興趣的朋友一起看看吧
    2022-03-03
  • IDEA運行SpringBoot項目的詳細步驟(圖文教程)

    IDEA運行SpringBoot項目的詳細步驟(圖文教程)

    本文主要介紹了IDEA運行SpringBoot項目的詳細步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • Java中關(guān)于String的兩種賦值方式

    Java中關(guān)于String的兩種賦值方式

    這篇文章主要介紹了Java中關(guān)于String的兩種賦值方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • JPA實現(xiàn)多條件分頁查詢

    JPA實現(xiàn)多條件分頁查詢

    這篇文章主要介紹了JPA實現(xiàn)多條件分頁查詢方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 詳解Java方法method的定義與調(diào)用及重載

    詳解Java方法method的定義與調(diào)用及重載

    方法,也稱函數(shù),如果想要重復一段或者多段代碼塊的使用,可以將這些代碼封裝成一個方法,方法具體表現(xiàn)為某種行為,使用方法可以提高代碼的復用性
    2022-04-04
  • springboot之如何同時連接多個redis

    springboot之如何同時連接多個redis

    這篇文章主要介紹了springboot之如何同時連接多個redis問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • SpringBoot集成阿里巴巴Druid監(jiān)控的示例代碼

    SpringBoot集成阿里巴巴Druid監(jiān)控的示例代碼

    這篇文章主要介紹了SpringBoot集成阿里巴巴Druid監(jiān)控的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04

最新評論

旅游| 瑞金市| 汤阴县| 上饶县| 瑞丽市| 文成县| 临清市| 安新县| 辽宁省| 顺昌县| 大安市| 封丘县| 庐江县| 高邮市| 苏尼特右旗| 图木舒克市| 平凉市| 原阳县| 铁力市| 龙胜| 黑水县| 德令哈市| 璧山县| 泗水县| 阿坝| 独山县| 商水县| 休宁县| 和政县| 锦屏县| 南丰县| 阜城县| 治县。| 论坛| 泗水县| 竹北市| 威远县| 广安市| 临潭县| 呼伦贝尔市| 广灵县|