欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Kotlin基礎(chǔ)教程之dataclass,objectclass,use函數(shù),類擴(kuò)展,socket

 更新時間:2017年05月27日 10:12:55   作者:天命劍主  
這篇文章主要介紹了Kotlin基礎(chǔ)教程之dataclass,objectclass,use函數(shù),類擴(kuò)展,socket的相關(guān)資料,需要的朋友可以參考下

Kotlin基礎(chǔ)教程之dataclass,objectclass,use函數(shù),類擴(kuò)展,socket

Kotlin提供了一些機(jī)制來擴(kuò)展已有的類,如下:

還記得我們之前寫過的Point3D類嗎?(將其略作修改,將成員變量改為Double類型)

讓我們?yōu)槠鋽U(kuò)展一個length函數(shù)

擴(kuò)展的方法很簡單,只要在函數(shù)名前面加上類名就行了.

這樣Point3D的對象就有了一個名為length的方法.

運(yùn)行的結(jié)果不出所料:

除此之外,在Kotlin中還有一些特殊的類,比如Data Class:


有些類只包含數(shù)據(jù),不需要包含方法,就可以聲明為data class,當(dāng)然data class并不是不能包含方法.

data class最大的特色在于copy函數(shù)和多變量賦值,可以在一條語句里面把不同的字段賦值給不同的變量.

運(yùn)行結(jié)果如下:


Kotlin一般在類中不允許static成員,前面曾經(jīng)說過可以使用companion object來創(chuàng)建一個伴生對象從而可以使用static成員.

這里還有一種方法就是使用object關(guān)鍵字聲明一種特殊的類,這個類只有一個實例,因此看起來整個類就好像是一個對象一樣.如下:

這里把類聲明時的class關(guān)鍵字改成了object,這個類里面的成員默認(rèn)都是static的.

另外我們可以看到在這段代碼中出現(xiàn)了一個use函數(shù),這個函數(shù)的參數(shù)是一個lambda表達(dá)式或者說一個匿名函數(shù).

其參數(shù)必須實現(xiàn)Closeable接口,其參數(shù)在函數(shù)結(jié)束后會自動關(guān)閉,調(diào)用其close方法,無論是否發(fā)生異常.

其實這個用法來自于Java7中引入的一個語法,在Java7中引入的這個語法名為try-with-resource,其對應(yīng)的Java代碼如下:


server變量在try語句中被聲明并初始化,無論是否發(fā)生異常,最后server都會被自動關(guān)閉.

之所以引入這種語法,是為了解決finally語句的不足.

在Kotlin中的use函數(shù)就是實現(xiàn)了Java中try-with-resource語句的功能.

這段Kotlin代碼寫的是一個多線程Socket服務(wù)器的demo,其他部分的代碼如下:

客戶端代碼:


當(dāng)Socket服務(wù)器啟動后,再啟動SocketClient,運(yùn)行結(jié)果如下:

服務(wù)器輸出:

客戶端輸出:

可以看到Socket服務(wù)已經(jīng)正常啟動了.

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

相關(guān)文章

  • 基于Java代碼配置MyBatis Generator

    基于Java代碼配置MyBatis Generator

    這篇文章主要介紹了基于Java代碼配置MyBatis Generator,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • Spring加載properties文件的兩種方式實例詳解

    Spring加載properties文件的兩種方式實例詳解

    這篇文章主要介紹了Spring加載properties文件的兩種方式,需要的朋友可以參考下
    2018-02-02
  • SpringBoot+STOMP協(xié)議實現(xiàn)私聊、群聊

    SpringBoot+STOMP協(xié)議實現(xiàn)私聊、群聊

    本文將結(jié)合實例代碼,介紹SpringBoot+STOMP協(xié)議實現(xiàn)私聊、群聊,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • MyBatis查詢緩存實例詳解

    MyBatis查詢緩存實例詳解

    查詢緩存的使用,主要是為了提高查詢訪問速度。這篇文章主要介紹了MyBatis查詢緩存,需要的朋友可以參考下
    2017-06-06
  • Java之遍歷枚舉值問題

    Java之遍歷枚舉值問題

    這篇文章主要介紹了Java之遍歷枚舉值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • springboot-assembly自定義打包全過程

    springboot-assembly自定義打包全過程

    這篇文章主要介紹了springboot-assembly自定義打包全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 詳解SpringBoot注入數(shù)據(jù)的方式

    詳解SpringBoot注入數(shù)據(jù)的方式

    這篇文章主要介紹了詳解SpringBoot注入數(shù)據(jù)的方式,詳細(xì)的介紹了幾種注入方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • springboot?vue接口測試前后端實現(xiàn)模塊樹列表功能

    springboot?vue接口測試前后端實現(xiàn)模塊樹列表功能

    這篇文章主要為大家介紹了springboot?vue接口測試前后端實現(xiàn)模塊樹列表功能,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • SpringBoot框架中Mybatis-plus的簡單使用操作匯總

    SpringBoot框架中Mybatis-plus的簡單使用操作匯總

    這篇文章主要介紹了SpringBoot框架中Mybatis-plus的簡單使用,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • Java中的線程私有變量ThreadLocal詳解

    Java中的線程私有變量ThreadLocal詳解

    這篇文章主要介紹了Java中的線程私有變量ThreadLocal詳解,ThreadLoalMap是ThreadLocal中的一個靜態(tài)內(nèi)部類,類似HashMap的數(shù)據(jù)結(jié)構(gòu),但并沒有實現(xiàn)Map接口,需要的朋友可以參考下
    2023-08-08

最新評論