2016-04-07 5 views
1

я учусь Java и у меня есть упражнение сделать простой менеджер магазина Вот мой класс менеджер по продукту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

Вы должны построить цикл в основном методе, а не вызывать его каждый раз (как сказал Эран!).

Попробуйте это:

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. Поэтому список products текущего метода main всегда пуст.

Вы не должны делать этот звонок. Используйте цикл while, если вы хотите, чтобы ваш код выполнялся несколько раз.

+0

большое вам спасибо, у меня есть глупая ошибка – Smilee

Смежные вопросы