| 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: 8265 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"; ^ | 
|  Link para compartilhar na Internet ou com seus amigos: | 
| Veja mais Dicas e truques de ActionScript | 
| Dicas e truques de outras linguagens | 
| E-Books em PDF | ||||
| 
 | ||||
| 
 | ||||
| Linguagens Mais Populares | ||||
| 
			   1º lugar: Java | 


 
 




