Kotlin学习手册(四)内部类

如需转载请评论或简信,并注明出处,未经允许不得转载

Kotlin系列导读

Kotlin学习手册(一)类与继承
Kotlin学习手册(二)属性与字段
Kotlin学习手册(三)接口
Kotlin学习手册(四)内部类
Kotlin学习手册(五)函数
Kotlin学习手册(六)数组与集合
Kotlin学习手册(七)for循环
Kotlin学习手册(八)内联函数let、with、run、apply、also
Kotlin学习手册(九)空类型安全
Kotlin学习手册(十)带你真正理解什么是Kotlin协程

目录

内部类

.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中的内部类默认就是静态的,不会持有外部类引用

匿名内部类

接口中只有一个方法

.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) {

    }
})
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容