1.
内部类可以直接访问外部类中的成员,包括私有。
之所以可以直接访问外部类中的成员是因为内部类中持有了一个外部类的引用。
格式:
外部类名.this.外部类成员
2.
外部类要访问内部类要建立内部类对象。
这是一个测试题:创建一个包含有private的属性和private方法的类。然后创建一个内部类,它有一个方法可用来修改外部类的属性,并调用外部类的方法。在外部类的另一个方法中,创建此内部类的对象,并且调用它的方法。
public class Test6 {
public static void main(String[] args)
{
Outer out =new Outer(); //创建外部类对象
out.method(); //外部类对象调用method()方法
}
}
class Outer // 定义外部类
{
private int num = 1; //外部类的属性,初始化为 1
private void show() //外部类的方法
{
System.out.println("num = "+num);
}
class Inner //创建内部类
{
void setNum(int num) //创建设置数字的方法
{
Outer.this.num=num; //修改外部类的属性(使用外部类名.this)
show(); //调用外部类的方法
}
}
public void method() //外部类中另一个方法
{
Inner in = new Inner(); //创建一个内部类对象
in.setNum(0); //调用内部类方法,修改外部类数字为0.
}
}
1.将一个类定义在一个类的里边,对里面那个类就称为内部类。
内部类可以直接访问外部类中的成员,包括私有成员。
外部类要访问内部类成员必须要建立内部类对象。
2.外部类还可以直接访问内部类成员
格式:
外部类名.内部类名 变量名=外部类对象.内部类对象
Outer.Inner in = new Outer().new Inner();
3.内部类可以被private修饰,当内部类在外部类的成员位置上就可以。