J'essaie d'écrire un programme qui permet à l'utilisateur de créer 2 dépôts. Je l'ai dans un énoncé de commutation, mais quand il se termine et je retourne pour créer le deuxième dépôt il écrase Depot1.
Je ne sais pas comment j'aurais proposé de créer 2 dépôts distincts. P>
public class Depot
{
private String name;
private Product product1, product2, product3;
static int depotCounter = 0;
// Constructor to count depot objects
public Depot(){
depotCounter++;
}
// Method to make sure no more than 2 depots are created
public boolean checkDepot(){
if (depotCounter <= 2){
return true;
}
else{
return false;
}
3 Réponses :
Vous pouvez essayer de créer une liste de dépôts En outre, vous pouvez ajouter un identifiant dans l'objet
Lorsque vous entrez l'option 1, tout ce qu'il contient est exécuté le code dans le premier "commutateur". Et là, vous utilisez toujours Depot1 comme variable. Au fait, après avoir quitté la déclaration de commutation, votre dépôt est perdu de toute façon, car vous le déclarez dans ce bloc. Ce que vous pourriez faire, c'est quelque chose comme ceci:
do {
Depot depot1;
Depot depot2;
//Your code for the menu, e.g. selecting what the user wants to do
switch (option) {
case 1 :
if (depot1 == null) {
depot1 = new Depot()
//Do what you want to do with your depot
} else if (depot2 == null) {
depot2 = new Depot()
//Same as above
}
break;
//Rest of the switch statement
}
} while (option != 3)
int option = 0;
Depot depot;
String name;
Scanner console = new Scanner(System.in);
List<Depot> depotList = new ArrayList<>();
do {
System.out.println("(1) Add depot number ");
System.out.println("(2) Remove a depot");
System.out.println("(3) Exit program");
if (console.hasNextInt()) {
option = console.nextInt();
switch (option) {
case 1:
if (depotList.size() < 2) {
System.out.println("Enter new Depot name:");
if (console.hasNext()) {
name = console.next();
depot = new Depot();
depot.setDepotName(name);
depotList.add(depot);
}
} else {
System.out.println("Error only 2 depots allowed");
}
break;
case 2:
// remove depot code
break;
case 3:
break;
}
}
} while (option != 3);
System.out.println("Depots added:");
System.out.println("-------------");
depotList.forEach(currentDepot ->
System.out.println(currentDepot.getDepotName()));
Je ne peux pas utiliser des tableaux aussi, désolé aurait dû ajouter cela.
Pourriez-vous montrer la classe de dépôt aussi? Et une raison pour laquelle vous n'utilisez pas seulement deux paramètres Depot1 et Depot2 et dès que les deux sont initialisés, arrêtez-vous de créer de nouveaux?
Quelle est la logique à l'intérieur de Checkdepot?
Ajouté que, désolé.