这可能是一个非常简单的问题,但我很困惑。我有一个主类和许多其他类。在DATA类中,将随机生成一个数组(X_TRAIN)。
public class DATA {
public double[][] X_TRAIN;
public DATA() throws FileNotFoundException, IOException {
X_TRAIN = new double[2][2];
// X_TRAIN will be filled randomly
}
public double[][] X_TRAIN() {
return X_TRAIN;
}
}
我在其他类中调用DATA类的方式如下:
DATA data_input = new DATA();
问题是,每次调用DATA时,都会生成一个全新的数组(X_TRAIN),这不是我想要的。我想拥有一个独特的X_TRAIN数组。我需要调用DATA,因为我需要访问其他类中的X_TRAIN。也许我使用错误的方法来访问X_TRAIN。我的代码是用maven编写的,IDE是netbeans。 我甚至试图将X_TRAIN定义为私有:
private double[][] X_TRAIN;
并收到以下错误:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - X_TRAIN has private access in com.mycompany.cpxr_main.DATA
at com.mycompany.cpxr_main.MAIN_CLASS.main(MAIN_CLASS.java:61)
答案 0 :(得分:1)
要拥有X_TRAIN
的单个实例,您需要将其定义为 static 。这样,您可以生成一次,然后通过DATA.X_TRAIN
答案 1 :(得分:1)
你可以有另一个构造函数
public DATA(double[][] trains){
X_TRAIN = trains;
}