创建giveNumberThread,当前Number类的实例是giveNumberThread的目标对象
时间: 2024-05-01 07:23:52 浏览: 8
好的,下面是一个简单的示例代码:
```java
public class Number {
private int value;
public Number(int value) {
this.value = value;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
public class GiveNumberThread implements Runnable {
private Number number;
public GiveNumberThread(Number number) {
this.number = number;
}
@Override
public void run() {
try {
// 暂停 1 秒钟
Thread.sleep(1000);
// 修改 Number 实例的值
int newValue = new Random().nextInt(100);
number.setValue(newValue);
System.out.println(Thread.currentThread().getName() + " set number value to " + newValue);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class Demo {
public static void main(String[] args) {
Number number = new Number(0);
// 创建 GiveNumberThread 实例,并传入 Number 实例作为目标对象
GiveNumberThread giveNumberThread = new GiveNumberThread(number);
// 创建线程,并启动
Thread thread = new Thread(giveNumberThread);
thread.start();
// 主线程等待子线程执行完毕
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 输出 Number 实例的值
System.out.println("Number value is " + number.getValue());
}
}
```
在上面的示例中,我们创建了一个 Number 类,它有一个 int 类型的成员变量 value,以及相应的 getter 和 setter 方法。
然后,我们创建了一个 GiveNumberThread 类,它实现了 Runnable 接口,并接受一个 Number 实例作为构造函数的参数。在 run 方法中,它暂停 1 秒钟,然后随机生成一个 int 值,并将其设置为 Number 实例的值。
最后,我们在主线程中创建了 GiveNumberThread 实例,并将 Number 实例作为参数传入。然后,我们创建了一个线程,并启动它。接着,我们调用 thread.join() 方法,让主线程等待子线程执行完毕。最后,我们输出 Number 实例的值。