kotlin对比java学习教程:嵌套类和内部类

2019-05-1106:21:31编程语言入门到精通Comments2,210 views字数 887阅读模式

1. Java中的内部类和嵌套类

//内部类,内部类持有了外部类的引用,所以在内部类中可以调用外部类的方法
public class JavaOuter extends Activity {
    private String text = "KKK";
    private void funOuter() {
        text = "BBB";
    }
    class Inner {
        private void funInner() {
            funInner();
            text = "ABC";
            startActivity(new Intent(JavaOuter.this, MainActivity.class));
        }
    }
}

//嵌套,内部类不持有外部类的引用,所以在内部类中不可以调用外部类的方法
public class JavaOuter extends Activity {
    private String text = "KKK";
    private void funOuter() {
        text = "BBB";
    }
    static class Inner {
        private void funInner() {
            funInner();
            text = "ABC";
            //startActivity(new Intent(JavaOuter.this, MainActivity.class));
        }
    }
}

区分内部类与嵌套类,很简单,内部类存储了外部类的引用,嵌套类却没有。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/12099.html

2. kotlin中的嵌套类和内部类

Kotlin中的内部类与嵌套类的定义,跟Java并没有什么不同,区别在于在没有任何修
饰的情况下,定义在另一个类内部的类将被默认为嵌套类,不持有外部类的引用,如果要将
它声明为一个内部类,则需要加上inner修饰符,代码如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/12099.html

class KotlinOuter : Activity() {
    private var mText = "outer"
    private fun funOuter() {
        mText = "outer fun"
    }

    inner class Inner {
        private fun funInner() {
            mText = "inner"
            funOuter()
            startActivity(Intent(this@KotlinOuter, MainActivity::))
        }
    }
}
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/12099.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/12099.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定