黑马程序员技术交流社区

标题: 内部类可以修改外部类的属性? [打印本页]

作者: 罗正荣    时间: 2013-3-6 16:28
标题: 内部类可以修改外部类的属性?
本帖最后由 罗正荣 于 2013-3-10 20:21 编辑

内部类可以修改外部类的属性?
如何修改?
作者: 张豪杰    时间: 2013-3-6 17:00
内部类可以直接访问外部类中的成员,包括私有。之所以可以直接访问外部类中的成员,因为内部类中持有一个外部类的引用
请看代码
  1. public class InnerTest1 {

  2.         private int num;//定义私有权限的成员变量
  3.         public char ch;//定义公有权限的成员变量
  4.        
  5.         public class Inner{//内部类对外部类的属性进行修改
  6.                 Inner(int num,char ch){
  7.                         InnerTest1.this.num = num;//可以看到无论访问的外部类成员的权限如何,照样修改无误!
  8.                         InnerTest1.this.ch = ch;
  9.                 }
  10.                 public void show(){
  11.                         System.out.println(num+"...."+ch);
  12.             }
  13.         }
  14.        
  15.        
  16.         public static void main(String[] args) {
  17.                 InnerTest1.Inner iti = new InnerTest1().new Inner(3,'a');
  18.                 iti.show();
  19.                
  20.         }

  21. }
复制代码

作者: 张宁    时间: 2013-3-6 21:40
http://demojava.iteye.com/blog/1075571  这个帖子写的很详细,建议你看一看。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2