public class Change { public static void main(String[] args) throws InterruptedException { // TODO Auto-generated method stub for (int i = 0; i < 5; i++) { } } } class Cattle extends Thread{ public void run() { Louse louse=new Louse(); System.out.println("Thread "+this.getId()+": I'm "+louse.count+" louse."); } } class Louse { public static int count=0; Louse(){ cale(); } private void cale() { count++; }
时间: 2024-03-09 10:48:18 浏览: 17
这段代码中,定义了三个类,分别是 `Change`、`Cattle` 和 `Louse`。
其中,`Change` 类中的 `main` 方法中有一个 for 循环,循环了五次。但是循环体内没有任何代码,因此该部分代码无法实现题目的要求。
`Cattle` 类继承了 `Thread` 类,重写了 `run` 方法。在 `run` 方法中,创建了一个 `Louse` 对象,并输出了当前线程的 ID 以及 `Louse` 对象的计数器值。
`Louse` 类中有一个静态变量 `count`,每次创建 `Louse` 对象时,会调用 `cale()` 方法并将计数器 `count` 值加一。
因此,如果在 `Change` 类的 for 循环中创建并启动五个 `Cattle` 对象,那么每个 `Cattle` 对象会创建一个 `Louse` 对象,并输出当前线程的 ID 以及 `Louse` 对象的计数器值。具体代码如下:
```java
public class Change {
public static void main(String[] args) throws InterruptedException {
for (int i = 0; i < 5; i++) {
Cattle cattle = new Cattle();
cattle.start();
}
}
}
class Cattle extends Thread{
public void run() {
Louse louse=new Louse();
System.out.println("Thread "+this.getId()+": I'm "+louse.count+" louse.");
}
}
class Louse {
public static int count=0;
Louse(){
cale();
}
private void cale() {
count++;
}
}
```
输出结果可能类似于以下内容:
```
Thread 11: I'm 1 louse.
Thread 13: I'm 1 louse.
Thread 12: I'm 1 louse.
Thread 14: I'm 1 louse.
Thread 15: I'm 1 louse.
```