猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
Java中用循环来这样创建对象,不是应该引用重名报错吗?为什么不报?
循环第二次的时候,就有一个重名的my了呀?为什么还是能正常运行,不报错?
慕神8447489
浏览 945
回答 5
5回答
呼唤远方
你的my定义的是局部变量,每执行一次for循环都重新定义了变量。即使你把变量放在循环外面定义,java中不会报错,只是变量存的地址会覆盖掉之前的变量。
0
0
0
慕田峪4524236
直接上代码:public class Test { public static void main(String[] args) { for (int i = 0; i < 3; i++) { Thread thread = new Thread(); thread.start(); System.out.println(thread.getName()); } }}// 运行结果:// Thread-0// Thread-1// Thread-2如果你要指定名字,你应该这样来做:public class Test { public static void main(String[] args) { Thread thread = new Thread("我的线程"); thread.start(); System.out.println(thread.getName()); }}//运行结果://我的线程
0
0
0
慕勒3428872
my指向不同的MyThread实例对象罢了my ⇢ new MyThread() //老的↘ new Mythread() //新的
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Java
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续