public static Company CarFactory(String userBrand,String userModel,String userSeat,String userTonnage, List<Company> listCar, List<Company> bus,List<Company> GoodsCar,int useIn) {//车辆工厂按需求造车 String brand = "";//初始化 String seat = ""; String model = ""; String tonnage = ""; float price = 0; int id = 0; String license = ""; if (useIn == 1) {//创造轿车 for (Company com : listCar) { Truck com1 = (Truck) com; if (userBrand.equalsIgnoreCase(com.getBrand())//寻找系统是否存在该轿车 && userModel.equalsIgnoreCase(com1.getModel())) { brand = com.getBrand(); model = com1.getModel(); price = com.getPrice(); id = com.getId(); license = com.getLicense(); break; } }return new Truck(brand, model, price, id, license);//返回一个新的轿车对象 } else if (useIn == 2) { for (Company com : bus) { Sedan com1 = (Sedan) com; if (userBrand.equalsIgnoreCase(com.getBrand()) //寻找系统是否存在该客车 && userSeat.equalsIgnoreCase(com1.getSeat())) { brand = com.getBrand(); seat = com1.getSeat(); price = com.getPrice(); id = com.getId(); license = com.getLicense(); break; } }return new Sedan(brand, seat, price, id, license);//返回一个新的客车对象 }else if (useIn == 3) { for (Company com : GoodsCar) { GoodsVehicle com1 = (GoodsVehicle) com; if (userBrand.equalsIgnoreCase(com.getBrand()) //寻找系统是否存在该货车 && userTonnage.equalsIgnoreCase(com1.getTonnage())) { brand = com.getBrand(); tonnage = com1.getTonnage(); price = com.getPrice(); id = com.getId(); license = com.getLicense(); break; } }return new GoodsVehicle(brand, tonnage, price, id, license);//返回一个新的货车对象 }else { return null; } } }
时间: 2024-01-04 22:03:19 浏览: 67
这段代码是一个静态方法 CarFactory,接受四个参数 userBrand、userModel、userSeat 和 userTonnage,以及三个车辆列表 listCar、bus 和 GoodsCar,以及一个整数 useIn。
根据 useIn 的不同取值,CarFactory 会分别从不同的车辆列表中查找符合用户需求的车辆,并返回一个新的车辆对象。如果没有找到符合需求的车辆,则返回 null。
其中,轿车对象的类名为 Truck,客车对象的类名为 Sedan,货车对象的类名为 GoodsVehicle。这些车辆对象都具有品牌、型号、价格、ID 和车牌号等属性。
该方法的主要作用是根据用户需求创建相应的车辆对象。
相关问题
(5)编写类carfactory,该类定义了一个静态方法getcar(),它可以根据用户指定的车型
来创建并返回对应的Car对象。假设我们有三种车型:轿车、SUV和卡车,对应的类分别为Car、SUV和Truck。
代码如下:
```python
class Car:
def __init__(self):
self.type = 'car'
class SUV:
def __init__(self):
self.type = 'SUV'
class Truck:
def __init__(self):
self.type = 'truck'
class CarFactory:
@staticmethod
def getcar(car_type):
if car_type == 'car':
return Car()
elif car_type == 'SUV':
return SUV()
elif car_type == 'truck':
return Truck()
else:
raise ValueError('Invalid car type')
```
使用示例:
```python
car = CarFactory.getcar('car') # 创建一个轿车对象
suv = CarFactory.getcar('SUV') # 创建一个SUV对象
truck = CarFactory.getcar('truck') # 创建一个卡车对象
```
注意:这里使用了静态方法,因此可以通过类名直接调用getcar()方法,不需要先创建一个CarFactory对象。同时,如果传入的车型不在预定义的三种之内,将会抛出一个ValueError异常。
阅读全文