Você está na página 1de 20

Desenvolvimento Web:

Orientação a Objetos

1
Classes e Objetos

 Classes – São estruturas que permitem


reunir características comuns a um
elemento e a partir delas, podem-se
criar variáveis, ou melhor, instanciar
objetos.
Classes e Objetos

 Classes– Cada classe em PHP é


colocado em um arquivo fonte
separado para facilitar a manutenção
e reaproveitamento do código.
Usualmente se nomeia os arquivos que
representam classes da seguinte
forma: “nomedaclasse.class.php”.
Classes e Objetos

 Classes

Criança
- idade: int
- nome: String
+ setNome(nome:var): void
+ getNome(): String
+ fazAniversario(): void
Classes e Objetos

 Atributos – A declaração de
atributos em PHP envolve
apenas descrever o tipo de
permissão de acesso (private
no caso de atributos) já que
a tipagem não é necessária
em php.
Classes e Objetos

 Métodos – Os métodos são


declarados da mesma forma
que as functions em PHP com
a diferença da adição da
permissão de acesso em
frente a eles.
Classes e Objetos

 Construtores – Os
construtores e
destrutores em PHP são
métodos padrões para
todas as classes sendo
__construct (construtor) e
__destruct (destrutor).
Classes e Objetos

 Chamadas a classes – Usamos o new para


chamar o construtor da classe e a sintaxe
nomeobjeto->nomemetodo(). Para a chamada
de métodos.
Classes e Objetos

 Chamadas a classes – Usamos a function


específica include_once para incluir o arquivo
de uma classe em um diferente arquivo de modo
que seja possível instanciar objetos dessa
classe.
Classes e Objetos

 Exercício – Construa uma classe chamada Celular que


possui dois atributos: modelo e marca. Crie uma pagina
de interface que contenha 2 campos (modelo e marca) e
três botões (enviar celular, limpar celulares, mostrar
celulares). Cada vez que o botão enviar celular for
pressionado um novo objeto celular deve ser adicionado
a um vetor. O botão mostra celulares exibe todos os
celulares cadastrados até o momento. O botão Limpa
celulares limpa o vetor de celulares.
Classes e Objetos

 Exercício2 – Adicione uma nova classe ao projeto


chamada de Comparador. A classe comparador possui um
método chamado ComparaCelular que recebe como
parâmetro dois diferentes celulares e retorna
verdadeiro se o modelo e a marca dos dois celulares for
a mesma e falso caso o contrário. Adiciona estruturas
adicionais na página de interface para testar esse novo
comportamento (campo para celular 1 e campo para
celular 2 e um botão para realizar a comparação).
Classes e Objetos

 Associação, Agregação e Composição


– Uma das principais características da
orientação a objetos é a capacidade
do relacionamento entre classes.
Classes e Objetos

 Associação – Associação refere-se à


condição de que uma classe está
vinculada a outra, porém não há uma
relação forte. Isso significa que, se
uma delas deixar de existir a outra não
perde seu sentido.
Classes e Objetos

 Associação – Um exemplo de um
relacionamento de associação é uma
classe “motorista” e uma classe
“carro”. Um carro é dirigido por um
motorista, porém tanto na perda do
carro quanto do motorista a classe
relacionada não deixa de existir.
Relações de associação são
Classes e Objetos representadas no diagrama de
classes por setas unidirecionais
que apontam a direção do
relacionamento. No caso, o
 Associação carro possui um motorista.

Carro Motorista
- modelo: String - Nome: String
+ __construct(): void - CNH: int
+ getModelo(): String + __construct(): void
+ SetModelo(modelo: String): void + getNome: String
+ getMotorista(): Motorista + getCNH(): int
+ setNome(nome:String): void
+ setCNH(cnh: int): void
Classes e Objetos

 Agregação – Na agregação, uma classe


faz parte de outra classe. Por
exemplo, um carro é precisa de 4
rodas para funcionar.
Relações de agregação são
Classes e Objetos representadas no diagrama de
classes por setas unidirecionais
acompanhadas de um losango
aberto na direção do
 Agregação relacionamento que representa
o todo.

5
Carro Rodas
- modelo: String - Aro: int
+ __construct(): void + __construct(): void
+ getModelo(): String + getAro: int
+ SetModelo(modelo: String): void + setAro(aro: int): void
+ getMotorista(): Motorista
+ getRodas(): Roda[]
Classes e Objetos

 Composição – A composição é uma


relação mais forte que a agregação,
pois, além de indicar que uma classe
necessita de outra, não há a
possibilidade de o objeto ser
substituído. Por exemplo, um carro
tem um único chassi que legalmente,
não pode ser adulterado.
Relações de composição são
Classes e Objetos representadas no diagrama de
classes por setas unidirecionais
acompanhadas de um losango
fechado na direção do
 Composição relacionamento que representa
o todo.

Carro Chassi
- modelo: String - vin: String
+ __construct(): void + getVin(): String
+ getModelo(): String + setVin(vin: String): void
+ SetModelo(modelo: String): void
+ getMotorista(): Motorista
+ getRodas(): Roda[]
+getChassi(): Chassi
Classes e Objetos Desenvolva as classes abaixo,
considerando a que cada método
se propõe.
 Exercícios

MP3 Musica
- musicaAtual: int - nome: String
+ adicionaMusica(m: Musica): void - artista: String
+ removeMusica(m: Musica): void + getNome(): String
+ retornaAtual(): Musica + setNome(nome: String): void
+ proximaMusica(): void + getArtista(): String
+ voltaMusica(): void + setArtista (artista: String): void