Инициализация массива в конструкторе, затем выполнение его в методе main - PullRequest
0 голосов
/ 01 декабря 2018

Итак, я пытаюсь выяснить, как создать этот конструктор, который позволяет мне создать массив внутри конструктора.

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 Ответ

0 голосов
/ 01 декабря 2018

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

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

...