#1、内部类(Inner class)java
定义:在Java中,容许一个类的定义位于另外一个类的内部,前者称谓内部类,后者称为外部类编程
- 一方面,做为外部类的成员
- 调用外部类的结构(方法、属性)
- 调用外部类的属性和方法时,须要完整路径 Person.this.属性
- 能够被四种不一样的权限修饰
- 另外一方面,做为一个类
- 能够定义属性方法和构造器
- 能够用final修饰,表示此类不能被继承;不适用final,则此内部类能够被继承
- 能够用abstract修饰
- 注意点1:在局部内部类的方法中,若是须要调用局部内部类所声明的方法中的局部变量的话,必须是final修饰的变量
Person.Don dog = new Person.Dog(); // 静态内部类的实例化方式 Person.Bird bird = new Person().new Bird(); // 非静态内部类的实例化方式
System.out.println(name); // 直接调用形参 System.out.println(this.name); // 调用内部类的非静态属性 System.out.println(Person.this.name); // 调用外部类的非静态属性
public Comparable getComparable(){ // 方式一: // 内部类实现接口 class MyComparable implements Comparable{ // 重写接口中的方法 } return new MyComparable(); // 建立并返回该类的对象 // 方式二:匿名类 return new Comparable(){ // 重写接口中的方法 } }
- 空指针访问
- 试图读取不存在的文件
- 网络链接中断
- 数组角标越界