저는 게임과 유사한 프로그램을 작성하고 있으며 클래스는 항목으로 사용해야합니다. 일반적으로 항목으로 보관하지만 모든 사람이 의미하는 바를하기 시작하기 위해 게임 일 10 시간을 기다려야합니다. 한 번에 모든 수업의 요일을 업데이트 할 수있는 방법이 있습니까? 정적 메서드를 사용하려고했지만 인스턴스 변수를 사용할 수 없어 작동하지 않습니다. 아마도 새로운 인스턴스가 만들어 질 때마다 확장되는 코드를 작성하려고 생각했지만 그것에 대해 이해할 수있는 것을 찾을 수는 없습니다. 메서드에 추가 할 수있는 방법이 있습니까?이 항목을 아무것도 만들지 않습니까? 이것은 내가 지금 무엇을 가지고 :Java에서 동시에 여러 클래스 인스턴스를 업데이트하는 방법
public class Tree
{
private boolean fullGrown;
private int day;
private int APDay; //apples per day
private static int totalApples;
public Tree()
{
fullGrown = false;
day = 0;
APDay = (int) (Math.random()*2) + 4;
}
public void updateDay()
{
day = day + 1;
if (day == 10) fullGrown = true;
if (fullGrown == true) totalApples = totalApples + APDay;
}
public void skipGrowth()
{
fullGrown = true;
}
}
이 작동하지만, 별도로 모든 인스턴스에 대해 하루 업데이트해야합니다. 나는 모든 인스턴스를 동시에 업데이트하는 방법이 필요하다. 이는 실제 인터페이스가 아닌 코드에서도 사용됩니다. 도움이 될 수 있습니다.
목록을 사용하여 인스턴스를 반복합니다. [무엇을 시도 했습니까?] (http://whathaveyoutried.com)? – ManoDestra
아마도 Observer 패턴을 구현할 수 있을까요? 당신의 모델에 당신의 수업을 "듣는다"(예 : 일). "days"가 업데이트되면 모델 (observable)은 모든 view-item (옵저버) https://en.wikipedia.org/wiki/Observer_pattern – alexbt
을 올바르게 인식합니다. 이것이 게임 로직이라면 모든 플레이어가 동시에 아이템을 얻지 않는 한 모든 플레이어에 대해 단일 변수를 사용하는 것은 부적절합니다. 예를 들어 6 일과 같이 늦게 가입 한 일부 사람들은 처음 10 일 동안 4 일을 기다려야합니다. – WSimpson