Когда использовать объект для вызова метода? - PullRequest
0 голосов
/ 09 мая 2020

Я не понимаю, когда использовать объект для вызова метода. Например, иногда мне нужно сделать object.someMethod(), а иногда метод работает, когда он просто вызывается someMethod(). Если бы кто-нибудь мог прояснить, когда мне нужно использовать объект, а когда нет, было бы здорово!

1 Ответ

0 голосов
/ 09 мая 2020

Когда вы вызываете нестатические 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().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...