Kotlin学习笔记——内部类和嵌套类
来源:互联网 发布:一钻淘宝店铺多少钱 编辑:程序博客网 时间:2024/05/21 12:49
Kotlin学习笔记——内部类和嵌套类
内部类和嵌套类
最近在学习Kotlin语言,也在尝试着写一些使用Kotlin的demo,有些无奈的是目前 相关的中文资料少之又少,很多资料都是机翻的,看得人头大,连实体书《Kotlin实战》的 翻译都有些让人难受,写得很绕,内部类嵌套类这两页看得我直想睡觉。。这里就简单地总 结一下这两个很基础的点。
Java中的内部类和嵌套类
我们在写Java代码的时候,往往会遇到在一个类的内部再定义另一个类的情况,大概 形式如下:
/** * Author iDste-Zhangzy * Date 2017/9/6 * Description */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)); } }}
以上的形式即是内部类。我们可以发现,内部类持有了外部类的引用,我们可以在内部 类中调用startActivity()方法,可以调用外部类中定义的方法funOuter(),可以使用 外部类中定义的变量text,同时可以用JavaOuter.this这样的形式引用外部类实例。再 看另一段代码:
/** * Author iDste-Zhangzy * Date 2017/9/6 * Description */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)); } }}
把这段代码放到你的IDE里,肯定是会飘红的。与第一段代码相比,这里只是在Inner 前面加上了static修饰,这样一来,Inner类就成为了嵌套类,它不再持有外部类的引用, 再使用外部类的funOuter()、text以及调用startActivity()方法,肯定是会报错的。 区分内部类与嵌套类,很简单,内部类存储了外部类的引用,嵌套类却没有。Java 中,将一个类定义在另一个类内部,不加任何的修饰符,那它将被默认为一个内部类,而加 上static修饰,则成为了一个嵌套类。
Kotlin中的内部类和嵌套类
Kotlin中的内部类与嵌套类的定义,跟Java并没有什么不同,区别在于在没有任何修 饰的情况下,定义在另一个类内部的类将被默认为嵌套类,不持有外部类的引用,如果要将 它声明为一个内部类,则需要加上inner修饰符,代码如下:
/** * Author iDste-Zhangzy * Date 2017/9/6 * Description */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::class.java)) } }}
阅读全文
0 0
- Kotlin学习笔记——内部类和嵌套类
- Kotlin嵌套类和内部类
- Kotlin学习笔记(七)数据类,密封类,嵌套类,内部类,枚举类
- 【Java学习笔记】静态嵌套类和内部类
- Kotlin编程之嵌套类,内部类,匿名内部类
- Kotlin笔记(八)——内部类和匿名类
- 内部类和嵌套类
- 内部类和嵌套类
- Kotlin类和对象 (九)--- 嵌套类与内部类
- 内部类学习笔记(四)静态嵌套类
- Kotlin-16.嵌套类/内部类(Nested Classes/Inner classes)
- 嵌套类,内部类,匿名内部类再学习
- 第十章 内部类 内部类和嵌套类
- java学习笔记——内部类和异常
- 深入理解嵌套类和内部类
- 深入理解嵌套类和内部类
- 介绍嵌套类和内部类
- 介绍嵌套类和内部类
- Chrome console使用类css选择器选择所有匹配项
- tablespace概念与创建
- 把vue-cli当做日常自动化工具
- 网络 TCP/IP
- UVA 11205
- Kotlin学习笔记——内部类和嵌套类
- 代码大全2 第6部分 系统考虑 mindmap
- related work 怎么写
- static基本概念
- Android异步消息处理机制详解及源码分析
- TCP/IP协议族(三) 数字签名与HTTPS详解
- StarWars.Android 界面粉碎效果中的openGL操作解析
- 你所谓的“稳定” 只是稳定地穷着~
- 三元环的个数