作者在 2011-11-04 22:31:23 发布以下内容
1.
Outer.Inner inner=new Outer().new Inner();//内部类的调用
2.静态内部类可以直接访问外部类的静态成员,如果访问外部类的实例成员,必须通过外部类的实例去访问。
3.客户类可以通过完整的类名直接访问静态内部类的静态成员。
4.
class A2{
// B b=new B();//局部内部类只能在当前的方法中使用
public void method(){
class B{
int v1;
int v2;
}
B c=new B();
}
}
5.局部内部类和实例内部类一样,可以直接访问外部类的所有成员,此外局部内部类还可以访问所在方法中的final类型的参数和变量。
class A3{
int a;
public void method(final int p1,int p2){
int localV1=1;
final int localV2=2;
class B{
int b1=a;
int b2=p1;
// int b3=p2;//*
// int b4=localV1;//*
int b5=localV2;
}
}
}
int a;
public void method(final int p1,int p2){
int localV1=1;
final int localV2=2;
class B{
int b1=a;
int b2=p1;
// int b3=p2;//*
// int b4=localV1;//*
int b5=localV2;
}
}
}
6.匿名类是一种特殊的内部类,这种类没有名字。“new A(){……};”语句定义了一个继承类A的匿名类,大括号内是类A的类体。“new A(){……};”语句返回该匿名类的一个实例的引用。