Você está aqui: ActionScript ::: Dicas de Estudo e Anotações ::: Modificadores |
Aprenda a usar o modificador (atributo) static para modificar variáveis e métodos de uma classeQuantidade de visualizações: 8068 vezes |
O modificador (atributo em ActionScript) static é usado para especificar que um método ou variável pertence à uma classe e não aos objetos dessa classe. Em outras palavras, podemos acessar métodos, constantes e variáveis marcadas como static em uma classe sem a necessidade de construir uma instância dessa classe. Tome por exemplo a classe Math. Todos os métodos, variáveis e constantes públicas são marcadas como static. Isso permite que usemos código como o seguinte: var valor:Number = Math.ceil(45.6); package{ public class UtilidadesString{ // método static que remove os espaços // antes e depois de uma string public static function trim(str:String):String{ return str.replace(/(^\s+)|(\s+$)/g, ""); } } } <?xml version="1.0" encoding="iso-8859-1"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" applicationComplete="iniciar()"> <mx:Script> <![CDATA[ import mx.controls.Alert; public function iniciar():void{ var frase:String = " Tenho espaços no " + "início e fim. "; // vamos remover os espaços frase = UtilidadesString.trim(frase); Alert.show("#" + frase + "#"); } ]]> </mx:Script> </mx:Application> public static function trim(str:String):String{ return str.replace(/(^\s+)|(\s+$)/g, ""); } frase = UtilidadesString.trim(frase); package{ public class Aviao{ // variável marcada como static public static var quantidade:int; // construtor da classe public function Aviao(){ quantidade++; } } } <?xml version="1.0" encoding="iso-8859-1"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" applicationComplete="iniciar()"> <mx:Script> <![CDATA[ import mx.controls.Alert; public function iniciar():void{ // cria instâncias da classe avião var aviao1:Aviao = new Aviao(); var aviao2:Aviao = new Aviao(); var aviao3:Aviao = new Aviao(); // obtém a quantidade de aviões criados var quant:int = Aviao.quantidade; Alert.show(quant + " aviões foram criados."); } ]]> </mx:Script> </mx:Application> 3 aviões foram criados. var quant:int = Aviao.quantidade; var quant:int = aviao1.quantidade; Error: Access of possibly undefined property quantidade through a reference with static type Aviao. var quant:int = aviao1.quantidade; Por fim, saiba que não é possível acessar variáveis, constantes e métodos não static a partir de um método marcado como static. Isso faz sentido. Se o método pertence à classe e não às suas instâncias e poderá ser chamado sem que nenhuma instância da classe seja criada, é razoável supor que, ao chamar ou acessar membros de instância, o ambiente de compilação ou execução emita mensagens de erro. Veja o que acontece tentando compilar um programa Flex que faz uso da seguinte classe: package{ public class Aviao{ // variável não é static private var marca:String; public static function umMetodo():void{ // tenta acessar uma variável não // static a partir de um método static marca = "Fox57"; } } } Error: Access of undefined property marca. marca = "Fox57"; ^ |
![]() |
Veja mais Dicas e truques de ActionScript |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |