在构造函数中初始化数组,然后在main方法中执行

时间:2018-12-01 06:30:19

标签: java introduction

所以我试图弄清楚如何创建这个构造函数,该构造函数允许我在构造函数中创建一个数组

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背包。我不确定这是否是您如何创建构造函数以创建数组并将其存储。

我对Java非常陌生,因此任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

创建对象时,此处未调用构造函数。同样,您创建数组的方式也是错误的。这是创建它的正确方法,

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