Самый эффективный способ вызова метода из другого класса - PullRequest
0 голосов
/ 26 мая 2018

Допустим, у меня есть ClassOne и ClassTwo.

ClassTwo имеет метод

public static void helloWorld() {
    do something();
};

Обычно я бы вызвал метод helloWorld в ClassTwo из ClassOne так:

ClassTwo classTwo = new ClassTwo ();
classTwo.helloWorld();

Но я также могу сделать это так:

ClassTwo.helloWorld();

Один путь предпочтительнее другого?И если так, то почему?

Я едва ли когда-либо видел, чтобы кто-то вызывал такой метод, но это кажется эффективным способом сделать это.

Ответы [ 3 ]

0 голосов
/ 26 мая 2018

ClassTwo.helloWorld() - статический метод.Эта версия может использовать только статические переменные ClassTwo;он не может использовать какие-либо переменные экземпляра.Вы должны использовать статическую версию, если метод не нуждается в переменных экземпляра.

Если метод должен использовать переменные экземпляра, вам, очевидно, необходимо использовать метод экземпляра.

0 голосов
/ 26 мая 2018

Если метод определен как static, его следует вызывать , используя ссылку на класс, вы можете вызвать его, используя ссылку на объект, но он не является предпочтительным и также не требуется.

Если метод не статический, а просто метод экземпляра, то вы должны вызвать его, используя ссылку на объект.

Метод и поля Intance принадлежат конкретному объекту.Вам нужен объект для доступа к методам и полям экземпляра.Использование ссылки на класс не может получить доступ к нестатическим методам.

Статические методы принадлежат классу.Все объекты класса имеют общее поведение метода.статические методы не могут быть переопределены.Доступ к ним можно получить по ссылке на класс.

Чтобы определить статический метод, вы можете использовать static ключевое слово .

0 голосов
/ 26 мая 2018

Измените метод ClassTwo как статический,

public static void helloWorld() {
 do something();
};

Теперь вы можете вызывать так:

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