Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Michel Araújo

ActionScript 3.0 Orientado a Objetos

Recommended Posts

ActionScript 3.0 Orientado a Objetos

Aula 05: Aplicando os Primeiros Conceitos

No tutorial anterior, apresentamos os primeiros conceitos importantes para o estudo da Programação Orientada a Objetos, Classes, Objetos, Métodos, Propriedades, etc. Também criamos nosso primeiro exemplo de classe, com a classe Paciente. Vamos revê-la:

package{
 	
 	//Aqui definimos nossos imports
 	
public class Paciente{ //Letra Maiscula na hora de criar sua classe
 	
 	public var nome:String;
 	public var rg:int;
 	public var cpf:int;
 	
 	// Vamos deixar com poucos atributos
 	
 	public function Paciente(nome:String,rg:int,cpf:int){
 	//Aqui estou atribuindo os valores que recebo no construtor, no momento da inicializacao do
 	//objeto
 	
 	this.nome = nome;
 	this.rg = rg;
 	this.cpf = cpf;
 	trace("Bem vindo Paciente " + this.nome);
 	trace("Seu RG é " + this.rg);
 	trace("Seu CPF é " + this.cpf);
 	
 	
 	}
 	//Preciso definir metodos principalmente métodos set e get
 	//Mas que no momento nao irei definir pois ainda veremos isso mais a frente
 	
 	
 	public function agendaConsulta():void{
 	
 	// Código responsável por agendar a consulta
 	}
 	
 	
 	
 	}
 	
 	
 	
 	}

Nesta aula vamos ver na prática como aplicar esses primeiros conceitos.


Onde eu escrevo meu código?


As classes no ActionScript 3.0 (bem como interfaces, que veremos mais adiante no curso), devem ser escritas em um arquivo de texto com a extensão .as.
Elas podem ser escritas em qualquer editor de textos, porém o editor do Adobe Flash e do Flex/Flash Builder oferecem recursos como o AutoCompletar e Highlight Sintax, que facilitam o trabalho.
Vejamos como criar um arquivo de ActionScript (.as) no Flash:

- Usando o Menu File >> New...
- Escolha ActionScript File

Imagem Postada


Este arquivo deve ser salvo com o mesmo nome da classe definida nele.
De maneira geral, cada arquivo ActionScript deverá conter apenas uma classe (veremos mais à frente que dependendo dos Modificadores de Acesso, é possivel multiplas classes em um só arquivo, mas, salvo em ocasiões onde seja necessário, é uma boa prática manter uma Classe por arquivo).

Portanto, na classe que definimos anteriormente, o arquivo foi nomeado como 'Paciente.as'.

E onde eu devo salvar este arquivo?

Isso vai depender do nível hierárquico do paconte onde a classe está inserida. Para entender melhor isso, vamos entender o que são os pacotes.


Packages


Os Pacotes (Packages em inglês) são estruturas criadas principalmente para ajudar na organização, qualificação e encapsulamento do seu código.
Como o próprio nome sugere, você pode pensar nos pacotes como um container, um espaço onde você pode colocar suas Classes (Interfaces, etc). Neste sentido, os pacotes ajudam a organizar seu código, pois através deles, você pode agrupar suas classes de acordo com características comuns, por exemplo, você pode criar um pacote para suas classes que manipulam texto, e umm outro pacote para suas classes que manipulam imagens.
Vamos ver a sintaxe para acessar um pacote:

package nomedopacote
{
 //Aqui fica a definição da Classe(Interfaces, etc...)
}


Por padrão, usamos letras minusculas para o nome do pacote.

