나는 점수의 종류를주는 포인트로 다른 오브젝트를 "수집"하는 간단한 프로그램을 작성하려고합니다. 예를 들어, "Porsche"에는 사용자가 결정한 포인트가 주어지며 새 포인트를 입력하면 해당 포인트가 이전 값에 추가됩니다. 따라서 "Porsche"에 100 점을주고 50을 더하면 총점은 150이어야합니다.이 프로그램은 다른 차량에 대한 총 점을 저장해야합니다 (따라서 100 점의 BMW를 추가하면 합계가 있어야 함). 250 (150 포인트는 포르쉐에서 제공)).기존 포인트를 덮어 쓰지 않고 오브젝트에 포인트 추가하기
먼저 자동차에 대한 ArrayList를 살펴 본다. 그러나 새 점수를 추가하려고하면 기존 값을 새 값으로 덮어 씁니다.
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);
나는이 문제를 해결하는 쉬운 방법이있을 것 같아요,하지만 지금 나는 우둔 해요 내 인터넷 검색 기술이 나에게 어떤 결과를 제공하지 않습니다.
readInt()와 readString()는 내 스캐너 단지 방법
'car.setPoints (car.getPoints() + readInt()); – IQV
또는 간단하게'addPoint (int)'메소드를 만들면 금지되어 있지 않다. getter와 setter가 표준이지만 다른 메소드를 만들 수있다. – AxelH
@IQV 감사합니다. 하하 ... 오, 그 사람이 내가 그걸 생각했으면 좋겠어 ... 따라 해 - 내가 같은 차의 중복을 만드는 것 같습니다. 점수는 업데이트해야합니다. 그러나 50을 추가 한 다음 100을 같은 객체에 추가하면 이제는 같은 자동차를 3 대 얻습니다.하지만 같은 합계를 얻습니다. 스코어가 동일한 오브젝트에만 추가되기 위해 필요한 것은 무엇입니까? – zkulltrail