我有一個名爲ItemToPurchase的類,具有私有變量聲明和公共方法來設置和獲取這些變量的值。這個類還有一個默認的構造器和一個以String的itemName和itemDescription作爲參數的構造器。 例如:removeItem和changeQuantity方法不起作用
public class ItemToPurchase{
private String itemName;
public void setName(String name){
...
}
public String getName(){
return name;
}
}
,然後另一個類命名購物車,做同樣的事情,它也包含了這種方法。
private ArrayList<ItemToPurchase> cartItems;
cartItems = new ArrayList<ItemToPurchase>();
public void removeItem(String itemName) {
if (cartItems.contains(itemName)) {
cartItems.remove(itemName);
} else {
System.out.println("Item not found in cart. Nothing removed.");
}
}
和ShoppingCartManager類包含主,並在主要有一個打印菜單,看起來像這樣的循環。
ShoppingCart cart = new ShoppingCart(cName, tDate);
public static void main(String[] args) {
sc = new Scanner(System.in);
ShoppingCart object = new ShoppingCart();
System.out.println("Enter Customer's Name: ");
String cName = sc.nextLine();
System.out.println("Enter Today's Date: ");
String tDate = sc.nextLine();
System.out.println("Customer Name: " + cName + "\n" + "Today's Date: "
+ tDate);
ShoppingCart cart = new ShoppingCart(cName, tDate);
printMenu(cart);
}
public static void printMenu(ShoppingCart cart) {
char input;
do {
System.out.println("Menu");
System.out.println("a - Add item to cart");
System.out.println("d - Remove item from cart");
System.out.println("q - Quit");
System.out.println("");
System.out.print("Choose an option: ");
input = sc.next().charAt(0);
switch (input) {
case 'a':
addItem(cart);
break;
case 'd':
removeItem(cart);
break;
default:
}
} while (input != 'q');
}
public static void removeItem(ShoppingCart cart) {
System.out.println("REMOVE ITEM FROM CART");
System.out.println("");
System.out.print("Enter name of item to remove: ");
String itemName = sc.next().trim();
ShoppingCart object = new ShoppingCart();
object.removeItem(itemName);
}
public static void changeItem(ShoppingCart cart) {
System.out.println("CHANGE ITEM QUANTITY");
System.out.print("Enter the item name: ");
System.out.println("");
String itemName = sc.next().trim();
System.out.println("Enter the new quantity: ");
int nQuantity = sc.nextInt();
ItemToPurchase oItemName = new ItemToPurchase();
if (itemName.equals(oItemName.getName())){
oItemName.setQuantity(nQuantity);
}
任何人都可以解釋爲什麼removeItem()和changeItem()方法不工作? 讓我知道你是否需要更多地瞭解代碼。
'的ArrayList contains'方法和刪除方法需要類型的對象'ItemToPurchase'而不是字符串。 – iNan
你怎麼知道它不工作? (雙關語意) – Sikorski