内部类
把类定义在另一个类的内部,该类就被称为内部类。 举例:把类B定义在类A中,类B就被称为内部类。内部类的访问规则 可以直接访问外部类的成员,包括私有外部类要想访问内部类成员,必须创建对象内部类的分类 成员内部类局部内部类成员内部类
private 为了数据的安全性static 为了访问的方便性成员内部类不是静态的: 外部类名.内部类名 对象名 = new 外部类名.new 内部类名(); 成员内部类是静态的: 外部类名.内部类名 对象名 = new 外部类名.内部类名();
一些代码
class Outer { public int num = 10; class Inner { public int num = 20; public viod show() { int num = 30; System.out.println(num);// System.out.println(this.num);// System.out.println(Outer.this.num);// } } }局部内部类 1. 局部内部类访问局部变量必须加final修饰。 2. :为什么必须加final修饰? 因为局部变量使用完毕就消失,而堆内存的数据并不会立即消失。所以,堆内存还是用该变量,而改变量已经没有了。为了让该值还存在,就加final修饰。
匿名内部类 1. 局部内部类的简化形式 2. 格式: new 类名或者接口名() { 重写方法; } 3. 本质: 继承该类或者实现接口的子类匿名对象
权限修饰符