内部类
内部类的使用
实例化内部类
-
成员内部类,一个类定义在另一个类中
public class Outer { private int id = 10; public void out(){ System.out.println("Outer输出"); } public class Inner{//内部类甚至可以操控类的私有属性 public void getId(){ System.out.println(id); } public void in(){ System.out.println("Inner输出"); } } } public static void main(String[] args) { Outer outer = new Outer(); Outer.Inner inner = outer.new Inner(); inner.getId(); inner.in(); } 结果: 10 Inner输出
-
静态内部类,一个static类定义在另一个类中
public class Outer { private int id = 10; public void out(){ System.out.println("Outer输出"); } public static class Inner{//静态内部类在类创建的时候就存在 public void in(){ System.out.println("Inner输出"); } } }
由于static关键字的特性,所以他在外部类实例化过程就可用了,所以不能再里面加普通的变量
-
局部内部类(定义在方法内部的类,具体怎么用后面用到再说)
方法里面定义的类,出了方法外就失效了
public void out(){ class Hello{ String name; public void printName(){ System.out.println(name); } } System.out.println("Outer输出"); }
-
匿名内部类
Outer outer1 = new Outer(){//这就是匿名内部类,在实例化类的时候,重写类 @Override public void out() { super.out(); } };