内部类可以访问外部类的私有成员,外部类访问内部类成员要创建内部类对象。
成员内部类在外部类的方法中创建内部类的对象,通过创建外部类对象方法来调用。
局部内部类是在方法中定义的类,所以外界是无法直接使用,需要在方法内部创建对象并使用。该类可以直接访问外部类的成员,也可以访问方法内的局部变量。
匿名内部类前提:存在一个类或者接口,可以是抽象类。本质是继承了该类或者接口的子类的匿名对象 new 类名或者接口名(){重写方法;};
1 2 3
| public interface Jump { void jumping(); }
|
1 2 3 4 5 6 7
| public class JumpOperator { public void method(Jump j) //实现接口的子类 { System.out.println("methed"); j.jumping(); } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| public static void main(String[] args) { // TODO Auto-generated method stub JumpOperator jo = new JumpOperator(); Jump j = new Jump() {
@Override public void jumping() { // TODO Auto-generated method stub System.out.println("jump"); } }; jo.method(j); jo.method(new Jump() {
@Override public void jumping() { // TODO Auto-generated method stub System.out.println("jump"); }
}); }
}
|