Написание методов экземпляра
Я тренируюсь писать метод экземпляра, который преобразует натуральное число в целое число.
Я следовал учебному пособию онлайн и придумал код ниже. Однако, когда я компилирую, он продолжает добавлять "this
"Код компилируется и дает ожидаемый результат, но я получаю несколько предупреждающих сообщений.this.i
"правильный синтаксис при создании метода экземпляра?
private NaturalNumber i;
public int toInt() {
int result = 0;
if (!(this.i.isZero())) {
int d = this.i.divideBy10();
result = this.i.toInt() * 10 + d;
this.i.multiplyBy10(d);
}
return result;
}
1 ответ
Всякий раз, когда вы вызываете какие-либо внутренние поля или методы объекта, ключевое слово this
, даже если явно не присутствует, подразумевается, ссылаясь на сам объект.
Более подробную информацию можно найти в документации по Java, например, из Oracle
:
Так, this.i
просто означает "переменная i
в this
объект ". Конечно, i
ему нужно присвоить значение перед вызовом любого из его методов, таких как this.i.isZero()
в противном случае ошибка времени выполнения (NullPointerException
) произойдет. Среда IDE также может предупреждать о такой ошибке (например, Eclipse
подчеркивает нарушившую команду неровной желтой линией).
Java
IDE могут автоматически добавлять this
Ключевое слово, если так указано в их настройках. Например, в Eclipse
, вы можете включить эту функцию из
- Окно -> Настройки -> Java -> Стиль кода -> Определить все сгенерированные обращения к полям с помощью этого