2014-11-16 4 views
0

Это может быть очень простой вопрос, но я в замешательстве. У меня есть основной класс и многие другие классы. В классе 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(); 

и проблема заключается в том, что каждый раз, когда я называю данные, совершенно новые массивы (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

Что '' two' и three'? Чего вы ожидаете? –

+0

@ElliottFrisch, Большое спасибо за обнаружение моей ошибки. Исходный код отличается от того, что я написал здесь, и было моей ошибкой модифицировать код. Вопрос обновляется. – MTT

+0

Ваши фигурные скобки кажутся перепутанными. Класс заканчивается перед методом или переменной – TameHog

ответ

1

Вы могли бы иметь другой конструктор

public DATA(double[][] trains){ 
    X_TRAIN = trains; 
} 
1

Чтобы иметь один экземпляр X_TRAIN вам нужно определить его как статического. Благодаря этому, вы можете создать его один раз, а затем получить доступ к нему через DATA.X_TRAIN

Смежные вопросы