A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Aula 3 CoL, atividade Polimorfismo (late binding) Modificador final Modificador abstract Interfaces Herança múltipla Atribuição, Construtores, Destrutores,

Apresentações semelhantes


Apresentação em tema: "Aula 3 CoL, atividade Polimorfismo (late binding) Modificador final Modificador abstract Interfaces Herança múltipla Atribuição, Construtores, Destrutores,"— Transcrição da apresentação:

1 Aula 3 CoL, atividade Polimorfismo (late binding) Modificador final Modificador abstract Interfaces Herança múltipla Atribuição, Construtores, Destrutores, alocação de memória, Garbage Collection Modificador static, variáveis static, classes static. Interface cloneable Sobrecarga de operadores.

2 CoL Todos receberam o aviso do CoL? Vamos testar o CoL: – Atividade para quinta que vem (19.08): Faça um resumo (max 2 folhas) contendo os conceitos apresentados até esta aula, inclusive, e uma breve explicação.

3 “O que possui várias formas” Propriedade de se usar o mesmo nome para métodos diferentes, implementados em diferentes níveis de uma hierarquia de classes Para cada classe, tem-se um comportamento específico para o método 2 o semestre Polimorfismo

4 Habilidade pela qual uma única operação pode ser definido em mais de uma classe e assumir implementações diferentes em cada uma dessas classes Overriding de operações Vinculação tardia (late binding) é a técnica pela qual a operação a ser executada é determinada somente em tempo de execução Java (implementado diretamente) ‏ Palavra chave virtual (Linguagem C++) ‏ 2 o semestre Polimorfismo / Vinculação Tardia

5 Polígono p;... if usuário diz OK then p = new Triângulo(); else p = new Retângulo();... p.calcularArea(); // aqui p pode referir-se a um objeto // Triângulo ou a um objeto Retângulo // Capacidade de Substituição 2 o semestre Dados Triângulo calcularArea Dados Retângulo calcularArea p Polimorfismo / Vinculação Tardia

6 Permite a cada objeto responder a um formato de mensagem da maneira apropriada à classe (ou subclasse) da qual foi instanciado Uma mesma operação pode apresentar comportamentos diferentes em classes (ou subclasses) distintas Uma operação pode ter diferentes implementações, isto é, mais de um método pode implementá-la 2 o semestre Polimorfismo

7 Modificador final Uma variável ou um método “final” não pode ser substituído. Uma classe “final” tem todas as variáveis e métodos “final” e não aceita ser superclasse.

8 Modificador static Uma variável “static” é compartilhada e acessada por todas as instâncias (principal) Um método “static” pode ser chamado a partir da classe (principal12).

9 Modificador abstract Um método “abstract” requer ser codificado na subclasse (principal13, principal14). Uma classe com pelo menos um método “abstract” é uma classe abstrata

10 Interfaces Uma interface é uma classe em que todos os métodos são abstratos (principal 15).

11 Uma classe pode herdar características de mais de uma classe, ou seja, pode ter mais de uma superclasse a subclasse herda todos os atributos e métodos de todas as suas superclasses atributos/métodos de um mesmo ancestral que “alcancem” a subclasse por mais de um caminho na hierarquia são herdados apenas uma vez (são o mesmo atributo/método). Ex. a seguir: atributo cor na hierarquia de Veículo conflitos em definições paralelas na hierarquia podem gerar ambiguidades (ex. a seguir: método operar na hierarquia de Veículo) ‏ 2 o semestre Herança Múltipla

12 2 o semestre Atributo: - cor Método: -operar Veículo Veículo Terrestre Veículo Aquático Atributo: - cor Método: - operar Atributo: - cor Método: - operar Atributo: - cor Método: - operar ???? Atributo: - cor Método: - operar Atributo: - cor Método: - operar Veículo AnfíbioCarroBarco Herança Múltipla

13 Atribuições c3=c2

14 Construtores/Alocação/Referência Construtor – Alocar memória – Inicializar variáveis Cópia de instâncias – Cópia “rasa” – Cópia “profunda” Construtor de cópia/Sobrecarga de operador (C++) Construtor de cópia (JAVA) – principal16

15 Destrutores e gerenciamento de memória Java não tem um destrutor específico O gerenciador de memória detecta instâncias inativas e devolve a memória utilizada pela instância para o pool de memória livre. Um objeto tem o método finalize() – Não é possível dizer quando o método é chamado. Pode-se sugerir uma chamada do gerenciador de memória usando a chamada System.gc()


Carregar ppt "Aula 3 CoL, atividade Polimorfismo (late binding) Modificador final Modificador abstract Interfaces Herança múltipla Atribuição, Construtores, Destrutores,"

Apresentações semelhantes


Anúncios Google