---------- android培训 java培训 期待与您交流!------------
内部类创建后可以直接访问外部类的任何成员,包括私有,静态,而外部类要访问内部类就只能创建内部类对象。
public class Test {
private int a = 0;
public static void main(String[] args)
{
new Test().new Inner();
}
class Inner
{
int a = 1;
Inner(){
int a = 2;
System.out.println(a);
}
}
}
代码中的输出语句只能打印出Inner构造函数中的a,结果为2.
public class Test {
private int a = 0;
public static void main(String[] args)
{
new Test().new Inner();
}
class Inner
{
int a = 1;
Inner(){
int a = 2;
System.out.println(this.a);
}
}
}
代码中只使用this.变量名,只能够访问到本内部类中的a。结果为1.
public class Test {
private int a = 0;
public static void main(String[] args)
{
new Test().new Inner();
}
class Inner
{
int a = 1;
Inner(){
int a = 2;
System.out.println(Test.this.a);
}
}
}
按照:外部类.this.外部类成员名 的格式才能访问外部类的成员,输出为0;
由于内部类也是成员,所以静态也可以修饰内部类。
访问权限也是同静态一样:静态只能访问静态,非静态可以访问静态和非静态。