2010-09-30 14 views

Respuesta

11

Los métodos de la clase Math son estáticos. Por lo tanto, en hacer

Math.round(average) 

la clase de matemáticas en sí no cambia por lo que has hecho - que sólo devuelve un valor o actúa sobre el valor que pasa.

Por lo tanto, los métodos estáticos son útiles para las utilidades. Cosas como

StringUtils.removeWhitespaceFrom(textContent:String):String 

o

BrowserUtils.openInNewWindow(url:String):void 

Es muy inusual que tendrá que utilizar un método estático para cualquier otra cosa. No utilice estáticos como 'getInstance()' para crear Singletons: busque en su lugar un marco para la inyección de dependencias.

3

métodos estáticos son métodos que una no específica a cualquier instancia de una clase (objeto) que son métodos que no están permitidos para contener esta referencias y se puede acceder a ellos a través de la clase directamente (no las instancias de objeto)

2

Para aclarar su concepto, suponga que si desea saber cuántas veces se ha creado una instancia de su clase, utilizará el contador de variables estáticas en su constuctor de clase, cada vez que se crea su objeto.

Luego tiene que usar el método estático para acceder a estos datos, de lo contrario puede declarar su variable pública o predeterminada y acceder a ella con el nombre de clase, pero eso infringe los principios de OOP. aquí está el pequeño ejemplo

CAR public class {

Contador var estática privada: int = 0;

función privada CAR() {Counter ++; }

función estática pública ReturnTotalCarInstances(): int { return Counter; }

}

Las variables estáticas tienen sus beneficios eso es por eso que se proporciona en la mayoría de los lenguajes de programación. El conteo de instancias es el uso pequeño de la variable estática. Se usan en un alcance mucho mayor. El punto principal es que se usa para compartir datos globalmente entre todos los objetos de Clase.

4

Los métodos estáticos se pueden usar como constructores sobrecargados. ActionScript no tiene sobrecarga de funciones, por lo tanto, a veces escribo algo como:

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