O documento discute programação orientada a objetos, com foco nos pilares da encapsulamento, herança e polimorfismo. Apresenta exemplo de como encapsular atributos e métodos de uma classe ControleRemoto que implementa a interface Controlador.
22. Classe ControleRemoto
//Atributos
privado inteiro temperatura
privado logico ligado
privado logico turbo
//Atributos
publico Metodo contrutor()
temperatura = 25
ligado = falso
turbo = falso
FimMetodo
privado Metodo getTemperatura()
Retorne temperatura
FimMetodo
privado Metodo getLigado()
Retorne ligado
FimMetodo
privado Metodo getTurbo()
Retorne turbo
FimMetodo
privado Metodo setTemperatura(temp: Inteiro)
Temperatura = temp
FimMetodo
privado Metodo setLigado(liga: Logico)
Ligado = liga
FimMetodo
privado Metodo setTurbo(turb: Logico)
Turbo = turb
FimMetodo
FimClasse
ControleRemoto
-temperatura
-ligado
-turbo
+ligar()
+desligar()
+abrirMenu()
+fecharMenu()
+aumentarTemp()
+abaixarTemp()
+turbo()
- setTemperatura()
- getTemperatura()
- setLigado()
- getLigado()
- setTurbo()
- getTurbo()
23. Classe ControleRemoto
Implementa controlador
//Subscrever Metodos
publico Metodo ligar()
...
FimMetodo
publico Metodo desligar()
...
FimMetodo
publico Metodo abrirMenu()
...
FimMetodo
publico Metodo fecharMenu()
...
FimMetodo
publico Metodo aumentarTemp()
...
FimMetodo
publico Metodo abaixarTemp()
...
FimMetodo
publico Metodo turbo()
...
FimMetodo
FimClasse
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()
24. Classe ControleRemoto
Implementa controlador
//Subscrever Metodos
publico Metodo ligar()
setLigado (verdadeiro)
FimMetodo
publico Metodo desligar()
setLigado (falso)
FimMetodo
publico Metodo abrirMenu()
Escreva (getLigado())
Escreva (getTemperura())
para i = 0 ate getTemperatura() passo 10 faca
Escreva (“|”)
Fimpara
Escreval (getTurbo())
FimMetodo
publico Metodo fecharMenu()
Escreva (“fechando menu...”)
FimMetodo
25. publico Metodo aumentarTemp()
se (getLigado()) então
setTemperatura (getTemperatura()+1)
Fimse
FimMetodo
publico Metodo abaixarTemp()
se (getLigado()) então
setTemperatura(getTemperatura()-1)
Fimse
FimMetodo
publico Metodo turbo()
se (getLigado() e getTemperatura()>25)
então
setTurbo(verdadeiro)
Senao
setTurbo(falso)
fimse
FimMetodo
FimClasse
Notas do Editor
Encapsulamento
Herança
Polimorfismo
Pilha é capsula
Pilha tem capsula para te proteger contra catodo e anodo
Pilha segui um padra para um tipo de lanterna
Pilha AA não serve para algumas lanternas
Controle remoto
Tinha pilha duracel
Supermercado so tem Rayovac, Philips, Panasonic quadrada
Pilhas são diferente pelo conteúdo
Recarregável e pilha comum
Sim. Vc pode.
A composição química dentro da pilha não influência o controle, desde que as mesma sejam voltagem iguais
Tudo haver
Código encapsulado. Protege o usuário do código e o código do usuário
Código encapsulado mostra sempre o mesmo resultado independente do padrão da sua interface
Visibilidade relação com encapsulamento
Programa não precisa saber como o objeto funciona
1- posso trocar por qualquer pilha do msm modelo.
2- posso tirar a pilha de um controle remoto e por em outro controle
3- pilha sem capa pode afeitar com suas químicas. Software mal encapsulado pode estragar por mal uso do programador