TADS
Reutilização de Classes
Reutilização
• Uma das características mais importantes das linguagens orientadas a objetos é a capacidade de facilitar a reutilização de código – o aproveitamento de classes e métodos que já estejam implementados e cujo funcionamento já tenha sido testado e comprovado
• Reutilização de código
– diminui o esforço de implementação
– facilita a manutenção
– minimiza a possibilidade de erros
2
Mecanismos de Reutilização
• Existem dois mecanismos básicos de reutilização de classes: – Composição (ou Delegação)
– Herança
• Com composição, usamos uma instância de uma classe como campo em outra classe.
• Com herança, criamos uma classe nova como uma extensão direta da classe base
3
Composição ou Delegação
• Uma possível forma de reutilizar métodos de uma classe base em outra classe é incluindo uma instância da classe base como um dos atributos da nova classe.
• Para que os métodos da classe base sejam executados, escrevemos métodos na classe nova que chamam os da classe base, delegando dessa forma a execução dos métodos
4
Exemplo public class DataHora { // declaração da classe private Data estaData; // referência a uma instância da classe Data private Hora estaHora;
// referência a uma instância da classe Hora public DataHora(int dia, int mes, int ano, int hora, int minuto, int segundo) { estaData = new Data(dia, mes, ano); estaHora = new Hora(hora, minuto, segundo);
}
public DataHora( int dia, int mes, int ano) { estaData = new Data(dia, mes, ano); estaHora = new Hora();
}
public String toString() { return estaData + " " + estaHora;
}
} // fim da classe DataHora
5
Exemplo
6
Exemplo
7
Exemplo
• A classe DataHora reutiliza as classes Data e Hora através de composição ou delegação
• A data e hora são representadas por instâncias das respectivas classes que estão embutidas na classe
DataHora, e toda a interação entre esta classe e as