Kotlin基礎 7
阿新 • • 發佈:2018-12-26
先了解下 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() {
}
}
}