etarnov
@etarnov
Студенка. 2й курс.

Почему с другого класса не считывается(getVal) измененная переменная?

Я не могу понять почему переменная vаl меняется в зависимости от того, в каком методе она считывается.

Мой код:
public class Main {

    public static void main(String[] args) {
	System.out.println("Start!");
	EditVal editVal = new EditVal();
	editVal.go();
    }
}

class Write{
    int val = 0;
    void setVal(int valGhanges){val = valGhanges;}
    int getVal(){return val;}
}

class EditVal{
    public void go() {
        Write write = new Write();
        write.setVal(1);// Здесь присвается переменной val значение 1 
        System.out.println("Read: " + write.getVal()); //Здесь выводит 1
        Read();
    }
    public void Read(){
        Write write = new Write();
        System.out.print(write.getVal()); // А почему здесь выводит ноль, Если в методе go() я присвоил значение 1?
    }
}

Помогите, буду очень благодарен.
  • Вопрос задан
  • 46 просмотров
Решения вопроса 1
etarnov
@etarnov Автор вопроса
Студенка. 2й курс.
потому что в Read создается новый объект, к методу которого вы обращаетесь.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы