读书笔记——内部类

1、内部类

  特性:内部类拥有其外部类所有元素的访问权,这个是编译器帮我们处理好了访问的细节。

2、.this和.new

  2.1如果你想要在内部类中生成对外部类对象的引用,可以使用外部类的名字后面紧跟.this。这样产生的引用自动的具有正确的类型,这一点在编译期就被知晓并受到检查,因此没有任何运行时期的开销。

  2.2有时,在外部类的外边需要使用内部类的对象,这个时候就需要去创建一个内部类对象。但是必须使用外部类的对象去创建一个内部类对象

3、在方法和作用域内的内部类——局部内部类

  局部内部类—— 一个定义在作用域内的类,此作用域在方法的内部

    像局部变量一样,不能被public, protected, private和static修饰。

    只能访问方法中定义的final类型的局部变量。

4、匿名内部类——似乎是要创建一个对象的时候,但是你却说“等一等,我想在这里添加一个类的定义。”

  匿名内部类—— 没有构造函数

  匿名内部类其实有一种奇怪的语法,这种语法指的是:创建一个继承自X类(或接口)的匿名类的对象。通过new表达式返回的引用被自动向上转型为对X的引用。

5、静态内部类——嵌套类

6、闭包和回调

  闭包——是一个可调用的对象,它记录了一些信息,这些信息来自于创建它的作用域。

7、内部类的继承

8、内部类可以被覆盖吗?

  如果创建了一个内部类,然后继承其外围类并重新定义此内部类时,会发生什么呢?答案是:内部类并没有被覆盖,而且两个内部类属于完全独立的两个实体,各自有各自的命名空间。

9、内部类标识符

  由于每个类都会产生一个.class文件,其中包含如何创建该类型对象的全部信息。内部类也会产生一个class文件已包含它们的Class对象信息,只不过这些文件命名有自己的规则:外围类的名字$内部类名字.class。

  如果类是匿名内部类,$符号后跟一个数字。

  

posted @ 2016-09-26 19:47  苏羽垄  阅读(146)  评论(0编辑  收藏  举报