Comment déclarer une ArrayList d'objets à l'intérieur d'une classe en java?

Je suis très qualifiés avec java et de la programmation, même si je suis en train de faire un de mes ami exercices à la maison! 😛

L'exercice consiste à créer un système qui affiche une liste de produits disponibles en magasin, donnant à l'utilisateur la possibilité de choisir ce qu'elle veut, pour demander confirmation, puis l'ajouter à un panier pour plus tard la caisse.

Le problème est, je suis en train de faire un modèle de classe pour les produits, puis de les mettre tous ensemble dans une ArrayList d'objets de la classe "Produit". Fonctionne très bien si je déclare ladite liste et ajoutez tous les objets que je veux à l'intérieur d'une fonction, mais je ne peux pas déclarer à l'intérieur d'une classe (comme si c'est une variable de toutes sortes).

Voici une partie du code:

package system;

class Product {

public int id;
public String name;
public double price;

public Product(int startId, String startName, double startPrice){
     startId = id;
     startName = name;
     startPrice = price;
 }

public int getId(){
    return id;
}

public double getPrice(){
    return price;
}
public String getName(){
    return name;
}


}
//Main Class (The one that has the 'main()' function)

public class System {

ArrayList<Product> list = new ArrayList<Product>();
list.add(new Product(0, "Coca-Cola", 3.00));
list.add(new Product(1, "Mountain Dew", 2.00));
list.add(new Product(2, "Mango Smoothie", 4.50));
list.add(new Product(3,"Orange Juice", 5.00));
list.add(new Product(4, "Dr. Pepper", 4.50));
list.add(new Product(5, "Sandwich", 3.00));
list.add(new Product(6, "Hamburger", 3.50));
list.add(new Product(7, "Light Sandwich", 4.00));


//Yadda Yadda Yadda
}

Le but de faire, c'est d'être en mesure d'accéder à l'objet produit en question par la simple saisie de son identifiant, qui est identique à sa position dans la liste de tableaux.

par exemple:

System.out.println(list[0].getName); //Prints "Coca-Cola"

Cette stratégie facilite l'accès à chaque produit, et modularizes mieux, ce qui me permet de faire les modifications dans l'avenir.

Le seul problème est, comme je l'ai dit, je ne peux pas le déclarer au début d'une classe. Il ne peut être déclarée à l'intérieur d'une méthode, et utilisées uniquement dans ladite méthode, apparemment.

Des suggestions sur comment je peut faire? J'ai essayé en recherchant un peu, mais ne pouvais pas trouver/comprendre toutes les réponses appropriées.

Également, des conseils sur la façon de rendre ce code neatier est très apprécié.

Merci!

  • Astuce: utilisez les interfaces au lieu de mise en œuvre == Liste au lieu de la liste de tableaux 🙂
InformationsquelleAutor Ophir Neto | 2015-09-05