我为我的编码课做了一项任务,我完成了大部分工作,但我不知道如何完成最后一部分。
这是作业"为植物苗圃创建一个植物类,它有五个与植物相关的属性:
Maximum Height in feet
Common name
Scientific name
Price
Whether or not it is fragile.
为类Plant创建两个您自己选择的方法。 允许用户从控制台创建Plant对象。创建工厂对象后,将对象添加到Plants的ArrayList。
允许用户编辑有关已输入的工厂对象的任何信息。
...还有10个额外学分!允许用户查看按价格(从最低到最高)排序的植物,科学名称(按类别按字母顺序排列)或通用名称(按第一个单词的首字母按字母顺序排列)。 作业是个人的。"
我的代码
class nursery{
private int height;
private String cName;
private String sName;
private int cost;
private boolean fragile;
public nursery(int height, String cName, String sName, int cost, boolean fragile)
{
this.height=height;
this.cName=cName;
this.sName=sName;
this.cost=cost;
this.fragile=fragile;
}
}
public class Nursery {
public static void main(String[] args) {
ArrayList<nursery> plant = new ArrayList<>();
Scanner s = new Scanner(System.in);
while(true){
//get the plant varibles
System.out.println("Enter the common name of the plant: ");
String cName = s.next();
System.out.println("Enter the scientific name of the plant: ");
String sName = s.next();
System.out.println("Enter the height of the plant: ");
int height = s.nextInt();
System.out.println("Enter whether the plant is fragile or not: ");
boolean fragile =s.nextBoolean();
System.out.println("Enter the price of the plant: ");
int cost=s.nextInt();
//add to the arraylist
nursery Plant = new nursery(height, cName, sName, cost, fragile);
plant.add(Plant);
System.out.println("If u would like to stop entering press q.");
String quit = s.next();
//quit out if wanted
if(quit.equals("q")||quit.equals("Q"))
break;
}
}
}
我不知道该怎么做是#34;允许用户编辑有关已输入的工厂对象的任何信息。&#34;我尝试过搜索,但我一直无法得到答案。
答案 0 :(得分:1)
您已将所有nursery
个对象(星球)保存到ArrayList<nursery> plant
,因此您需要做的只是从列表中找到它并重置其值。
一般的例子可能是:
nursery plant_to_update = null;
for (int i=0; i<plant.length; i++){
current_plant = plant.get(i);
// say user want to update planet with cName as 'planet 1'
if(plan_to_update.cName == "planet 1"){
plant_to_update = current_plant;
break;
}
}
if( plant_to_update != null){
// update planet 1 with new value
plant_to_update.setHeight(50);
plant_to_update.setCost(60);
}
并在nursery
类中添加setter以更新这些私有成员
public void setHeight(int height){
this.height = height;
}
public void setCost(int cost){
this.cost = cost;
}