2016-04-07 54 views
1

我學習Java和我有一個鍛鍊做一個簡單的店經理 這裏是我ProductManager類JAVA - ArrayList中

private Scanner sc = new Scanner(System.in); 
private String name; 
private float price; 
private int quantity; 
public ProductManager() { 

} 

public void addProduct(ArrayList<Product> pr) { 
    Product p = new Product(); 
    System.out.println("Enter Name of Product :"); 
    p.setName(sc.nextLine()); 
    System.out.println("Enter Price of Product :"); 
    p.setPrice(sc.nextFloat()); 
    System.out.println("Enter Quantity of Product :"); 
    p.setQuantity(sc.nextInt()); 
    pr.add(p); 
    System.out.println("Success!"); 


} 


public void listProduct(ArrayList<Product> pr) { 
    System.out.println("LIST ALL PRODUCT"); 
    Product p; 
    for (int i = 0; i < pr.size(); i++) { 
     p = (Product) pr.get(i); 
     System.out.println(p.toString()); 
    } 
    System.out.println(pr.size()); 
} 

下面是店鋪等級

public static void main(String[] args) { 
    Scanner sc = new Scanner(System.in); 
    ArrayList<Product> products = new ArrayList<Product>(); 
    ProductManager pm = new ProductManager(); 
    System.out.println("SHOP MANAGER"); 
    System.out.println("1.Product Manager"); 
    System.out.println("2.Sale Orders Manager"); 
    System.out.println("3.Save Products To File"); 
    System.out.println("4.Load Products from file"); 
    int s; 
    System.out.println("Enter Your Choice :"); 
    s = sc.nextInt(); 
    switch (s) { 
     case 1: 

      System.out.println("Product Manager"); 
      System.out.println("1.Add Product"); 
      System.out.println("2.Edit Product"); 
      System.out.println("3.Remove Product"); 
      System.out.println("4.List All Product"); 
      System.out.println("5.Main Menu"); 
      int select; 
      select = sc.nextInt(); 
      switch (select) { 
       case 1: 
        sc.nextLine(); 
        pm.addProduct(products); 
        main(null); 
        break; 
       case 2: 
       case 3: 
       case 4: 
        pm.listProduct(products); 
        main(null); 
        break; 
       case 5: 
        Shop.main(null); 
        break; 
      } 

      break; 
    } 
} 
    } 

我已經創建了一個產品arraylist在商店類,但是當我做addProduct,它不工作,產品的大小仍然是0.我錯了哪裏?

+2

你不能只是複製粘貼你的功課在這裏,你應該自己嘗試一些,並要求一個特定的問題! –

+0

你爲什麼要調用'main(null)'? – Andrew

+0

tks,我意識到了,我有一個愚蠢的錯誤 – Smilee

回答

0

你必須在main方法中構建一個循環,而不是每次新調用它(如Eran所說!)。

試試這個:

public static void main(String[] args) { 
     Scanner sc = new Scanner(System.in); 
     ArrayList<Product> products = new ArrayList<Product>(); 
     ProductManager pm = new ProductManager(); 
     System.out.println("SHOP MANAGER"); 
     System.out.println("1.Product Manager"); 
     System.out.println("2.Sale Orders Manager"); 
     System.out.println("3.Save Products To File"); 
     System.out.println("4.Load Products from file"); 
     System.out.println("5.To exit the program"); // <-- added 
     int s; 
     System.out.println("Enter Your Choice :"); 

     while (s = sc.nextInt() != 5) { 
      switch (s) { 
      case 1: 

       System.out.println("Product Manager"); 
       System.out.println("1.Add Product"); 
       System.out.println("2.Edit Product"); 
       System.out.println("3.Remove Product"); 
       System.out.println("4.List All Product"); 
       System.out.println("5.Main Menu"); 
       int select; 
       select = sc.nextInt(); 
       switch (select) { 
       case 1: 
        sc.nextLine(); 
        pm.addProduct(products); 
        // main(null); 
        break; 
       case 2: 
       case 3: 
       case 4: 
        pm.listProduct(products); 
        // main(null); 
        break; 
       case 5: 
        // Shop.main(null); 
        break; 
       } 

       break; 
      } 
     } 
     System.out.println("The user wanted to exit the program!"); 
    } 
2

每次您撥打main(null)時,都會創建一個新的空白ArrayList。因此,當前main方法的products列表始終爲空。

你不應該打這個電話。如果您希望多次執行您的代碼,請使用while循環。

+0

非常感謝你,我有一個愚蠢的錯誤 – Smilee