poo encapsulamento

Post on 23-Jan-2018

146 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related