В чем разница между открытым статическим методом и общедоступным методом? Зачем использовать общедоступный статический метод?Публичные статические методы против общедоступных методов
ответ
Методы класса Math являются статическими. Так, в этом
Math.round(average)
Класс Math сам не меняется тем, что вы сделали - это только возвращает значение или действует на значении вы проходите.
So - статические методы полезны для утилит. Такие вещи, как
StringUtils.removeWhitespaceFrom(textContent:String):String
или
BrowserUtils.openInNewWindow(url:String):void
Это очень необычно, что вы будете использовать статический метод для чего-нибудь еще. Не используйте статику типа getInstance() для создания Singletons - вместо этого загляните в структуру для инъекции зависимостей.
статические методы являются методами, что не относится к какой-либо экземпляра класса (объекта), они являются методы, которые не могут содержать эти ссылки и вы можете получить к ним доступ через класс непосредственно (а не экземпляры объектов)
Чтобы сделать вашу концепцию понятной, предположим, что если вы хотите знать, сколько раз ваш класс был создан, вы будете использовать статический счетчик переменных в своем классе constuctor, каждый раз, когда ваш объект будет создан.
Затем вы должны использовать статический метод для доступа к этим данным, иначе вы можете объявить свою переменную общедоступной или по умолчанию и получить доступ к ней с именем класса, но это нарушает принципы ООП. вот маленький пример
общественного класса CAR {
частный статический счетчик вар: INT = 0;
частная функция CAR() {Counter ++; }
общественная статическая функция ReturnTotalCarInstances(): int { return Counter; }
}
Статические переменные имеют их пользу вот почему это предусмотрено в большинстве языков программирования. Счетные экземпляры - это небольшое использование статической переменной. Они используются в гораздо большем объеме. Главное, что он используется для обмена данными по всему миру среди всех объектов класса.
Статические методы могут использоваться как перегруженные конструкторы. ActionScript не имеет функции перегрузки, поэтому иногда я пишу что-то вроде:
public class Foo {
public static function fromBar(bar:Bar):Foo {
var foo:Foo = new Foo();
... //initializing foo object from bar
return foo;
}
public static function fromBaz(baz:Baz):Foo {
var foo:Foo = new Foo();
... //initializing foo object from baz
return foo;
}
}
- 1. Статические методы против нестатических методов
- 2. Публичные функции против общедоступных слотов
- 3. Статические методы против методов, например, в УСК
- 4. Публичные статические методы - плохой знак?
- 5. Передача параметра через конструктор против общедоступных методов
- 6. Action-методы против общедоступных методов в фреймворках PHP
- 7. Статические методы Javascript против прототипальных/instatiated методов по производительности
- 8. Скрытие общедоступных методов в Java API/Jar
- 9. Статические методы против шаблона репозитория с Linq2Sql
- 10. Публичные статические методы в классе с только видимостью пакета?
- 11. Перспектива проектирования: статические методы против классов
- 12. Публичные и статические переменные
- 13. Сравнение: методы интерфейса против виртуальных методов против абстрактных методов
- 14. статические публичные методы, так и не статические методы по умолчанию в интерфейсах
- 15. PHP ограничивает вызов общедоступных методов
- 16. Публичные методы с использованием прототипа с JavaScript
- 17. Статические методы против расширения класса android.app.Application?
- 18. Статические методы скорости против метода класса
- 19. Статические методы фабрики против экземпляров (обычных) конструкторов?
- 20. Производные публичные статические std :: list
- 21. Частные против общедоступных переменных
- 22. Функции против статических методов
- 23. Проверка Jnuit от общедоступных до частных методов
- 24. Встроенные функции/методы против собственных функций/методов?
- 25. Методы Mongoose 'static' против методов 'instance'
- 26. Вложенные методы против «проторенных» методов, что лучше?
- 27. методы, которые делают против методов, которые делегируют
- 28. Методы класса Ruby против методов в Eigenclasses
- 29. Статические методы в matlab
- 30. Перехватить статические методы cglib