模拟工厂加工玩具

模拟工厂加工玩具

创建工厂类,
属性包括:车间类的对象的集合,仓库容量
方法包括:
1. 加工玩具的方法(product),方法的功能是各个车间同时工作。根据仓库容量平均分配给各个车间需要加工玩具的数量。
2. 建造玩具车间的方法(createWorkshop),方法功能是模拟建造玩具生成车间,即向集合属性中添加一个新车间。
创建车间类:
属性包括:车间名称
要求:

  1. 使用多线程模拟加工玩具的功能,假设每隔2秒可完成一个玩具的加工,每个车间完成一个玩具的加工后,打印当前已加工玩具数量(给每个线程设置名称为车间的名称)
  2. 创建测试类,模拟工厂加工玩具的功能。
    提示:车间集合的容量即是线程的数量
//工厂类
package homework1;

import java.util.ArrayList;
import java.util.List;

//import java.awt.List;

public class Factory {
	private int capacity;
	private List<WorkPlace> workplaces;
	
	public Factory(int capacity) {
		this.capacity=capacity;
		workplaces = new ArrayList<>();
	}
	
	public void productToy() {
		//加工玩具的方法
		//计算每个工厂加工的玩具
		int sum = Math.abs(capacity/workplaces.size());
		for(WorkPlace place : workplaces) {
			ProductToysThread thread = new ProductToysThread(sum,place.getName());
			thread.start();
		}
	}
	
	
	public void createWorkPlace(String workplaceName) {
		WorkPlace placeName = new WorkPlace(workplaceName);
		workplaces.add(placeName);
		System.out.println(workplaceName+"车间建造完成啦~");
	}
	

}

	
//车间类
package homework1;

public class WorkPlace {
	private String name;
	public WorkPlace(String name) {
		this.name = name;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String toString() {
		return "WorkPlace [name = "+name+"]";
	}
}
//线程类
package homework1;

public class ProductToysThread extends Thread {
	private int sum;
	private String name;
	public ProductToysThread(int sum,String name) {
		this.sum = sum;
		this.name = name;
	}
	public void run() {
		this.setName(name);
		for(int i = 1; i< sum; i++) {
			System.out.println("车间"+this.getName()+"已经加工的玩具数量:"+i);
			try {
				Thread.sleep(2000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		System.out.println(this.getName()+"加工完毕");
	}
}
//测试类
package homework1;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Factory factory = new Factory(40);
		factory.createWorkPlace("1车间:");
		factory.createWorkPlace("2车间:");
		factory.createWorkPlace("3车间:");
		factory.createWorkPlace("4车间:");
		factory.productToy();
	}

}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值