作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
购物车程序:如果 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/
我是一名优秀的程序员,十分优秀!