2015-04-11 1 views
0

У меня есть два класса, как это:Добавить переменные (узел) к узлу зависит от входного сигнала (Java)

public class Block { 
    int num; 
    int[] array= new int[3]; 
} 

А:

public class State { 
    int[][] Board = new int[6][6]; 
    Block block1= new Block(); 
    Block block2= new Block(); 
    Block block3= new Block(); 
    Block block4= new Block(); 
    Block block5= new Block(); 
    Block block6= new Block(); 
    Block block7= new Block(); 
    Block core= new Block(); 
    State pre; 
} 

Но это слишком долго и не очень хорошо. Я хочу изменить его на что-то вроде: Я ввожу целое число N. Тогда все состояние поможет N блоку. У кого-нибудь есть решение для этого? (В примере N равно 7.)

+0

Используйте список или карту, на которой хранятся объекты блока. – Ria

+0

Массив блоков может быть подходящим, в зависимости от того, что вы хотите сделать. – JonasCz

+2

Термин, который вы хотите найти, это: ** массивы ** (которые имеют фиксированный размер); или ** ArrayList ** (что немного «более сложно») – GhostCat

ответ

0

Создайте массив в своем классе State, чтобы содержать объекты Block. Затем используйте метод для установки количества объектов Block и инициализации этих объектов в массиве. Например:

public class State { 
    int[][] Board = new int[6][6]; 
    Block[] blocks; 
    Block core = new Block(); 
    State pre; 

    public void initialiseBlocks(int n) { 
     // Initialise the blocks array. 
     blocks = new Block[5]; 

     // Instantiate Block instances in the array. 
     for (int i = 0; i < n; ++i) { 
      blocks[i] = new Block(); 
     } 
    } 
} 

Как и в сторону, обратите внимание, что это важно отступа кода для удобства чтения, это делает чтение более сложный код намного легче и снижает вероятность ошибок, возникающих.

Смежные вопросы