黑马程序员技术交流社区

标题: 变量名会重复吗? [打印本页]

作者: 艺多不压身丶    时间: 2015-2-16 23:03
标题: 变量名会重复吗?
本帖最后由 艺多不压身丶 于 2015-2-16 23:05 编辑
  1. package pack;
  2. class ThreadTest3{
  3.         public static void main(String[] args){
  4.                 new Thread(){
  5.                         public void run(){
  6.                                 for(int x=0; x<50; x++)
  7.                                         System.out.println(Thread.currentThread().getName()+"Thread :"+x);
  8.                         }
  9.                 }.start();
  10.                 new Object(){
  11.                         public void run(){
  12.                                 for(int x=0; x<50; x++)
  13.                                         System.out.println(Thread.currentThread().getName()+"Object :"+x);
  14.                         }
  15.                 }.run();
  16.                 Runnable r=new Runnable(){
  17.                         public void run(){
  18.                                 for(int x=0; x<50; x++)
  19.                                         System.out.println(Thread.currentThread().getName()+"Runnable :"+x);
  20.                         }
  21.                 };r.run();
  22.                 for(int x=0; x<50; x++)
  23.                         System.out.println(Thread.currentThread().getName()+x);
  24.         }
  25. }
复制代码

以上代码体现,请问程序结果。变量X会出现重名错误吗?
作者: Gonnaloveu    时间: 2015-2-16 23:16
不会啊,x作用域在它所在的for循环之内,for循环结束后x就不存在了
作者: huangchunwei    时间: 2015-2-16 23:34
不会,x变量的作用域只在for循环内有效。循环结束。x变量就消失了。
作者: 枪杆不如笔杆    时间: 2015-2-16 23:34
楼上正解
作者: Ansel    时间: 2015-2-17 00:31
布吉岛啊
作者: mengxiang1993    时间: 2015-2-17 08:17
不会,变量的作用域内不要重名即可,出来作用域,局部变量会在栈空间删除。
作者: rehan    时间: 2015-2-17 09:12
应该会的。。。。。。。。。。。
作者: ZZGFF    时间: 2015-2-17 10:06
x在for语句里面,当执行完for语句的时候,x已经不存在内存中了,也就是说,for语句执行完之后,就没x什么事了,不会显示重名。
作者: coolmiao13    时间: 2015-2-17 10:20
楼主,把那个局部变量跟全局变量搞清楚就好了,
理论上变量名是不能重复的,
但是不同引用可以使用一个变量名,因为存储在不同位置。

作者: 苏安东    时间: 2015-2-17 16:32
就解释呀
作者: H马凯    时间: 2015-2-17 17:33
不会啊  
作者: 万合天宜    时间: 2015-2-17 17:36
必须不会啊,x都是作用在{}之内的,{}里的代码执行完x就成垃圾了。
作者: 赵耿    时间: 2015-2-17 20:02
这是个有问题的三线程吧?还用了匿名内部类,运行时是会出现问题的,其中也有可能出现你的x重定义错误!
作者: aawenwei    时间: 2015-2-17 21:08
不会,作用域里不重复就好




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