150 likes | 278 Views
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?
E N D
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.Exemplo1 Exemplo1 Sã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
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 0 Ligar USB control Desligar
Polimorfismo Qual deve ser a saída esperada para a execução do software 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());