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

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

Orientação a Objetos: Modificador Final para Métodos e Classes

Apresentações semelhantes


Apresentação em tema: "Orientação a Objetos: Modificador Final para Métodos e Classes"— Transcrição da apresentação:

1 Orientação a Objetos: Modificador Final para Métodos e Classes
Alcides Calsavara

2 Qualificador final em métodos e classes
Em um método: indica que o método não pode ser sobrecarregado (redefinido em subclasses) Em uma classe: indica que a classe não pode ser especializada (o que implica que todo método da classe é final).

3 Finalização de um método
Razão única: eficiência! Um método final é expandido (in-line) em todo local onde é chamado, dispensando ligação dinâmica. Recomendação de uso: para métodos acessores (get, put), pois não devem ser sobrecarregados por subclasses. final por default: métodos private, static e métodos de classe final.

4 Finalização de um método - Exemplo 1
class Trem { public final void acelere(float veloc) { ... } ... } ... Trem t = new Trem ( ... ) ; t.acelere (80.0f); // expansão in-line

5 Finalização de um método - Exemplo 2
class Pessoa { private int idade; private String nome; public Pessoa(int i, String n) { idade = i; nome = n; } // métodos acessores public final int get_idade( ) { return idade; } public final String get_nome( ) { return new String(nome); } public final void set_idade(int i) { idade = i; } public final void set_nome(String s) { nome = s; } // outros métodos ... }

6 Finalização de uma classe
Razões: Evitar que outros especializem a sua classe, pois esta já está concebida de forma completa (não faltam atributos e nem métodos). Exemplos: InetAddress, Socket. Para maior eficiência, pois não há possibilidade de haver instâncias mais especializadas e, assim, o código pode ser otimizado para manipular instâncias da classe final. Exemplo: String.

7 Finalização de uma classe - Exemplo
final class Livro { private String titulo; private int ano; Livro (String t, int a) { titulo = t; ano = a; } public void imprime( ) { System.out.println(titulo + ano); } }


Carregar ppt "Orientação a Objetos: Modificador Final para Métodos e Classes"

Apresentações semelhantes


Anúncios Google