2015-12-16 2 views
-2

Я получилJava - Acces переменные из объекта, помещенного внутри конструктора

package sily; 

public class Tekst {  
    public double momentPodporowy; 
    public Tekst(){ } 
    public Tekst(int numeryMoment) { 
     momentPodporowy = ObliczanieSilPrzyPodoprach.momentyOdLewej.get(numeryMoment); 
    } 
} 

(метод ObliczanieSilPrzyPodporach работает отлично, это не проблема, наверняка)

Теперь я создаю объект в другом классе и я положил его в конструктор другого класса

Tekst tekst = new Tekst(2); 
RysowaniePrzekrojuPoprzecznego rysuj = new RysowaniePrzekrojuPoprzecznego(tekst); 

Сейчас я нахожусь в классе RysowaniePrzekrojuPoprzecznego, и я хочу сделать что-то вроде этого:

public RysowaniePrzekrojuPoprzecznego(Tekst tekst) 
double a = tekst.momentPodporowy 

но после ввода «текст». нет предложений, «momentPodporowy» не видно. Есть ли способ получить доступ к этой переменной?

+0

у вас есть фигурные скобки после 'общественного RysowaniePrzekrojuPoprzecznego (Tekst TEKST)', потому что, как вы разместили ее этот код не является действительным –

+0

определяют локальную переменную в '' RysowaniePrzekrojuPoprzecznego' для Tekst', а затем к нему доступ. Вы уже заявили об этом с помощью модификатора лобового доступа. Неправильная практика доступа к члену напрямую. Вы должны использовать сеттеры. – YoungHobbit

+0

Да, все правильно с кодом, я просто удаляю какой-то код, чтобы вставить его здесь, оригинальный конструктор был большой, чтобы вставить весь код –

ответ

0

Ваш код не компилируется в вашем последнем блоке кода, я предполагаю, что это конструктор ... Если это так, вам нужно немного скобок в конце этой строки.

Также, как уже упоминалось, вы должны использовать геттеры и сеттеры и сделать переменную экземпляра приватной.

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