内部类可以直接访问外部类中的成员,包括私有。之所以可以直接访问外部类中的成员,因为内部类中持有一个外部类的引用
请看代码- public class InnerTest1 {
- private int num;//定义私有权限的成员变量
- public char ch;//定义公有权限的成员变量
-
- public class Inner{//内部类对外部类的属性进行修改
- Inner(int num,char ch){
- InnerTest1.this.num = num;//可以看到无论访问的外部类成员的权限如何,照样修改无误!
- InnerTest1.this.ch = ch;
- }
- public void show(){
- System.out.println(num+"...."+ch);
- }
- }
-
-
- public static void main(String[] args) {
- InnerTest1.Inner iti = new InnerTest1().new Inner(3,'a');
- iti.show();
-
- }
- }
复制代码 |