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

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

Paradigmas da Programação – Semestre 1 – Aula 8 Professor: Eduardo Mantovani )

Apresentações semelhantes


Apresentação em tema: "Paradigmas da Programação – Semestre 1 – Aula 8 Professor: Eduardo Mantovani )"— Transcrição da apresentação:

1 Paradigmas da Programação – Semestre 1 – Aula 8 Professor: Eduardo Mantovani (eduardo.mantovani@aes.edu.br )

2 Classes abstratas São utilizadas como forma generalizada de uma hierarquia, definindo uma interface mínima para a criação de sub-classes. Uma classe é considerada abstrata quando é definida como abstrata ou quando tem um ou mais métodos abstratos. É importante observar que uma classe abstrata não pode ser instanciada, ou seja, não existe objetos se classes abstratas. Classes não abstratas pode ser chamadas de classes concretas.

3 Métodos Abstratos Para que um método seja abstrato (ou virtual) este deve ser declarado dessa forma. Métodos abstratos NÃO tem implementação, apenas declaração. Um método declarado abstrato na superclasse tem, obrigatoriamente, de ser implementado na sub-classe, exceto se essa também for abstrata.

4 Classes e métodos abstratos no diagrama de classe UML Elementos abstratos são apresentados em itálico no diagrama de classe UML. Exemplo: sistema de controle acadêmico Pessoa -nome: String -rg: String +Pessoa() +obterNome():String +ajustarNome(nome:String):void +obterRg():String +ajustarRg(rg:String):void +imprimir():void Aluno -curso: String +Aluno() +obterCurso():String +ajustarCurso(curso:String):void +imprimir():void Professor -disciplina: String +Professor() +obterDisciplina():String +ajustarDisciplina(disciplina:String):void +imprimir():void Imprimir foi implementado nas classes Professor e Aluno pois é abstrato na classe Pessoa

5 Classes e métodos abstratos em Java // Utilização do modificador abstract. // classe abstrata public abstract class Pessoa {... // método abstrato // observe: não tem corpo, termina com ‘;’ logo após a // assinatura do método public abstract void imprimir();... }

6 Modificador Static Quando empregado, este, este modificador torna o elemento (variável, atributo ou método) estático, ou seja, o elemento é alocado uma única vez, para todas as instâncias daquela classe, gerando diferentes resultados conforme o tipo de elemento onde é aplicado.

7 Aplicações do modificador Static Aplicado a variáveis locais: A variável mantém o valor entre diferentes chamadas do mesmo método. Aplicado a atributos: O atributo tem valor único entre as diferentes instâncias da classe. Passa a ser chamado de atributo de classe, enquanto os atributos não estáticos (ou dinâmicos) são chamados atributos de objeto. Aplicado a método: O método pode ser invocado a partir da classe sem que seja necessário um objeto dessa classe. Nessa condição o método é chamado de método de classe, ao passo que os métodos dinâmicos são métodos de objeto. Em contrapartida, métodos estáticos não acessam os elementos dinâmicos da classe (atributos e métodos), incluindo o operador this.

8 Modificador static no diagrama de classe UML Os elementos estáticos são representados por texto sublinhado. Exemplo: Pessoa -nome: String -rg: String -contadorObjetos: int +Pessoa() +obterNome():String +ajustarNome(nome:String):void +obterRg():String +ajustarRg(rg:String):void +imprimir():void +obterContador():int O atributo contadorObjetos é estático, terá o mesmo valor para todos os objetos da classe pessoa. No caso, a idéia é que o construtor incremente esse contador a cada objeto criado. O método obterContador também é estático e pode ser invocado sem a existência de um objeto Pessoa.

9 Modificador static em Java // Utilização do modificador static. // Com base no exemplo do slide anterior... class Pessoa { private static int contadorObjetos;.. // construtor: é dinâmico mas pode acessar elementos estáticos public Pessoa() { contadorObjetos = obterContador() + 1; }.. // método estático: só acessa elementos estáticos public static int obterContador() { return contadorObjetos; } }

10 Modificador final Faz com que o elemento ao qual é aplicado assuma sua versão final Versão final tem diferentes significados dependendo do tipo de elemento ao qual se refere: Versão final de classes: a classe em versão final não pode ter sub-classes, ou seja, é a extremidade de uma hierarquia de classes Versão final de métodos: o método em versão final não pode ser reescrito em uma sub-classe.

11 Modificador final em Java // Utilização do modificador final. Nesse caso, a classe Pessoa é final // e não será possível criar sub-classes dela. public final class Pessoa {. // não faz sentido ter métodos final em uma classe final, já que a // classe não terá sub-classes. } public class Motorista { // método final: não poderá ser reescrito em uma sub-classe public final int calcularSalario() {.. } }


Carregar ppt "Paradigmas da Programação – Semestre 1 – Aula 8 Professor: Eduardo Mantovani )"

Apresentações semelhantes


Anúncios Google