for 루프를 통해 적의 '물결'을 달성하려고합니다. 기본적으로 wave 객체가 호출되면 wave의 적수를 설정하는 int를 허용합니다. 각각의 적들은 '적 (Enemy)'의 하위 클래스 인 자신의 클래스를가집니다. 내가 갇혀있는 방법은 웨이브 생성자에서 두 번째 매개 변수를 전달하여 적의 하위 클래스가 만들어 지도록 설정하는 방법입니다. 예를 들어 25 개의 Orcs가 생성되었거나 13 개의 트롤이 한 가지 방법으로 생성되었습니다. 어떤 도움이라도 대단히 감사하겠습니다.여러 하위 클래스 객체 만들기
0
A
답변
1
매개 변수를 기반으로 새로운 Enemy 개체를 만드는 Enemy 클래스의 정적 팩터 리 메서드를 만드는 것처럼 들립니다. 같은 뭔가 : 전달 된 매개 변수가 올바른지 확인하기 위해
// EnemyType is an enum
public static Enemy createEnemy(EnemyType enemyType) {
switch (enemyType) {
case BASIC_MONSTER:
return new BasicMonster();
case ORC:
return new Orc();
case TROLL:
return new Troll();
case ..... // etc...
}
}
주, 나는 그런 열거하지 int로서 매개 변수에 대한 청소기 뭔가를 사용할 수 있습니다. 그렇지 않으면 당신은 -24232로가 전달되는 실제적인 지능을 가진 위험
0
을 당신은 그런 다음 웨이브 방법으로 관련 열거를 통과 열거
public enum EnemyType {
ORC{
@override
public Enemy create() {
return new Orc();
}
},
TROLL{
@override
public Enemy create() {
return new Troll();
}
}...etc;
public abstract Enemy create();
}
를 사용할 수 있습니다.
public Collection<Enemy> createWave(final int num, final EnemyType enemyType) {
final Collection<Enemy> enemies = new ArrayList<>(num);
for(int i=0;i<num;i++) {
enemies.put(enemyType.create());
}
return enemies;
}
당신이 만약 differenet 적 유형을 많이 가지고 일반 공장을 고려하십시오
public interface EmemyFactory<E extends Enemy> {
E create();
}
그런 다음 implem을 만듭니다.
public Collection<Enemy> createWave(final int num, final Class<? extends Enemy> enemyClass) {
final Collection<Enemy> enemies = new ArrayList<>(num);
for(int i=0;i<num;i++) {
enemies.put(enemyClass.newInstance());
}
return enemies;
}
이 지저분하고 경향이있다 : 각 적 유형에 대한 entation과 원수가 NOARGS 생성자가 가정 열거하는 대신
public enum EnemyType {
ORC(new OrcFactory()),
TROLL(new TrollFactory()),
...etc;
private final EnemyFactory enemyFactory;
public EnemyType(final EnemyFactory enemyFactory) {
this.enemyFactory = enemyFactory;
}
public Enemy create() {
return enemyFactory.create();
}
}
그리고 마지막으로하고 적어도 당신은 약간의 반사를 사용할 수에 저장 그러나 런타임 오류에 ...
관련 문제
- 1. 클래스 내에 여러 객체 만들기
- 2. 같은 이름의 여러 클래스 객체 만들기? C++
- 3. 클래스 객체 배열 만들기
- 4. 클래스 하위 클래스 또는 객체
- 5. 추상 클래스 용 객체 만들기
- 6. 배열 클래스 객체 만들기
- 7. Swift에서 객체 클래스 만들기
- 8. CSS - 하위 클래스 만들기
- 9. Python - 자체 복제 클래스 객체 인스턴스 만들기
- 10. 다른 하위 클래스로 변환하기위한 하위 클래스 만들기
- 11. UIImagePickerController의 여러 객체 만들기
- 12. 만들기 여러 모델 객체
- 13. 기본 클래스 객체 내부에서 파생 클래스 객체 만들기
- 14. 자바 - 동적으로 하위 클래스 만들기
- 15. 루프에 여러 객체 만들기 문제
- 16. java oop에 여러 객체 만들기
- 17. Python 클래스 만들기 객체 목록
- 18. "파생 클래스"유형의 객체 만들기
- 19. 클래스 내부에 일반 객체 만들기
- 20. 하위 클래스와 동일한 유형의 객체 만들기
- 21. 레일에 하위 클래스 개체 만들기
- 22. 수퍼 클래스에서 하위 클래스 만들기?
- 23. Django의 클래스 기반 뷰를 사용하여 여러 객체 목록 만들기
- 24. JavaScript에서 여러 이미지 객체 만들기
- 25. 폼에 여러 객체 만들기 레일
- 26. 사전을 사용하여 여러 객체 만들기
- 27. 루프 안에 여러 객체 만들기
- 28. 여러 연관을 갖는 객체 만들기
- 29. 다양한 크기의 클래스 객체 배열 만들기
- 30. 클래스 C에서 여러 객체 사용 #
나는 당신이 무슨 뜻인지 잘 모르겠지만 생성자가 두 개의 매개 변수를 받아들이도록 만들 수 있습니다 : public void Enemy (int a, int b) – noob