WARNING:
JavaScript is turned OFF. None of the links on this concept map will
work until it is reactivated.
If you need help turning JavaScript On, click here.
Esse mapa conceitual, produzido no IHMC CmapTools, tem a informação relacionada a: 03. 3a semana, 3a SEMANA temas REESCRITA, REESCRITA exemplo class Funcionario { protected String nome; protected String cpf; protected double salario; public double getBonificacao() { return this.salario * 0.10; } // métodos } class Gerente extends Funcionario { int senha; int numeroDeFuncionariosGerenciados; public double getBonificacao() { return this.salario * 0.15; } // ... }, PACOTES import IMPORT X.Y.Z.*; É possível “importar um pacote inteiro” (todas as classes do pacote, exceto os subpacotes) através do coringa *: import java.util.*; Importar todas as classes de um pacote não implica em perda de performance em tempo de execução, mas pode trazer problemas com classes de mesmo nome! Além disso, importar de um em um é considerado boa prática, pois facilita a leitura para outros programadores. Uma IDE como o Eclipse já vai fazer isso por você, assim como a organização em diretórios., 3a SEMANA temas INTERFACES, POLIMORFISMO importante É exatamente esse o poder do polimor smo, juntamente com a reescrita de método: diminuir o acoplamento entre as classes, para evitar que novos códigos resultem em modificações em inúmeros lugares., CLASSES ABSTRATAS palavra chave abstract, REESCRITA palavra chave @Override, 3a SEMANA temas CLASSES ABSTRATAS, protected exemplo class Funcionario { protected String nome; protected String cpf; protected double salario; ... }, PACOTES o que contem Um pacote pode conter nenhum ou mais subpacotes e/ou classes dentro dele., HERANÇA importante saber que Uma classe pode ter várias lhas, mas pode ter apenas uma mãe, é a chamada herança simples do java, INTERFACES exemplo interface Autenticavel { boolean autentica(int senha); } class Gerente extends Funcionario implements Autenticavel { private int senha; // outros atributos e métodos public boolean autentica(int senha) { if(this.senha != senha) { return false; } // pode fazer outras possíveis verificações, como saber se esse // departamento do gerente tem acesso ao Sistema return true; } }, 3a SEMANA temas PACOTES, abstract exemplo abstract class Funcionario { protected double salario; public double getBonificacao() { return this.salario * 1.2; } // outros atributos e métodos comuns a todos Funcionarios } Funcionario f = new Funcionario(); // não compila!!!, CLASSES ABSTRATAS para que servem Se ela não pode ser instanciada, para que serve? Serve para o polimor smo e herança dos atributos e métodos, que são recursos muito poderosos, como já vimos., @Override exemplo @Override public double getBonificacao() { return this.salario * 0.15; }, extends depois do nome da classe class Funcionario { ... } class Gerente extends Funcionario { ... ... }, PACOTES padrão da SUN O padrão da sun para dar nome aos pacotes é relativo ao nome da empresa que desenvolveu a classe: br.com.nomedaempresa.nomedoprojeto.subpacote br.com.nomedaempresa.nomedoprojeto.subpacote2 br.com.nomedaempresa.nomedoprojeto.subpacote2.subpacote3 Os pacotes só possuem letras minúsculas, não importa quantas palavras estejam contidas nele. Esse padrão existe para evitar ao máximo o con ito de pacotes de empresas diferentes. As classes do pacote padrão de bibliotecas não seguem essa nomenclatura, que foi dada para bibliotecas de terceiros., POLIMORFISMO importante não importa como nos referenciamos a um objeto, o método que será invocado é sempre o que é dele, 3a SEMANA temas POLIMORFISMO