Um pacote pode conter outros pacotes dentro de si, criando uma estrutura hierárquica (acessada através do operador ponto ( . ), como no exemplo:

package menus.animacoes.textos
{
 // Assim, 
 // O pacote textos está dentro do pacote animacoes
 // O pacote animacoes por sua vez, está dentro do pacote menus
}

Dentro do pacote podem ser definidas quantas classes forem necessárias. Mas lembrando, que como cada classe deverá estar em seu próprio arquivo, o acesso ao pacote também será feito em cada arquivo. Veja o exemplo:

Arquivo Enfermeiro.as
package ambulatorio.funcionarios
{
	class Enfermeiro {

 	// Conteúdo da Classe Enfermeiro

	}
}

Arquivo Anestesista.as
package ambulatorio.funcionarios
{
	class Anestesista {

 	// Conteúdo da Classe Anestesista

	}
}

As classes Enfermeiro e Anestesista estão no mesmo pacote funcionários, que por sua vez está dentro do pacote ambulatório.
Entendendo esse sentido 'container' dos pacotes, paramos para responder aquela pergunta:

Onde devemos salvar os arquivos das classes?

A resposta é: Depende do nível hierárquico dos pacotes que a contém. Ou seja, cada pacote representa uma pasta, e os arquivos deverão estar na pasta correspondente ao pacote onde ela está inserida.
No nosso exemplo, a partir do diretório raiz do projeto, teriamos uma estrutura de pastas como esta:

Imagem Postada

Lembrando que cada pacote, pode conter mais de um pacote, e classes.

Voltando ao nosso primeiro exemplo, nosso pacote foi definido sem nome.
package{
 public class Paciente{
 	//...
 }
}

Por isso, o arquivo Paciente.as é salvo na raiz do projeto.

Para a questão da qualificação das classes, os pacotes também funcionam como um 'sobrenome' da Classe. Isso é importante principalmente quando é necessário compartilhar o código, ou usar classes de terceiro, pois é provável que dois programadores criem classes com nomes iguais. Através dos pacotes, podemos dar uma 'assinatura' àquela classe, facilitando o compartilhamento e evitando conflitos.
É comum que programadores usem as urls da empresa, ou pessoal, para nomear seus pacotes (garantindo assim, um nome único). Exemplo:

package br.com.seusite
{

}

Para uma empresa com a url seusite.com.br. É importante lembrar de criar as pastas corretamente para cada pacote (o br, o com, e o seusite).

Agora, vamos ver um pouco mais sobre as classes.


Classes

Já vimos a definição de classe na aula passada. Elas são como moldes, guardando todas as características e atribuições do objeto que será criado a partir dela. No exemplo, vimos como cria-la, mas vamos ver a sintaxe?

class NomeDaClasse
{
 // Conteúdo da Classe
}

bem simplesn não? mas o que é aquele 'public' lá no exemplo? Aquilo é um modificador de acesso, que veremos um pouco mais pra frente. Por enquanto basta saber que colocamos aquele public para que pudessemos acessar a classe lá no projeto do flash (o arquivo .fla).
Como as classes são como moldes, podemos criar quantos objetos forem necessários a partir desse molde. Ou seja, a partir da classe Paciente, lá no projeto eu posso criar:

- Um paciente com nome João, RG 112255, CPF 552211;

var joao:Paciente = new Paciente('João', 112255, 552211);
- Mais um paciente, com nome Pedro, RG 556677, CPF 776655;
var pedro:Paciente = new Paciente('Pedro', 556677, 776655);
- Outro paciente, com nome Maria, RG 778855, CPF 558877;
var maria:Paciente = new Paciente('Maria', 778855, 558877);
- ...

Ou seja com uma classe, eu posso criar quantos objetos reais forem necessários... e todos eles, contem características comuns (todos tem um nome, um rg, um cpf), mas não iguais.
Essas características, como mostrado no exemplo, são definidas quando criamos variáveis dentro do corpo da classe. À essas variáveis (as Propriedades) também se aplicam modificadores de acesso, que veremos mais adiante.

As funções criadas dentro de uma classe, recebem o nome de Métodos. Os métodos, são as ações que aquele objeto é capaz de realizar. No exemplo da classe Paciente, ele possui o método agendaConsulta(). Aos métodos também é possivel aplicar modificadores de acesso.

Porém, todas as classes possuem um método especial, chamado de Método do Construtor. Este método não determina uma ação que o objeto é capaz de realizar, e sim a própria contrução do objeto.
O Método Contrutor é executado toda vez que um novo objeto da classe é instanciado. Ele é definido criando uma função com o mesmo nome da classe.

Veja nosso exemplo da classe Paciente. Ela possui um método contrutor, e nele são passados parametros (nome, rg, cpf). Por isso, ao criarmos um novo objeto da classe Paciente, nós precisamos passar esses parametros. Veja no exemplo dado:

var paciente1:Paciente = new Paciente("kisuke",123456,123456);


Em new Paciente(), criamos um novo objeto da classe Paciente chamando seu construtor. E como no construtor da classe, o método está definido com parametros, precisamos passar esses parametros para o método.

No ActionScript 3.0 o método Construtor aceita apenas o Modificador de acesso public (para quem vem de outras linguagens, como Java, atenção!), sendo inclusive opcional o seu uso.

Caso não seja definido um método de construtor na classe, ele existirá, porém não vai executar nenhuma outra função além de criar o objeto.
Vem por aí:


Na próxima aula, vamos ver sobre encapsulamento e modificadores de acesso. Até lá!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito boa a abordagem sobre esses conceitos básicos porém essenciais.

Parabéns Michel.

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu kisuke =)

 

Espero que tenha dado para ficar claro esses conceitos fundamentais... com eles sólidos, fica mais fácil seguir em frente =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.