如需轉(zhuǎn)載請評論或簡信,并注明出處遣蚀,未經(jīng)允許不得轉(zhuǎn)載
Kotlin系列導(dǎo)讀
Kotlin學(xué)習(xí)手冊(一)類與繼承
Kotlin學(xué)習(xí)手冊(二)屬性與字段
Kotlin學(xué)習(xí)手冊(三)接口
Kotlin學(xué)習(xí)手冊(四)內(nèi)部類
Kotlin學(xué)習(xí)手冊(五)函數(shù)
Kotlin學(xué)習(xí)手冊(六)數(shù)組與集合
Kotlin學(xué)習(xí)手冊(七)for循環(huán)
Kotlin學(xué)習(xí)手冊(八)內(nèi)聯(lián)函數(shù)let弄喘、with、run累奈、apply澎媒、also
Kotlin學(xué)習(xí)手冊(九)空類型安全
Kotlin學(xué)習(xí)手冊(十)帶你真正理解什么是Kotlin協(xié)程
目錄
內(nèi)部類
.java
public class OutClass {
int a = 1;
public class InClass {
public void foo() {
OutClass.this.a = 2;
}
}
.kotlin
class OutClass {
var a = 1
inner class InClass {
fun foo() {
this@OutClass.a = 2
}
}
}
kotlin中的內(nèi)部類默認(rèn)就是靜態(tài)的,不會持有外部類引用
匿名內(nèi)部類
接口中只有一個方法
.java
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//do something
}
});
.kotlin
view.setOnClickListener {
//do something
}
或
var listenr = View.OnClickListener{
//do something
}
view.setOnClickListener(listenr)
接口中有多個方法
.java
valueAnimator.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {
}
@Override
public void onAnimationEnd(Animator animator) {
}java
@Override
public void onAnimationCancel(Animator animator) {
}
@Override
public void onAnimationRepeat(Animator animator) {
}
});
.kotlin
valueAnimator.addListener(object : Animator.AnimatorListener {
override fun onAnimationStart(animator: Animator) {
}
override fun onAnimationEnd(animator: Animator) {
}
override fun onAnimationCancel(animator: Animator) {
}
override fun onAnimationRepeat(animator: Animator) {
}
})