Добрый вечер.
Заметил следующий нюанс при работе с переменными в Java,
характерно для любых типов переменных int, String и т.д., не
зависит от модификатора - переменная static или не статическая:
public class Test {
static int var1 = 5;
static int var2 = 5;
static int var3 = 5;
static int varSum = var1 + var2 + var3;
public static void main(String[] args) {
System.out.println(varSum);
var1 = 50;
System.out.println(varSum);
}
}
Результат исполнения будет:
15
15
Хотя, казалось бы, что должно быть:
15
60
Вопросы следующие:
1. Получается переменную, состоящую из других переменных нужно
переинициализировать каждый раз после изменения одной из её
составляющих? В данном случае после присвоения var1 = 50; нужно
будет вставить varSum = var1 + var2 + var3; тогда результат будет
15 и 60.
2. Может быть, есть какой-то метод заставляющий переменную varSum
пересчитать себя без переинициализации? Например:
varSum.something() или something(varSum) или ещё как-то?