Когда вы вызываете нестатические c члены класса, вам всегда нужно указывать экземпляр. Однако есть один короткий путь, если вы находитесь внутри функции-члена: вместо записи this.otherMethod()
вы можете опустить часть this.
и написать только otherMethod()
, так как это будет неявно предполагаться компилятором. Это обычная ситуация, и ее отсутствие не повредит читабельности:
class Foo {
public void someMethod() {
otherMethod(); // same as calling: this.otherMethod()
}
public void otherMethod() {
}
}
MyClass object = new MyClass();
object.someMethod();
MyClass object2 = new MyClass();
someMethod(); // ERROR: from the context, it is not clear which instance is meant:
// Do you mean object.someMethod() or object2.someMethod()?
Обратите внимание, что это работает только для методов того же класса. Если вы вызовете его извне, это будет ошибка компиляции. В приведенном выше примере необходимо явно указать object.someMethod()
или object2.someMethod()
.