Общедоступные статические методы против общедоступных методов

В чем разница между общедоступным статическим методом и общедоступным методом? Зачем вам использовать общедоступный статический метод?


person redconservatory    schedule 30.09.2010    source источник


Ответы (4)


Методы класса Math статичны. Итак, делая

Math.round(average)

сам класс Math не изменился из-за того, что вы сделали - он только возвращает значение или действует в соответствии с переданным вами значением.

Итак - статические методы полезны для утилит. Вещи как

StringUtils.removeWhitespaceFrom(textContent:String):String

or

BrowserUtils.openInNewWindow(url:String):void

Очень необычно использовать статический метод для чего-то еще. Не используйте статику вроде getInstance () для создания синглтонов - вместо этого изучите структуру для внедрения зависимостей.

person Stray    schedule 30.09.2010

статические методы - это методы, которые не относятся к какому-либо экземпляру класса (объекта), это методы, которым не разрешено содержать эти ссылки, и вы можете получить к ним доступ напрямую через класс (а не экземпляры объекта)

person Ken Struys    schedule 30.09.2010

Статические методы можно использовать как перегруженные конструкторы. В 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;
    }
}
person alxx    schedule 30.09.2010

Чтобы прояснить вашу концепцию, предположим, что если вы хотите знать, сколько раз создавался ваш класс, вы будете использовать статический счетчик переменных в своем конструкторе класса каждый раз, когда создается ваш объект.

Затем вы должны использовать статический метод для доступа к этим данным, иначе вы можете объявить свою переменную общедоступной или по умолчанию и получить к ней доступ с именем класса, но это нарушает принципы ООП. вот небольшой пример

public class CAR {

частный статический var Counter: int = 0;

частная функция CAR () {Counter ++; }

общедоступная статическая функция ReturnTotalCarInstances (): int {return Counter; }

}

Статические переменные имеют свои преимущества, поэтому они предусмотрены в большинстве языков программирования. Подсчет экземпляров - это небольшое использование статической переменной. Они используются в гораздо большем объеме. Суть в том, что он используется для глобального обмена данными между всеми объектами класса.

person Muhammad Irfan    schedule 30.09.2010