内部类访问特点
内部类可以直接访问外部类的成员,包括私有。
外部类要访问内部类的成员,必须创建对象。
外部类名.内部类名对象名 =外部类对象.内部类对象;
成员内部类被静态修饰后的访问方式是:
外部类名.内部类名对象名 =外部类名.内部类对象;
class InnerClass{ public static void main(String[] args){ Outer.InnerA io = new Outer().new InnerA(); io.PRint(); Outer o = new Outer(); o.printB(); }}class Outer{ class InnerA{ public void print(){ System.out.println("内部类"); } } private class InnerB{ public void print(){ System.out.println("内部类-B"); } } public void printB(){ InnerB ib = new InnerB(); ib.print(); }}匿名内部类使用:
class NoNameInner{ public static void main(String[] args) { PersonDemo pd = new PersonDemo(); // pd.method(new StudentA());或者如下 pd.method(new Person(){ //匿名内部类当做参数传递(本质把匿名内部类看做一个对象) public void show(){ //可以把new Person(){}看做一个子类对象,对方法进行重写 System.out.println("show--heiha"); } }); Outer.method().show(); }}abstract class Person{ public abstract void show();}class PersonDemo{ public void method(Person p){ p.show(); }}class StudentA extends Person{ public void show(){ System.out.println("show"); }}interface Inter { void show(); }class Outer { public static Inter method(){ return new Inter(){ public void show(){ System.out.println("Hello,Inter!"); } }; }}
新闻热点
疑难解答