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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 黑马杨晨 于 2012-9-26 19:33 编辑

正常思考红色代码块:System.out.println(name);   中的"name"应该是构造函数:Test(String name)中的name,为什么编译出错呢?
怎么才能访问到构造函数中的"name"呢?


interface Inter
{
        void method();
}

class Test
{
        private String name = null;
        Test(String name)
        {
                this.name = name;

                new Inter()
                {
                //        String name = "myName";
                        public void method()
                        {
                               System.out.println(name);
                        }
                };
        }
}

public class Test01
{
        public static void main(String[] args)
        {
        }
}



评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
Test(String name)
        {
                this.name = name;

                new Inter()
                {
                //        String name = "myName";
                        public void method()
                        {
                               System.out.println(name);//内部类成员访问外部类成员的时候可以用   外部.this.的形式进行访问
                                      //修改后的代码
                                     System.out.println(Test.this.name);   //哥们你看一下 现在这样是不是你想要的
                                      
                        }
                };
        }

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
new Inter()我觉得这么写不对,Inter是interface不是内部类吧。。
回复 使用道具 举报
王玉岩 发表于 2012-9-26 19:38
Test(String name)
        {
                this.name = name;

Test.this.name:这个我知道,我是想访问Test(String name)中的name
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马