Это происходит один раз во время создания вашего экземпляра:
private String strOne = String.format("%02d", this.randOne);
Он не запускается автоматически после изменения randOne
. Решение состоит в том, чтобы полностью удалить поле strOne
и создать строку внутри геттера:
public String getStrOne() {
return String.format("%02d", this.randOne);
}
Вам не нужно хранить динамически полученное значение.
Поведение вашего метода setRandOne
не соответствует тому, что люди могут разумно ожидать от метода set
. Метод, который делает то, что делает ваш, может быть описан как setRandOneToOneHigherThan(int value)
. Или вы можете назвать это incrementRandOne()
, но тогда тело должно сделать this.randOne = this.randOne + 1;
(или this.randOne++;
). Или вы можете сделать это обычным установщиком и делать приращение, пока вы вызываете метод: fileA.setRandOne(fileA.getRandOne() + 1);
.