Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在构造函数中初始化数组,然后在主方法中执行它_Java_Arrays_Constructor - Fatal编程技术网

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

Java 在构造函数中初始化数组,然后在主方法中执行它,java,arrays,constructor,Java,Arrays,Constructor,所以我想弄清楚如何创建这个构造函数,它允许我在构造函数中创建一个数组 public class knapsack { private int num[]; knapsack(int [] numbers){ this.num = numbers; } 现在注意主文件,我正在尝试创建一个对象,该对象还允许我在其中使用数组,如下所示: public class main { public static void main(String[] arg

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

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=newKnapsack行的问题。我不确定这是否是创建构造函数来创建数组并存储它的方式


我对java非常陌生,因此非常感谢您的帮助

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

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;
    }
}

另外,在编写代码时,请尝试遵循驼峰符号。所以在这里,类名应该是背包而不是背包

所以当你创建对象时,你必须添加与你在构造函数中创建的相同的参数,对吗?当你试图打印出你在主方法的背包类中创建的方法时,如何才能做到这一点?是的,必须添加与构造函数中声明的参数相同的参数。你的意思是打印出数组?我有一个名为bestTwoValues的方法,在这个方法中,它基本上给出了一个数字数组,它找到了两个数字,当相加时,它接近但不超过指定的目标值。因此它有。静态int bestTwoValuesint数字[],int目标。我希望能够在主方法中使用这个方法,我们在主方法中创建了一个对象,那么我怎样才能调用它呢?与Knapsack.bestTwoValues类似,您可以使用new关键字后跟类名而不是变量名来构造类的实例。在您的情况下,它应该是背包newKnapsack=newKnapsack{。。。。