内部类
-
内部类就是在一个类的内部再定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对B类来说就是外部类了。
-
- 成员内部类
public class Outer{ private int id = 10; public void out(){ System.out.println("这是外部类的方法"); } public class Inner{ public void in(){ System.out.println("这是内部类的方法"); } // 获得外部类的私有属性 public void getID() { System.out.prinln(id); } } } public class Application{ public static void main(String[] args){ Outer outer = new Outer(); // 通过这个外部类来实例化内部类 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("这是内部类的方法"); } } } public class Application{ public static void main(String[] args){ Outer outer = new Outer(); } }
-
- 局部内部类
public class Outer{ // 局部内部类 public void method(){ class Inner{ public void in(){ } } } } public class Application{ public static void main(String[] args){ Outer outer = new Outer(); } }
-
- 匿名内部类
public class Test{ public static void main(String[] args){ // 没有名字初始化类,不用讲实例保存到变量中 new Apple().eat(); UserService userService = new UserService(){ @Override public void hello(){ } } } } class Apple{ public void eat(){ System.out.println("1"); } } interface UserService{ void hello(); }