Инициализация массива в конструкторе, а затем выполнение его в методе main
Поэтому я пытаюсь выяснить, как создать этот конструктор, который позволяет мне сделать массив внутри конструктора
public class knapsack {
private int num[];
knapsack(int [] numbers){
this.num = numbers;
}
Теперь, обращая внимание на основной файл, я пытаюсь создать объект, который также позволяет мне использовать в нем массив, например:
public class main {
public static void main(String[] args) {
// TODO Auto-generated method stub
knapsack newKnapsack = new newKnapsack({40, 10, 46, 23, 22, 16, 27, 6});
Тем не менее, я продолжаю сталкиваться с проблемами с рюкзаком newKnapsack = new Knapsack line. Я не уверен, что именно так вы создаете конструктор для создания массива и его хранения.
Я очень новичок в Java, поэтому любая помощь будет принята с благодарностью!
1 ответ
Когда вы создаете объект, вы не вызываете конструктор здесь. Также неправильный способ создания массива. Это правильный способ создать его,
public class Knapsack {
private int num[];
Knapsack(int[] numbers) {
this.num = numbers;
}
public static void main(String[] args) {
Knapsack newKnapsack = new Knapsack(new int[]{40, 10, 46, 23, 22, 16, 27, 6});
for (int i = 0; i < newKnapsack.num.length; i++) {
System.out.println(newKnapsack.num[i]);
}
Knapsack.bestTwoValues(newKnapsack.num, 1); //you can access only static members by calling like this
newKnapsack.bestTwoValues(newKnapsack.num, 1); //this way you can access both static and instance variables
}
static int bestTwoValues(int numbers[], int target) {
//your code
return 0;
}
}
Также, пожалуйста, попробуйте следовать верблюдным обозначениям при написании кода. Так что здесь class
имя должно быть Knapsack
вместо knapsack