Construtores em Mootools

O que é um construtor e como se criar construtores às classes de Mootools. Continuamos explicando sobre o trabalho em Mootools.

Por Miguel Angel Alvarez - Tradução de JML


Publicado em: 22/12/08

Valorize este artigo:
Em nosso manual de Mootools já começamos a conhecer as coisas sobre o uso de classes. Criamos classes e objetos a partir delas, conhecemos o que são as propriedades e os métodos, porém ainda nos falta muito caminho para percorrer antes que consigamos dominar as classes em Mootools.

Agora é a vez dos construtores, que em Mootools têm um método especial de se declarar. Neste artigo também veremos a criação de uma classe completa, com funcionalidades que nos servirão para afiar os conhecimentos adquiridos.

O que é um construtor

Um construtor em programação orientada a objetos se encarrega de resumir a tarefa de iniciação dos objetos. Ao definir uma classe podemos declarar um construtor, opcionalmente. Se este existe, no momento de instanciar um objeto a partir dessa classe, se realizará uma chamada ao construtor para iniciar as propriedades do objeto criado.

Podemos passar parâmetros ao construtor que poderão ser utilizados para iniciar o objeto.

Declaração de um construtor em Mootools

Um construtor de uma classe Mootools se declara como se fosse um método corrente, porém, com um nome fixo: "initialize". Tal método será uma função que pode receber parâmetros. Dentro da função se poderão realizar diversas ações, sendo o mais corrente a atribuição de valores às propriedades do objeto.

Vejamos um exemplo de classe com seu construtor:

var ClasseConstrutor = new Class({
   propriedade1: null,

   initialize: function(){
      this.propriedade1 = 1;
   }
});

Como se pode ver, o objeto se criou com uma propriedade, definida na lista de propriedades com valor null. Logo, no construtor se atualiza o valor da propriedade e se atribui 1.

Há que remarcar aqui a utilização de "this", que em linhas gerais serve para referenciar ao objeto sobre o que se está invocando o método. Como dissemos, um construtor se executa quando se está criando um objeto, durante o processo de instanciação. Portanto, "this" servirá para fazer referência ao objeto que se está construindo.

Dado o construtor que criamos, todos os objetos da classe ClasseConstrutor, no momento de sua criação, terão o valor de propriedade1 = 1.

Outro exemplo de construtor

Seguimos as explicações com este outro exemplo de classe realizada com mootools, que tem um construtor. O nome da classe é "Veiculo" e simplificamos e idealizamos bastante o funcionamento de um veículo qualquer. Terá duas propriedades: estado ("Detido" ou "Em funcionamento") e cor, configurável por meio do construtor. Ademais, criaremos dois métodos nas classe para colocar em funcionamento ou parar o veículo.

var Veiculo = new Class({
   estado: "Detido",
   
   initialize: function(color){
      this.color = color;
   },
   
   arrancar: function(){
      this.estado = "Em funcionamento";
   },
   
   deter: function(){
      this.estado = "Detido";
   }
});

Vemos que a classe "Veículo" tem à princípio uma propriedade, de nome "estado" e que o valor da propriedade, no momento de declará-la se marcou como "Detido".

Logo, vemos em construtor, no qual se recebe um parâmetro, que é a cor do veículo. A cor recebida por parâmetro se atribui a this.color. Com isso se gera uma propriedade nova no objeto, chamada "color" ao que se atribui a cor recebida no parâmetro.

Com isto vemos que, à parte de definir as propriedades da classe na hora de declarar seus componentes, também se podem criar propriedades à medida que se executam os métodos. Como o construtor sempre se executa ao criar o objeto, podemos estar seguros que todos os objetos criados terão a propriedade "color", atribuída ao valor de cor definida no parâmetro.

Logo, vemos dois métodos que simplesmente atualizam a propriedade "estado", para marcar se o veículo está em funcionamento ou detido.

Poderíamos criar um objeto da classe "Veículo" da seguinte maneira:

var meuVeiculo = new Veiculo("vermelho");

Este objeto terá como propriedade "cor" o valor "vermelho". Portanto, se mostramos em uma caixa de alerta a propriedade, nos apareceria "vermelho":

alert (meuVeiculo.color);

Podemos criar outro objeto da classe "Veiculo" com cor "azul", desta maneira:

var meuVeiculo = new Veiculo("azul");

Vejamos alguns usos simples que poderíamos dar ao objeto criado, para mostrar o estado, e para mudá-lo com os métodos arrancar e deter.

var meuVeiculo = new Veiculo("vermelho");
alert (meuVeiculo.color);
alert (meuVeiculo.estado);

meuVeiculo.arrancar();
alert (meuVeiculo.estado);

meuVeiculo.deter();
alert (meuVeiculo.estado);






Usuários :    login / registro
Manuais relacionados
Categorias relacionadas
O autor

Buscar projetos:

Home | Sobre nós | Copyright | Anuncie | Entrar em contato