定义:内部类,其实就是把一个类放在另一个类的内部。
如何创建内部类的对象:OuterClassName p=new OuterClassName();
OuterClassName.InnerClassName q=p.new InnerClassName();//也就是说在拥有外部类对象之前是不可能创建内部类对象的,嵌套类(静态内部 类)除外
eg:
/** * Created by xdlichen on 9/6/2015. */ public class DotThis { //外部类 private String s="HelloWorld"; void f(){System.out.println("DotThis.f()");} public class Inner{ //内部类 public void outer1(){ f();
System.out.println(s); //可以调用外部类的成员 } public DotThis outer(){ return DotThis.this; //这里的this指的是外部类的对象 } } public static void main(String[] args){ DotThis dt=new DotThis(); DotThis.Inner dti=dt.new Inner(); dti.outer().f(); //通过外部类对象调用f()方法 dti.outer1(); } }
从上面可以看出this和new在内部类中的用法。注意内部类中可以访问外部类的任何成员,不用考虑是否为private。