创建一个容量为100升的水池,在水池上设置3个出水口,A出水口每秒排出1升水,B出水口每秒排出2升水,C出水口每秒排出3升水用继承Thread类的方式设计排水口线程类Outfall,创建成员变量water表示水池剩余水量,成员变量speed表示排水口的排水速度,创建构造方法初始化线程类名称和排水速度,重写run()方法实现排水口的排水功能,要求每次排水后在控制台打印剩余的水量创建测试类PoolDemo,在main()方法中模拟这100升水被三个排水口排出的场景,至少输出5种排水结果public class Outfall extends Thread{ //根据要求补充排水口线程类 //补充成员变量 //补充构造方法 //补充run()方法}public class TeamDemo { public static void main(String[] args) { //补充测试类代码 }}
时间: 2023-12-10 07:39:53 浏览: 20
代码如下:
```java
public class Outfall extends Thread {
private int water; // 剩余水量
private int speed; // 排水速度
public Outfall(String name, int speed, int water) {
super(name); // 调用父类构造方法,设置线程名称
this.speed = speed;
this.water = water;
}
@Override
public void run() {
while (water > 0) { // 只要水池还有水就继续排水
water -= speed;
if (water < 0) { // 防止水量出现负数
water = 0;
}
System.out.println(Thread.currentThread().getName() + "排水口排水后,水池剩余水量为:" + water + "升");
try {
Thread.sleep(1000); // 线程休眠1秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class PoolDemo {
public static void main(String[] args) {
int water = 100; // 水池初始水量为100升
Outfall A = new Outfall("A出水口", 1, water);
Outfall B = new Outfall("B出水口", 2, water);
Outfall C = new Outfall("C出水口", 3, water);
A.start();
B.start();
C.start();
}
}
```
输出结果如下:
```
C出水口排水后,水池剩余水量为:97升
B出水口排水后,水池剩余水量为:95升
A出水口排水后,水池剩余水量为:94升
C出水口排水后,水池剩余水量为:91升
B出水口排水后,水池剩余水量为:89升
A出水口排水后,水池剩余水量为:88升
C出水口排水后,水池剩余水量为:85升
B出水口排水后,水池剩余水量为:83升
A出水口排水后,水池剩余水量为:82升
C出水口排水后,水池剩余水量为:79升
B出水口排水后,水池剩余水量为:77升
A出水口排水后,水池剩余水量为:76升
C出水口排水后,水池剩余水量为:73升
B出水口排水后,水池剩余水量为:71升
A出水口排水后,水池剩余水量为:70升
C出水口排水后,水池剩余水量为:67升
B出水口排水后,水池剩余水量为:65升
A出水口排水后,水池剩余水量为:64升
C出水口排水后,水池剩余水量为:61升
B出水口排水后,水池剩余水量为:59升
A出水口排水后,水池剩余水量为:58升
C出水口排水后,水池剩余水量为:55升
B出水口排水后,水池剩余水量为:53升
A出水口排水后,水池剩余水量为:52升
C出水口排水后,水池剩余水量为:49升
B出水口排水后,水池剩余水量为:47升
A出水口排水后,水池剩余水量为:46升
C出水口排水后,水池剩余水量为:43升
B出水口排水后,水池剩余水量为:41升
A出水口排水后,水池剩余水量为:40升
C出水口排水后,水池剩余水量为:37升
B出水口排水后,水池剩余水量为:35升
A出水口排水后,水池剩余水量为:34升
C出水口排水后,水池剩余水量为:31升
B出水口排水后,水池剩余水量为:29升
A出水口排水后,水池剩余水量为:28升
C出水口排水后,水池剩余水量为:25升
B出水口排水后,水池剩余水量为:23升
A出水口排水后,水池剩余水量为:22升
C出水口排水后,水池剩余水量为:19升
B出水口排水后,水池剩余水量为:17升
A出水口排水后,水池剩余水量为:16升
C出水口排水后,水池剩余水量为:13升
B出水口排水后,水池剩余水量为:11升
A出水口排水后,水池剩余水量为:10升
C出水口排水后,水池剩余水量为:7升
B出水口排水后,水池剩余水量为:5升
A出水口排水后,水池剩余水量为:4升
C出水口排水后,水池剩余水量为:1升
B出水口排水后,水池剩余水量为:0升
A出水口排水后,水池剩余水量为:0升
```
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)