/*
内部类的访问规则:
1,内部类可以直接访问外部类中的成员,包括私有。
之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类的引用,格式 外部类名.this
2,外部类要访问内部类,必须建立内部类对象。
*/
class Outer
{
private int x = 3;
class Inner//内部类 //当内部类在外部类的成员变量位置时,可以被私有修饰
{
//int x = 4;
void function()
{
//int x = 6;
System.out.println("innner :"+Outer.this.x);//内部有不出去找,想打印4,this.x,想打印3,Outer.this.x,内部类想访问外部类,必须先指定外部类的引用
}
}
/**/
void method()
{
Inner in = new Inner();
in.function();
}
}
class InnerClassDemo
{
public static void main(String[] args)
{
Outer out = new Outer();
out.method();
//直接访问内部类中的成员。//知道这个格式就行,内部类被私有化就不能用了
// Outer.Inner in = new Outer().new Inner();
// in.function();
}
}
内部类的访问规则:
1,内部类可以直接访问外部类中的成员,包括私有。
之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类的引用,格式 外部类名.this
2,外部类要访问内部类,必须建立内部类对象。
*/
class Outer
{
private int x = 3;
class Inner//内部类 //当内部类在外部类的成员变量位置时,可以被私有修饰
{
//int x = 4;
void function()
{
//int x = 6;
System.out.println("innner :"+Outer.this.x);//内部有不出去找,想打印4,this.x,想打印3,Outer.this.x,内部类想访问外部类,必须先指定外部类的引用
}
}
/**/
void method()
{
Inner in = new Inner();
in.function();
}
}
class InnerClassDemo
{
public static void main(String[] args)
{
Outer out = new Outer();
out.method();
//直接访问内部类中的成员。//知道这个格式就行,内部类被私有化就不能用了
// Outer.Inner in = new Outer().new Inner();
// in.function();
}
}