Как передать массив конструктору? - PullRequest
2 голосов
/ 11 декабря 2011

Я пытаюсь выучить Java, но у меня проблема с передачей массива в конструктор.Например:

Класс приложения: byte[][] array = new byte[5][5]; targetClass target = new targetClass(array[5][5]);

Целевой класс:

public class targetClass {
    /* Attributes */
    private byte[][] array = new byte[5][5];

    /* Constructor */
    public targetClass (byte[][] array) {
        this.array[5][5] = array[5][5];
    }

}

Я был бы очень признателен, если бы вы показали мне, как я могу это сделать.

Ответы [ 5 ]

8 голосов
/ 11 декабря 2011

Во-первых, обычно имена классов в Java начинаются с заглавных букв, теперь для проблемы, с которой вы столкнулись, это должно быть:

public class TargetClass { /* Attributes */ 
    private byte[][] array;

    /* Constructor */
    public TargetClass (byte[][] array) {
        this.array = array;
    }
}
2 голосов
/ 11 декабря 2011

Вам не нужно инициализировать массив в классе во время объявления. Он может быть установлен на ссылку переданного массива. Например,

public class targetClass { 
    /* Attributes */ 
    private byte[][] array = null; 

    /* Constructor */ 
    public targetClass (byte[][] array) { 
        this.array = array; 
    } 

} 
1 голос
/ 11 декабря 2011
public class targetClass {
    /* Attributes */
    private byte[][] array = null;

    /* Constructor */
    public targetClass (byte[][] array) {
        this.array = array;
    }

}

Тогда назови это так

byte[][] array = new byte[5][5]; 
targetClass target = new targetClass(array);
1 голос
/ 11 декабря 2011

В вашем классе приложения должно работать следующее:

byte[][] array = new byte[5][5];
TargetClass target = new TargetClass(array); // Not array[5][5]

Кроме того, для вашего целевого класса должно работать следующее:

public class TargetClass {
    /* Attributes */
    private byte[][] array; // No need to explicitly define array

    /* Constructor */
    public TargetClass (byte[][] array) {
        this.array = array; // Not array[5][5]
    }
}

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

0 голосов
/ 11 декабря 2011

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

Внутриконструктор, синтаксис должен быть:

this.array = массив;

В приложении это должно быть

targetClass target =новый targetClass (массив);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...