Você está na página 1de 37

PHP Orientado a

objetos – Aula 03
Prof. Gustavo Linhares
ABSTRAÇÃO

 Separar mentalmente;
 Considerar isoladamente;
 Simplificar;
 Alhear-se;
 Separa em partes mais importantes;
 Ignorar os detalhes(em um primeiro momento);
 Construir peças bem sucedidas que possam ser
reaproveitadas posteriormente.
CLASSES ABSTRATAS

 Classes que servirão de base para outras;


 Classes que nunca serão instanciadas na forma de
objetos. Somente suas filhas serão;
 Uso do operador abstract antes do nome da classe.
Exemplo:
Seguindo os exemplos anteriores, uma pessoa pode ter
uma ContaCorrente ou uma ContaPoupança, mas
jamais poderá ter uma Conta. Isso porque Conta é
uma estrutura abstrata, não definindo características
próprias como taxas de retirada, limites, dentre outras
especificidades que são escritas nas classes-filha.
CLASSES ABSTRATAS
CLASSES FINAIS

 Não pode ser uma superclasse, ou seja não pode ser


base numa estrutura de herança;
 Definimos a classe pelo operador FINAL;
 Não poderá ser especializada;

Exemplo:
Classe ContaPoupanca
CLASSES FINAIS
CLASSES FINAIS
MÉTODOS ABSTRATOS

 Consiste na definição de uma assinatura na classe


abstrata;
 Deverá conter uma implementação na classe-filha,
mas não deve possuir implementação na classe em
que ele é definido.
Exemplo:
Definiremos um método abstrato na classe Conta. Isso
faz com que seja obrigatório a qualquer classe
descendente da classe Conta(ContaPoupanca e
ContaCorrete) ter em si a implementação deste método.
MÉTODOS ABSTRATOS
MÉTODOS ABSTRATOS
MÉTODOS FINAIS

 Não pode ser sobrescrito, ou seja, não pode ser


redefinido na classe-filha;
 Utiliza-se o operador FINAL no início da sua
declaração;

Exemplo:
MÉTODOS FINAIS
MÉTODOS FINAIS
MÉTODOS FINAIS
MÉTODOS FINAIS
ENCAPSULAMENTO

 Mecanismo que provê proteção de acesso aos


membros internos de um objeto.
 A classe possui responsabilidade sobre os atributos
sobre os atributos que contém;
 As propriedades não devem ser acessadas
diretamente de fora do escopo de um classe, pois
dessa forma a classe não fornece mais garantia sobre
os atributos que contém, perdendo assim a
responsabilidade sobre eles.
ENCAPSULAMENTO
ENCAPSULAMENTO

 VISIBILIDADE DAS PROPRIEDADES E DOS MÉTODOS DE


UM OBJETO.
ENCAPSULAMENTO

 Obs.: para manter a compatibilidade com versões


anteriores, quando a visibilidade de uma propriedade
ou de um método não for definida, automaticamente
ela será tratada com public.
PRIVATE
PRIVATE
PRIVATE
PRIVATE

 O exemplo anterior resulta num erro de acesso a


propriedade;
 Para resolver isso criaremos métodos pertencentes a
classe Funcionario para manipular essas
propriedades.
PRIVATE
PRIVATE
PRIVATE
PROTECTED

 Vamos especializar a classe funcionário, criando a


classe estagiário.
PROTECTED
PROTECTED
PROTECTED
PROTECTED

 Como esperado o programa não retornou o salário


esperado. Isto ocorre porque a propriedade Salario é
uma propriedade private, o que significa que ela
somente pode ser acessada de dentro da classe em
que ela foi declarada(Funcionário).
 Exemplo:
PROTECTED
PROTECTED
PUBLIC

 Demonstrar a visibilidade public é uma tarefa simples,


pois o comportamento –padrão do PHP é tratar uma
propriedade como public, ou seja, se não
especificado a visibilidade, automaticamente ela é
publlica.
PUBLIC
PUBLIC
MEMBROS DA CLASSE

 Próxima aula.

Você também pode gostar