2010-09-30 18 views

Odpowiedz

11

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.

3

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)

2

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.

4

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; 
    } 
}