oo com java
DESCRIPTION
OO com Java. Luiz Carlos d´Oleron Roteiro de aula. Roteiro. Pacotes Modificadores Utilizando Encapsulamento Herança Polimorfismo. Pacotes. O que se faz quando existem milhares de classes em um projeto? O que se faz quando existem duas classes com o mesmo nome em um projeto? - PowerPoint PPT PresentationTRANSCRIPT
OO com Java
Luiz Carlos d´Oleron
Roteiro de aula
Roteiro
• Pacotes
• Modificadores
• Utilizando– Encapsulamento– Herança– Polimorfismo
Pacotes
• O que se faz quando existem milhares de classes em um projeto?
• O que se faz quando existem duas classes com o mesmo nome em um projeto?
• Usamos pacotes para agrupar classes de responsabilidades semelhantes
Pacotes
• Definem o nome completamente qualificado de uma classe
• Ex:
umPacote.Exemplo1Exemplo1São classes distintas
Definindo e usando pacotes
• Para declarar que uma classe está em um pacote:
package <nomeDoPacote>;• Para usar numa classe uma outra classe de outro
pacote
import <nomeDoPacote >.<nomeDaClasse>;
Modificadores de visibilidade
• Encapsulamento é o modo como se esconde os detalhes de implementação de um componente (um objeto)
• Usamos 3 modificadores: public, protected e private
• Eles podem ser utilizados com classes, atributos e métodos
Risco de acessar diretamente atributo não privado
Usando private: Compilador proíbe acesso ao atributo não público:The field ControleDoMotor.potencia is not visible
O que ocorre se não colocar nem public nem private?
• O atributo, classe ou método só será visível pelas classes que estiverem no mesmo pacote
• Por isso, normalmente colocamos os atributos private e os métodos public
Herança
• Mecanismo pelo qual é possível escrever uma classe a partir de outra
• Herdando seus atributos
• Favorece sistemas mais robustos e simples de fazer
Exemplo de Herança • Vamos extender o controle de avião que fizemos antes com novas
coisas• Controle de motor de avião
– Potência máxima : 100 (igual)– Potência mínima : 0 (igual)– Recebe sinal de 32 bits via USB permitindo controle externo da
potência do motor (igual)– Possui uma chave liga-desliga (nova coisa)– Só pode aumentar ou baixar a potência se estiver ligado
Potência Mais Potência Menos Potência
USB control
0Ligar
Desligar
Usando o extends para herança
Polimorfismo
Qual deve ser a saída esperada para a execução do software a seguir?
Exercício – montar a hierarquia de classes a seguir
Criar uma classe com um método main e o seguinte código
Expressao x = new ExpressaoAtomica(‘x’);Expressao y = new ExpressaoAtomica(‘y’);Expressao negY = new Negacao(y);Expressao ou = new ExpressaoOU(x, negY);
String e = ou.representacao();
System.out.println(“Altura de ” + e + “ : ” + ou.altura());
System.out.println (“Número de operadores de ” + e + “ : ” + ou.numeroOperadores());