Java 当构造函数的两个变量丢失时,如何将对象赋给数组?
购物车程序:如果main方法给构造函数5个变量,但构造函数中只有3个变量,那么如何在Cart[0]的数组中创建新对象呢。不允许更改主方法。 我试过一些东西,但我想那是行不通的Java 当构造函数的两个变量丢失时,如何将对象赋给数组?,java,Java,购物车程序:如果main方法给构造函数5个变量,但构造函数中只有3个变量,那么如何在Cart[0]的数组中创建新对象呢。不允许更改主方法。 我试过一些东西,但我想那是行不通的 public class ShoppingCart { public Item[] cart; int temporary; public ShoppingCart() { } public void addItem(Item toAdd) { if(toAdd instanceof Grocery
public class ShoppingCart {
public Item[] cart;
int temporary;
public ShoppingCart() {
}
public void addItem(Item toAdd) {
if(toAdd instanceof Grocery) {
if(toAdd.pid==1) {
cart[0]=new Grocery(toAdd.pid, toAdd.signifier, toAdd.pricePerUnit, ((Grocery) toAdd).getExpiryDate(), ((Grocery) toAdd).getPacketCount()+Grocery.packetCount);
}
if(toAdd.pid==2) {
............
主要方法
public class ShoppingMall {
public static void main(String[] args){
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Ihr digitaler Warenkorb:");
boolean loop = true;
int item = 0;
String action = "";
int pckg;
float amount = 0.0f;
ShoppingCart basket = new ShoppingCart();
while (loop) {
System.out.println("\nWelcher Artikel soll bearbeitet werden");
System.out.println("------------------------------");
System.out.println("1 Butter");
System.out.println("2 Milch");
System.out.println("3 Draht");
System.out.println("4 Fliesen");
System.out.println("\nSie haben den Einkauf abgeschlossen?\nWaehlen Sie zwischen: ");
System.out.println("------------------------------");
System.out.println("5 Warenkorb ausgeben");
System.out.println("0 Exit\n");
System.out.print("Ihre Eingabe bitte: ");
try{
item = Integer.valueOf(input.readLine());
if((item < 5) && (item > 0))
{
//System.out.println("\n------------------------------");
do{
System.out.print("Waehlen Sie + fuer hinzufuegen oder - fuer entfernen. ");
action = input.readLine();
}while(!action.equals("+") && !action.equals("-"));
}
//if(action.equals("+") || action.equals("-"))
//{
switch (item) {
case 1: {
System.out.print("Wieviele Packungen Butter ? ");
pckg = Integer.valueOf(input.readLine());
Grocery groc = new Grocery(1,"Butter",1.59f,20180618,pckg);
if(action.equals("+"))
basket.addItem(groc);
else
basket.removeItem(groc);
break;
.....................
如果我正确理解了您的问题,那么您希望能够将3个值传递给screery构造函数,即使它需要5个值 尝试使用三个参数重载构造函数,使其余的值成为默认值,并定义一个新函数,该函数将允许您通过使用键标识对象来修改对象中的数据。在您的情况下,键可以是grovery.pid
希望这对您有所帮助。只需再添加一个接受三个变量的构造函数。您的问题尚不清楚,首先您能否批准后期编辑。第二,你能为我们提供一个明确的问题添加项目和杂货类结构,以便我们可以帮助你!