Назначение в int triple = 3 * value;
выполняется только один раз для значения, оцененного в это время. Между этими двумя переменными после этой точки нет никакой внутренней связи.
Распространенным способом скрытия внутренних полей является использование методов получения и установки, где вы можете заставить свой класс вести себя так, как вы хотите. В зависимости от того, как именно вы хотите, чтобы эта тройка работала, вы можете установить ее значение в сеттере для значения:
public class Numbers{
private int value;
private int triple;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
this.triple = 3 * value;
}
public int getTriple() {
return triple;
}
}
Или вы можете просто полностью избавиться от тройного поля и просто заменить его методом:
public class Numbers{
private int value;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
public int getTriple() {
return 3 * value;
}
}
Я оставил сеттер для тройного выхода в обоих случаях, так как его поведение будет зависеть от того, что вы хотите сделать, если значение не делится на три - кажется, что вы все равно хотите, чтобы значение было доступно только для чтения .. .