2010-09-30 23 views

risposta

11

I metodi della classe Math sono statici. Così, nel fare

Math.round(average) 

classe Math è di per sé invariato da quello che hai fatto - restituisce solo un valore o agisce sul valore che si passa.

Quindi, i metodi statici sono utili per le utilità. Cose come

StringUtils.removeWhitespaceFrom(textContent:String):String 

o

BrowserUtils.openInNewWindow(url:String):void 

E 'molto insolito che usereste un metodo statico per altri scopi. Non usare statiche come 'getInstance()' per creare Singletons - guarda invece in un framework per l'iniezione delle dipendenze.

3

metodi statici sono metodi che un non specifiche per qualsiasi istanza di una classe (oggetto) sono metodi che non sono autorizzati a contenere questo riferimenti ed è possibile accedere tramite la classe direttamente (non le istanze di oggetti)

2

Per rendere chiaro il tuo concetto, supponiamo che se vuoi sapere quante volte la tua classe è stata istanziata, utilizzerai il contatore delle variabili statiche nel tuo istruttore di classe, ogni volta che il tuo oggetto viene creato.

Quindi devi utilizzare il metodo statico per accedere a questi dati altrimenti puoi dichiarare la tua variabile public o default e accedervi con il nome della classe ma che viola i principi OOP. qui è la piccola esempio

public class CAR {

private static var Contatore: int = 0;

funzione privata CAR() {Counter ++; }

public static function ReturnTotalCarInstances(): int { contatore di ritorno; }

}

variabili statiche hanno i loro benefici questo è il motivo per cui è previsto nella maggior parte dei linguaggi di programmazione. Il conteggio delle istanze è il piccolo uso della variabile statica. Sono usati in ambito molto più ampio. Il punto principale è che è usato per condividere i dati globalmente tra tutti gli oggetti di Classe.

4

I metodi statici possono essere utilizzati come costruttori sovraccaricati. ActionScript non ha sovraccarico di funzione, quindi a volte sto scrivendo qualcosa del tipo:

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