Инициализация массива в конструкторе, а затем выполнение его в методе 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

Другие вопросы по тегам