Jaka jest różnica między publiczną metodą statyczną a metodą publiczną? Dlaczego używałbyś publicznej statycznej metody?Publiczne metody statyczne a metody publiczne
Odpowiedz
Metody klasy Math są statyczne. Więc w ten
Math.round(average)
klasy Math sama pozostaje niezmieniona przez co zrobiłeś - to tylko zwraca wartość lub ustaw na wartość mijamy.
Więc - statyczne metody są użyteczne dla mediów. Rzeczy takie jak
StringUtils.removeWhitespaceFrom(textContent:String):String
lub
BrowserUtils.openInNewWindow(url:String):void
To bardzo niezwykłe, że chcesz skorzystać z metody statycznej na nic innego. Nie używaj statyków takich jak "getInstance()" do tworzenia Singletonów - zamiast tego przyjrzyj się ramom zastrzyku zależności.
metody statyczne są sposoby, że nie jest specyficzny dla każdej instancji klasy (obiektu) są metody, które nie są dopuszczone do zawierać te referencje i można do nich dostęp za pośrednictwem klasy bezpośrednio (nie instancje obiektów)
Aby dokonać pojęcie jasne, załóżmy, jeśli chcesz wiedzieć, ile razy została instancja klasy, która będzie używana statycznej zmiennej licznika w swojej klasie constuctor, za każdym razem utworzeniu obiektu.
Wtedy trzeba użyć metody statycznej dostęp do tych danych jeszcze można zadeklarować zmienną publiczną lub domyślne i uzyskać do niego dostęp z nazwą klasy, ale że jest niezgodny zleceniodawców OOP. tutaj jest mały przykład
public class CAR {
private static var Licznik: int = 0;
private function CAR() {licznik ++; }
publiczna funkcja statyczna ReturnTotalCarInstances(): int { return Counter; }
}
Zmienne statyczne mają swoje ów pożytku dlaczego jest w większości języków programowania. Liczenie instancji to niewielkie użycie zmiennej statycznej. Są używane w znacznie większym zakresie. Głównym celem jest to, że jest używany do globalnego udostępniania danych wśród wszystkich obiektów klasy.
metody statyczne mogą być stosowane jako przeciążonych konstruktorów. ActionScript nie ma przeciążenia funkcji, więc czasami piszę coś takiego:
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;
}
}