В чем разница между общедоступным статическим методом и общедоступным методом? Зачем вам использовать общедоступный статический метод?
Общедоступные статические методы против общедоступных методов
Ответы (4)
Методы класса Math статичны. Итак, делая
Math.round(average)
сам класс Math не изменился из-за того, что вы сделали - он только возвращает значение или действует в соответствии с переданным вами значением.
Итак - статические методы полезны для утилит. Вещи как
StringUtils.removeWhitespaceFrom(textContent:String):String
or
BrowserUtils.openInNewWindow(url:String):void
Очень необычно использовать статический метод для чего-то еще. Не используйте статику вроде getInstance () для создания синглтонов - вместо этого изучите структуру для внедрения зависимостей.
статические методы - это методы, которые не относятся к какому-либо экземпляру класса (объекта), это методы, которым не разрешено содержать эти ссылки, и вы можете получить к ним доступ напрямую через класс (а не экземпляры объекта)
Статические методы можно использовать как перегруженные конструкторы. В 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;
}
}
Чтобы прояснить вашу концепцию, предположим, что если вы хотите знать, сколько раз создавался ваш класс, вы будете использовать статический счетчик переменных в своем конструкторе класса каждый раз, когда создается ваш объект.
Затем вы должны использовать статический метод для доступа к этим данным, иначе вы можете объявить свою переменную общедоступной или по умолчанию и получить к ней доступ с именем класса, но это нарушает принципы ООП. вот небольшой пример
public class CAR {
частный статический var Counter: int = 0;
частная функция CAR () {Counter ++; }
общедоступная статическая функция ReturnTotalCarInstances (): int {return Counter; }
}
Статические переменные имеют свои преимущества, поэтому они предусмотрены в большинстве языков программирования. Подсчет экземпляров - это небольшое использование статической переменной. Они используются в гораздо большем объеме. Суть в том, что он используется для глобального обмена данными между всеми объектами класса.