PROGRAMAÇÃO ORIENTADA A OBJETOS
POO
Professor: José Maria Lehrback FilhoCurso: Técnico em Informática Turno: Noturno Data: 11/04/2017
Introdução a POO
Classe e Objeto
Método
Herança
Encapsulamento
Abstração
Polimorfismo
Interface
Coesão / Acoplamento
Programação
Orientada a Objetos?
3 PILARES
• Encapsulamento.• Herança.• Polimorfismo.
ENCAPSULAMENTO
Programação
Orientada a Objetos?
O que é um encapsulamento?
Programação
Orientada a Objetos?
Programação
Orientada a Objetos?
Porque a pilha tem ser uma capsula?
Programação
Orientada a Objetos?
Programação
Orientada a Objetos?
Programação
Orientada a Objetos?
Programação
Orientada a Objetos?
PilhaRecarregável
PilhaComum
PilhaComum
Programação
Orientada a Objetos?
Você pode colocar pilha recarregável no controle remoto?
Programação
Orientada a Objetos?
E o que tem a ver a pilha com programação?
Programação
Orientada a Objetos?
Encapsular.
Ocultar partes independente da implementação, permitindo construir partes invisíveis ao mundo exterior.
Interface
Programação
Orientada a Objetos?
MensagemM
ensa
gem
Men
sagem
mensagem
INTERFACE
Programação
Orientada a Objetos?
Interface
Lista de serviços fornecidos por um componente. É o contato com o mundo exterior, que define o que pode ser feito com um objeto dessa classe.
Programação
Orientada a Objetos?
Vantagens de encapsular
1. Tornar mudanças invisíveis.2. Facilitar a reutilização do código.3. Reduzir efeito colaterais.
Programação
Orientada a Objetos?
Como encapsular?
Programação
Orientada a Objetos?
<<interface>>Controlador
+ligar()+desligar()+abrirMenu()+fecharMenu()+aumentarTemp()+abaixarTemp()+turbo()
ControleRemoto
-temperatura-ligado-turbo
+ligar()+desligar()+abrirMenu()+fecharMenu()+aumentarTemp()+abaixarTemp()+turbo()- setTemperatura()- getTemperatura()- setLigado()- getLigado()- setTurbo()- getTurbo()
<<interface>>Controlador
+ligar()+desligar()+abrirMenu()+fecharMenu()+aumentarTemp()+abaixarTemp()+turbo()
Interface Controlador//métodos abstratopublico abstrato Metodo ligar()publico abstrato Metodo desligar()publico abstrato Metodo abrirMenu()publico abstrato Metodo fecharMenu()publico abstrato Metodo aumentarTemp()publico abstrato Metodo abaixarTemp()publico abstrato Metodo turbo()FimInterface
Classe ControleRemoto//Atributosprivado inteiro temperaturaprivado logico ligadoprivado logico turbo//Atributospublico Metodo contrutor()
temperatura = 25ligado = falsoturbo = falso
FimMetodoprivado Metodo getTemperatura()Retorne temperaturaFimMetodoprivado Metodo getLigado()Retorne ligadoFimMetodoprivado Metodo getTurbo()Retorne turboFimMetodoprivado Metodo setTemperatura(temp: Inteiro)Temperatura = tempFimMetodoprivado Metodo setLigado(liga: Logico)Ligado = ligaFimMetodoprivado Metodo setTurbo(turb: Logico)Turbo = turbFimMetodoFimClasse
ControleRemoto
-temperatura-ligado-turbo
+ligar()+desligar()+abrirMenu()+fecharMenu()+aumentarTemp()+abaixarTemp()+turbo()- setTemperatura()- getTemperatura()- setLigado()- getLigado()- setTurbo()- getTurbo()
Classe ControleRemotoImplementa controlador//Subscrever Metodospublico Metodo ligar()...FimMetodopublico Metodo desligar()...FimMetodopublico Metodo abrirMenu()...FimMetodopublico Metodo fecharMenu()...FimMetodopublico Metodo aumentarTemp()...FimMetodopublico Metodo abaixarTemp()...FimMetodopublico Metodo turbo()...FimMetodoFimClasse
ControleRemoto
-temperatura-ligado-turbo
+ligar()+desligar()+abrirMenu()+fecharMenu()+aumentarTemp()+abaixarTemp()+turbo()- setTemperatura()- getTemperatura()- setLigado()- getLigado()- setTurbo()- getTurbo()
<<interface>>Controlador
+ligar()+desligar()+abrirMenu()+fecharMenu()+aumentarTemp()+abaixarTemp()+turbo()
Classe ControleRemotoImplementa controlador//Subscrever Metodospublico Metodo ligar()setLigado (verdadeiro)FimMetodopublico Metodo desligar()setLigado (falso)FimMetodopublico Metodo abrirMenu()Escreva (getLigado())Escreva (getTemperura())
para i = 0 ate getTemperatura() passo 10 facaEscreva (“|”)FimparaEscreval (getTurbo())FimMetodopublico Metodo fecharMenu()Escreva (“fechando menu...”)FimMetodo
publico Metodo aumentarTemp()se (getLigado()) entãosetTemperatura (getTemperatura()+1)Fimse
FimMetodopublico Metodo abaixarTemp()
se (getLigado()) entãosetTemperatura(getTemperatura()-1)Fimse
FimMetodopublico Metodo turbo()
se (getLigado() e getTemperatura()>25) entãosetTurbo(verdadeiro)SenaosetTurbo(falso)fimse
FimMetodoFimClasse