美文网首页
Kotlin学习手册(四)内部类

Kotlin学习手册(四)内部类

作者: Geekholt | 来源:发表于2019-10-30 16:54 被阅读0次

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

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

    相关文章

      网友评论

          本文标题:Kotlin学习手册(四)内部类

          本文链接:https://www.haomeiwen.com/subject/ujfavctx.html