У меня есть конструктор MappaFermi(), который создает объект из класса Settore с атрибутами coordinataX = 10, coordinataY = 8 и settoreNome = Nome.ALIENIJava Получить Конструктор Созданный в другом классе
public class MappaFermi extends Mappa {
public MappaFermi() {
new Alieni(10,8);
}
}
Этот класс Settore
public class Settore {
private Nome settoreNome;
private char letteraX;
private final int coordinataX;
private final int coordinataY;
public Settore (int coordinataX, int coordinataY){
this.coordinataX=coordinataX;
this.coordinataY=coordinataY;
}
public int getX(){
return coordinataX;
}
public int getY(){
return coordinataY;
}
public Nome getSettoreNome() {
return settoreNome;
}
public void setSettoreNome(Nome settoreNome) {
this.settoreNome = settoreNome;
}
}
Это перечисление Имя атрибута settoreNome
public enum Nome {
SICURO, PERICOLOSO, SCIALUPPA, ALIENI, UMANI
}
Это подкласс ALIENI из класса Settore, который устанавливает settoreNome в Nome.ALIENI
public class Alieni extends Settore {
public Alieni(int coordinataX, int coordinataY) {
super(coordinataX, coordinataY);
setSettoreNome(Nome.ALIENI);
}
}
Это класс Маппа что суперкласс из MappaFermi, но я не думаю, что он связан с моим вопросом
public class Mappa {
private Name mappaName;
private final Settore [][] settore;
private int Matrice [][];
private static final int X=23;
private static final int Y=14;
public Mappa(){
settore = new Settore[X][Y];
for (int i=0; i < X; i++){
for (int j=0; j<Y; j++) {
settore[i][j] = new Settore (i,j);
}
}
}
public Name getMappaName() {
return mappaName;
}
public void setMappaName(Name mappaName) {
this.mappaName = mappaName;
}
}
Хорошо, вот мой вопрос, когда я создаю объект MappaFermi, это создает одновременно объект Settore, что я хочу сделать, это использовать метод getSettoreNome() из класса Settore для этого объекта. Я знаю, что я должен начать с создания локальной переменной mappa = new MappaFermi(), но из этого я не знаю, как получить Settore (10,8) с settoreNome = Nome.ALIENI, который создается в новом MappaFermi().
public class MappaFermiTest {
@Test
public void testSettoreAlieni(){
Mappa mappa = new MappaFermi();
Settore settore = ??????;
assertEquals(Nome.ALIENI, settore.getSettoreNome());
}
}
«Хорошо, вот мой вопрос, когда я создаю объект MappaFermi это создает в то же время объект Settore» - да, но тогда это не * сделать * ничего с вновь созданным объектом. Почему он ее создает? Должна ли она быть частью состояния класса? Я подозреваю, что вам нужно поле, а не локальная переменная. Трудно сказать, поскольку вы не объяснили, чего вы действительно пытаетесь достичь. (Здесь также есть * гораздо больше кода, чем вам нужно, чтобы продемонстрировать проблему ...) –
Как лучший пример, попробуйте сохранить свой код на английском языке. Это стандарт. – grozandrei
@JonSkeet Я поместил весь код, потому что в противном случае указано, что чего-то не хватает, я делаю тест, чтобы увидеть, что при запуске MappaFermi() он создает Settore (10,8) с settoreNome = Nome.ALIENI, поэтому Я подумал, что это способ использовать метод getSettoreNome() из Settore (10,8) и сравнивать имя settoreName с Nome.Alieni –