今天写到把种子种下去,转换成植物的过程。发现还是太多东西前期没考虑到。重写了Farmer的Seed方法,在主程序更改想用的使用方法。并且,在主程序中创建对象后用set()方法赋值,为下一步读取控制台输入做好准备。只把关键更新的方法放上来吧。
public Plants Seed(Seed sd) {//返回一个Plants对象,满足模拟种子到作物的转换而且方便下一步操作。
String str = sd.getProductName().substring(0, 2);//截取种子的前两个名字做为关键字决定作物类型(作物类型静态化)
Plants plants = new Plants();//将seed转换成了plants
switch (str) {
case "番茄":plants = new Tomato();break;
case "土豆":plants = new Potato();break;
case "玉米":plants = new Maize();break;
case "南瓜":plants = new Pumpkin();break;
default: break;
}
System.out.println("种植 : " + plants.getName());
return plants;//返回代表当前作物的Plants对象。
}
}```
```java
Farmer farmer = new Farmer();//初始化好Farmer/Storage等类的对象
Storage stor = new Storage();
Seed sd = new Seed();//初始化Seed类,以后要考察这个对象是否可以被替代而反复利用
sd.setProductName("番茄种子");
sd.setProductNum(1);
Plants plt = new Plants();
plt = farmer.Seed(sd);//通过这个转化,把Seed变成了Plants
farmer.TakeCare(plt);
farmer.TakeCare(plt);
if (farmer.Harvest(plt)) {
Products pdct = new Products(plt.getName(), 5, 6.5F);
stor.addStorage(pdct);
stor.demonstrateproduct(stor.storageProduct);
}
plt = farmer.Seed(sd);
farmer.TakeCare(plt);
farmer.TakeCare(plt);
if (farmer.Harvest(plt)) {
Products pdct = new Products(plt.getName(), 5, 6.5F);
stor.addStorage(pdct);
stor.demonstrateproduct(stor.storageProduct);
}
手提拿去修了。晚上只能看书了。