gpt4 book ai didi

java - 当构造函数的两个变量丢失时,如何将对象赋予数组?

转载 作者:行者123 更新时间:2023-12-02 11:18:57 25 4
gpt4 key购买 nike

购物车程序:如果 main 方法给出构造函数,如何在数组中创建新对象(在本例中为 cart[0]) 5个变量,但它的构造函数中只有3个变量。不允许更改 main 方法。我尝试了一些方法,但我认为这行不通。

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 个值传递给 Grocery 构造函数,即使它需要 5 个值。

尝试使用三个参数重载构造函数,使其余值成为默认值,并定义一个新函数,让您通过使用键标识该对象来修改 Grocery 对象中的数据。在您的情况下, key 可以是 Grocery.pid

希望这对您有所帮助。

关于java - 当构造函数的两个变量丢失时,如何将对象赋予数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50070869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com