J'essaie d'écrire un programme simple où vous allez "collecter" différents objets avec des points qui donnent une sorte de score. Par exemple, une "Porsche" se verra attribuer un point déterminé par l'utilisateur et si vous entrez un nouveau point, ce point sera ajouté à l'ancienne valeur. Alors disons que vous donnez 100 points à Porsche et que vous en ajoutez 50, le total des points devrait être de 150. Le programme devrait également stocker un total de points pour différentes voitures (donc si j'ajoute une BMW avec 100 points, le total devrait être 250 (150 points proviennent de la Porsche)). D'abord, je regarde dans ma ArrayList pour la voiture, mais quand j'essaye d'ajouter une nouvelle partition, elle remplace simplement celle existante avec la nouvelle valeur.Ajouter des points à un objet sans écraser les points existants
System.out.println("The name of the car: ");
String carName = readString();
Car car = findCar(carName);
if(car == null){
System.out.println("Car doesn't exist!");
return;
}
System.out.println("Add more points for the car: ");
car.setPoints(readInt());
carlist.add(car);
Je crois qu'il ya un moyen facile de résoudre ce problème, mais maintenant je suis complètement paumé et mes compétences googler ne me donner aucun résultat.
readInt() et readString() est juste méthodes pour mes scanners
'car.setPoints (car.getPoints() + readInt());'? – IQV
ou simplement créer une méthode 'addPoint (int)', il n'est pas interdit, getter et setter sont un standard mais vous pouvez créer d'autres méthodes. – AxelH
@IQV Merci beaucoup! Haha ... oh, j'aurais aimé y penser ... Continuez - il semble que je crée des doublons de la même voiture. Le score est mis à jour comme il se doit, mais si j'ajoute 50, puis 100 au même objet, je reçois maintenant 3 des mêmes voitures, mais avec le même total. Qu'est-ce qui est nécessaire pour que le score ne soit ajouté que sur le même objet? – zkulltrail