gpt4 book ai didi

java - 将二维数组硬编码到构造函数中

转载 作者:行者123 更新时间:2023-12-01 11:58:21 25 4
gpt4 key购买 nike

我目前正在尝试将预设值硬编码到构造函数中,它给了我一条“非法启动消息”。如果它不允许那很好,我想我会尝试找到解决方法。我正在开发的程序使用矩阵 1 的特定值来使程序的其余部分正常工作。我是一个初学者,所以我可能做错了。我查看了 Java API,没有发现任何内容表明我不能做我想做的事情。我有一个AssignmentOne 类,其中编码了方法和构造函数,还有一个AssignmentOneTest 来测试代码。我真的很想为此使用两个类。 下面是我的代码:

public class AssignmentOne {
private double[][] matrix1;
private double[][] matrix3;

public AssignmentOne(){
matrix3 = new double[3][3];
matrix1 = {{0.9,0.05,0.05},
{0.05,0.9,0.05},
{0.05,0.05,0.9}};

}//Constructor END

最佳答案

您只能在声明数组时对数组进行硬编码,而不能在稍后的代码中对其进行硬编码。所以这样就可以了:

public class AssignmentOne {
double[][] matrix1 = {{0.9,0.05,0.05},
{0.05,0.9,0.05},
{0.05,0.05,0.9}};

public AssignmentOne(){

// now you are free to use matrix1 here if need be

}

但这不是:

public class AssignmentOne {
double[][] matrix1;

public AssignmentOne(){
matrix1 = {{0.9,0.05,0.05},
{0.05,0.9,0.05},
{0.05,0.05,0.9}};
}

另一个可行的解决方案是允许构造函数接受数组参数,并传入在其他地方初始化的数组,例如在 main 方法中:

public class AssignmentOne {
double[][] matrix1;

public AssignmentOne(double[][] matrix1){
this.matrix1 = matrix1;
}

然后在其他地方:

public static void main(String[] args) {
double[][] arr = {{0.9,0.05,0.05},
{0.05,0.9,0.05},
{0.05,0.05,0.9}};

AssignmentOne assignmentOne = new AssignmentOne(arr);
}

关于java - 将二维数组硬编码到构造函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28181944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com