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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张海刚 黑马帝   /  2011-7-29 22:54  /  2003 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Road {
        List<String> vehicle = new ArrayList<String>();
        
        private String name = null;
        public Road(String name){
                this.name = name;
               
        ExecutorService        pool = Executors.newSingleThreadExecutor();//java5的线程
        pool.execute(new Runnable(){  //创建线程
                public void run(){
                        for(int i=1;i<1000;i++){
                                try {
                                        Thread.sleep((new Random().nextInt(10) + 1) * 1000);
                                } catch (InterruptedException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                                vehicle.add(Road.this.name  + "_" +i);
                        }
                }
        });
        }
}


请问Road.this.name是外部类的成员变量变量吗,我认为应该是的,内部类可以访问外部类的局部变量吗 要是可以请问怎么访问?

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

1 个回复

倒序浏览
黑马网友  发表于 2011-7-29 23:12:43
沙发
Road.this.name是外部类的的成员变量,但具体应是这个类创建的实例的成员变量,this就是指的这个对象,如果一个内部类在外部类的方法体内,可以访问这个方法体的局部变量,但这个局部变量必须是静态的即final的,这涉及到生存周期的问题

评分

参与人数 1技术分 +1 收起 理由
admin + 1 勉强加1分!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马