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

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)鍵字聲明一種特殊的類,這個類只有一個實(shí)例,因此看起來整個類就好像是一個對象一樣.如下:

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

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

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

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


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

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

在Kotlin中的use函數(shù)就是實(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數(shù)組動態(tài)增加容量過程解析

    Java數(shù)組動態(tài)增加容量過程解析

    這篇文章主要介紹了Java數(shù)組動態(tài)增加容量過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • Java多文件以ZIP壓縮包導(dǎo)出的實(shí)現(xiàn)方法

    Java多文件以ZIP壓縮包導(dǎo)出的實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了Java多文件以ZIP壓縮包導(dǎo)出的實(shí)現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Mybatis集成Spring的實(shí)例代碼_動力節(jié)點(diǎn)Java 學(xué)院整理

    Mybatis集成Spring的實(shí)例代碼_動力節(jié)點(diǎn)Java 學(xué)院整理

    這篇文章主要介紹了Mybatis集成Spring的實(shí)例代碼,需要的朋友可以參考下
    2017-09-09
  • java通過HTTP接收json詳細(xì)實(shí)例代碼

    java通過HTTP接收json詳細(xì)實(shí)例代碼

    Java作為一門廣泛使用的編程語言,很多開發(fā)人員會用它來進(jìn)行http請求,獲取json數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于java通過HTTP接收json的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • MyBatis流式查詢的項(xiàng)目實(shí)踐

    MyBatis流式查詢的項(xiàng)目實(shí)踐

    本文主要介紹了MyBatis流式查詢的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • SpringBoot實(shí)現(xiàn)接口數(shù)據(jù)的加解密功能

    SpringBoot實(shí)現(xiàn)接口數(shù)據(jù)的加解密功能

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)接口數(shù)據(jù)的加解密功能,對接口的加密解密操作主要有兩種實(shí)現(xiàn)方式,文中給大家詳細(xì)介紹,需要的朋友可以參考下
    2019-10-10
  • Java服務(wù)限流算法的6種實(shí)現(xiàn)

    Java服務(wù)限流算法的6種實(shí)現(xiàn)

    服務(wù)限流是指通過控制請求的速率或次數(shù)來達(dá)到保護(hù)服務(wù)的目的,本文主要介紹了Java服務(wù)限流算法的6種實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-05-05
  • Java中日期時間的用法總結(jié)

    Java中日期時間的用法總結(jié)

    在日常開發(fā)中,我們經(jīng)常需要處理日期和時間,所以這篇文章小編為大家總結(jié)了下?Java?中日期與時間的基本概念與一些常用的用法,希望對大家有所幫助
    2023-09-09
  • Java之HashMap.values()轉(zhuǎn)List時的錯誤和正確演示

    Java之HashMap.values()轉(zhuǎn)List時的錯誤和正確演示

    這篇文章主要介紹了Java之HashMap.values()轉(zhuǎn)List時的錯誤和正確演示,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Spring Boot的Maven插件Spring Boot Maven plugin詳解

    Spring Boot的Maven插件Spring Boot Maven plu

    Spring Boot的Maven插件Spring Boot Maven plugin以Maven的方式提供Spring Boot支持,Spring Boot Maven plugin將Spring Boot應(yīng)用打包為可執(zhí)行的jar或war文件,然后以通常的方式運(yùn)行Spring Boot應(yīng)用,本文介紹Spring Boot的Maven插件Spring Boot Maven plugin,一起看看吧
    2024-01-01

最新評論

长治县| 西林县| 邳州市| 烟台市| 浮梁县| 宁武县| 恭城| 龙陵县| 晴隆县| 来安县| 隆德县| 荥经县| 滕州市| 石景山区| 乌兰察布市| 宜章县| 集贤县| 汶川县| 海兴县| 中牟县| 视频| 孟津县| 柘城县| 通海县| 玛多县| 凌源市| 宜黄县| 扶沟县| 分宜县| 唐河县| 通榆县| 崇仁县| 和平区| 岐山县| 西乡县| 衡南县| 宜章县| 金山区| 黄浦区| 沭阳县| 通化县|