A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 罗正荣 中级黑马   /  2013-3-6 16:28  /  1438 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 罗正荣 于 2013-3-10 20:21 编辑

内部类可以修改外部类的属性?
如何修改?

2 个回复

倒序浏览
内部类可以直接访问外部类中的成员,包括私有。之所以可以直接访问外部类中的成员,因为内部类中持有一个外部类的引用
请看代码
  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. }
复制代码
回复 使用道具 举报
http://demojava.iteye.com/blog/1075571  这个帖子写的很详细,建议你看一看。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马