2016-04-07 11 views
1

私は、Javaを学んでいると私は運動は簡単な店長 を作る持っていることは、私が作成したJAVA - ArrayListの

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; 
    } 
} 
    } 

ショップクラスの私のプロダクトマネージャークラスここ

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()); 
} 

されています私は間違っていたが、製品のサイズはまだ0です。

+2

あなたはここにあなたの宿題をコピー&ペーストすることができない、あなた自身で何かをしようとすると、特定の問題のために頼む必要があります! –

+0

なぜ 'main(null)'を呼び出そうとしていますか? – Andrew

+0

tks、私はそれを実現しました、私は愚かな間違いを持っ​​ています – Smilee

答えて

0

毎回新しく呼び出すのではなく、main-methodでループを構築する必要があります(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