内部类
在一个类的内部再定义一个类就是内部类
- 成员内部类
public class Outer { private int id=10; public void out(){ System.out.println("这是外部类的方法"); } class Inner{ public void in(){ System.out.println("这是内部类的方法"); //获得外部类的私有属性 System.out.println(id); //活得外部类的方法 out(); } } }
public class Application { public static void main(String[] args) { Outer outer = new Outer(); outer.out(); //通过外部类实例化内部类 Outer.Inner inner = outer.new Inner(); inner.in(); } }
- 静态内部类
public class Outer { private int id=10; public void out(){ System.out.println("这是外部类的方法"); } public static class Inner{ public void in(){ System.out.println("这是内部类的方法"); //获得外部类的私有属性 System.out.println(id);//报错,静态内部类先加载 //活得外部类的方法 out();//报错,静态内部类先加载 } } }
- 局部内部类
public class Outer { //局部内部类 public void method(){ class Inner{ public void in(){ System.out.println("inner类"); } } } }
- 匿名内部类
public class Outer { //局部内部类 public void method() { //没有名字初始化类,不用将实例保存到变量中 new Apple().eat(); //匿名内部类 new UserService(){ @Override public void hello() { System.out.println("hello"); } }; } } //一个java类中可以有多个class类,但只能有一个 public class class Apple { public void eat() { System.out.println("1"); } } interface UserService{ void hello(); }

浙公网安备 33010602011771号