Kotlin學(xué)習(xí)--Day2

1,接口


//接口寫法

interface ?onclickListener{

val ?name:String//屬性

fun ?click()//抽象方法

fun ?text(){//實(shí)現(xiàn)方法

println("click text")

}

}


interface ?onclickLongListener{

fun ? click()//抽象方法

fun ? text(){//實(shí)現(xiàn)方法

println("click long text")

}

}


//類實(shí)現(xiàn)接口

class ?Button(override val ?name: String) : onclickListener,onclickLongListener{//實(shí)現(xiàn)多接口用,隔開

override fun ?text() {

super<onclickListener>.text()//<>中聲明需要實(shí)現(xiàn)哪個(gè)接口的text方法

}

override fun ?click() {//如果只實(shí)現(xiàn)這個(gè)方法會(huì)報(bào)錯(cuò)

}

}



2,抽象類

//抽象類寫法

abstract class ? Personal{

abstract funtext()

}

//實(shí)現(xiàn)抽象類

class ? Man : Personal(){

override funtext() {

}

}


3,類的繼承

open class ?Button3(override val ?name: String) : onclickListener,onclickLongListener{

override fun ? text() {

super<onclickListener>.text()//<>中聲明需要實(shí)現(xiàn)哪個(gè)接口的text方法

}

override fun ? click() {}//如果只實(shí)現(xiàn)這個(gè)方法會(huì)報(bào)錯(cuò)

open fun ? show(){}

}

class ? Button4(override val ?name:String): Button3(name){//在kotlin中,一個(gè)類默認(rèn)是final,如果沒(méi)有open修飾Button3,Button4將無(wú)法繼承Button3

override funtext() {//可重寫B(tài)utton3方法

}

override funclick() {

}

override fun ? show(){}//在kotlin中,一個(gè)方法默認(rèn)是final,如果沒(méi)有open修飾show,Button4將無(wú)法重寫B(tài)utton3方法show

}


4,內(nèi)部類

class ? InterClass{

companion object{

fundismiss(){

}

}

valstr="李三"

//嵌套類

class ?InterText{

//? ? ? ? str.? //無(wú)法拿到InterClass中屬性,因?yàn)樵擃惡蚃ava不一樣,沒(méi)有隱式的引用InterClass對(duì)象

}

//內(nèi)部類

inner class inner{//inner關(guān)鍵字聲明內(nèi)部類

fun ?test(){

str.substring(0)? //已經(jīng)聲明為內(nèi)部類,可以拿到拿到InterClass中屬性

}

}

}


5,靜態(tài)類

object ? Dialog{

fun ? show(){

}

}

fun ? main(args: Array) {

Dialog.show()

}


6,伴生類

class ? Associated{

companion object A{//伴生類是隨著類的產(chǎn)生而產(chǎn)生的,相當(dāng)于java中static類,可以在伴生類中定義靜態(tài)方法或者成員屬性

fun ? dismiss(){

}

}

}

fun? AssociatedTest(args: Array) {

Associated.A.dismiss()

}



7,匿名內(nèi)部類

fun ? main3(args: Array) {

val ? person =object: Personal(){

override fun ?text(){

}

}

//使用java中的接口

vallistener = View.OnClickListener{

}

}



8,訪問(wèn)控制

//public默認(rèn)所有地方可見(jiàn)

//private類內(nèi)部及同文件中可見(jiàn)

//protected子類內(nèi)部可見(jiàn)

//internal模塊內(nèi)可見(jiàn),本App可見(jiàn),如果打成jar包作為依賴庫(kù),其它工程無(wú)法訪問(wèn)被internal修飾的類

private classp1

private classp2{

constructor(){

p1()

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,687評(píng)論 18 399
  • 關(guān)鍵字:var:定義變量val:定義常量fun:定義方法Unit:默認(rèn)方法返回值,類似于Java中的void,可以...
    x小明閱讀 760評(píng)論 0 0
  • 《Kotin 編程思想·實(shí)戰(zhàn)》 《Kotlin極簡(jiǎn)教程》正式上架: 點(diǎn)擊這里 > 去京東商城購(gòu)買閱讀 點(diǎn)擊這里 >...
    光劍書架上的書閱讀 2,378評(píng)論 1 4
  • 這幾天,空閑時(shí)泡在商城網(wǎng)購(gòu),給孩子給遠(yuǎn)在家鄉(xiāng)的父母選擇合適的衣服,新年穿新衣對(duì)他們來(lái)說(shuō)依舊是最好的慰寂。 今年情況...
    米燦燦88閱讀 352評(píng)論 0 0

友情鏈接更多精彩內(nèi)容