1. 程式人生 > >Kotlin基礎 7

Kotlin基礎 7

先了解下 kotlin 跟 java 內部類的差異

Java 內部類的實現

public class Parent {
    public static class Child{

    }
}

public static void main(String...args){
    Child child = new Child();

}

第二種方式

public class Parent {
    public class Child{

    }
}

public static void main(String...args){
    Parent parent = new
Parent(); Child child = parent.new Child(); }

而在Kotlin中 靜態內部類 (預設)

class Parent{
    //預設就是 java的 public static
    class Child
}
fun main(args: Array<String>) {
    val inner = Parent.Child()

}

kotlin 非靜態內部類

class Parent{
    //非靜態內部類宣告
    inner class Child
}
fun main(args: Array<String>) {
    val inner = Parent().Child()
}

類的訪問 this

class Parent{
    val a:Int = 0
    inner class Child{
        val a:Int = 5
        fun hello(){
            println(this@Parent.a)
        }
    }
}
fun main(args: Array<String>) {
    val inner = Parent().Child()
    inner.hello()
}

匿名內部類

interface OnClickListener{
    fun onClick()
}

class View{
    var listenner:OnClickListener? = null
} fun main(args: Array<String>) { val view = View() view.listenner = object : OnClickListener{ override fun onClick() { } } }