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

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

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

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

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

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

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

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

這樣Point3D的對(duì)象就有了一個(gè)名為length的方法.

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

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


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

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

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


Kotlin一般在類(lèi)中不允許static成員,前面曾經(jīng)說(shuō)過(guò)可以使用companion object來(lái)創(chuàng)建一個(gè)伴生對(duì)象從而可以使用static成員.

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

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

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

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

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


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

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

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

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

客戶(hù)端代碼:


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

服務(wù)器輸出:

客戶(hù)端輸出:

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

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

相關(guān)文章

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

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

    這篇文章主要介紹了Java數(shù)組動(dòng)態(tài)增加容量過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    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)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Mybatis集成Spring的實(shí)例代碼_動(dòng)力節(jié)點(diǎn)Java 學(xué)院整理

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

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

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

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

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

    本文主要介紹了MyBatis流式查詢(xún)的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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ù)的加解密功能,對(duì)接口的加密解密操作主要有兩種實(shí)現(xiàn)方式,文中給大家詳細(xì)介紹,需要的朋友可以參考下
    2019-10-10
  • Java服務(wù)限流算法的6種實(shí)現(xiàn)

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

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

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

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

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

    這篇文章主要介紹了Java之HashMap.values()轉(zhuǎn)List時(shí)的錯(cuò)誤和正確演示,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    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

最新評(píng)論

苏尼特左旗| 定南县| 察隅县| 安平县| 万年县| 博罗县| 漳平市| 湟源县| 玉山县| 城固县| 乐平市| 山丹县| 冷水江市| 五指山市| 巴林右旗| 湘乡市| 依兰县| 田阳县| 苍南县| 土默特右旗| 三都| 福贡县| 罗源县| 普安县| 肃宁县| 台北县| 通化县| 卢氏县| 兰西县| 内江市| 墨脱县| 盐池县| 朔州市| 富宁县| 新平| 南昌市| 汉寿县| 新龙县| 榆林市| 墨江| 奇台县|