今天发现一个有趣的问题
不能直接使用! java方法名或变量名位置是不能接收参数的。
给举个例子:
其实很好理解 。
因为本质上 String str 是在栈上声明一块引用地址, 这个地址要指向堆内生成的具体对象的。所以你要刚开始就确定,不能通过参数传过来。引用的指向应该是明确的。(如有不对还望指出)
其实这个功能可以通过别的方式实现。
你无非就是想在后面操作这个对象,所以才想给每个对象一个名字。
可以通过数组。
这样就能在后面通过数组下标引用到了。
为啥我会看这个呢。。。。因为我想实现生成for循环生成多个线程,并且给每个线程起一个名字。就想到了这里
在线程里就很简单了,有这个功能的实现new Thread(Runnable target , String name)
public class TestThread2 {
public static void main(String[] args) {
TestThread2 t = new TestThread2();
for(int i=0;i<10;i++) {
new Thread(t.new MyThread(), i+"线程").start();
}
}
class MyThread extends Thread {
public void run() {
System.out.println("你好"+ Thread.currentThread().getName());
}
}
}
结果