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

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

Classes Abstratas P. O. O. Prof. Ângela e Grace.

Apresentações semelhantes


Apresentação em tema: "Classes Abstratas P. O. O. Prof. Ângela e Grace."— Transcrição da apresentação:

1 Classes Abstratas P. O. O. Prof. Ângela e Grace

2 Classe Abstrata Classes demasiadamente gerais para criar objetos reais. Utilizadas como superclasses para subclasses concretas Declara atributos e comportamentos comuns das várias classes em uma hierarquia. Em geral, uma classe abstrata contém um ou mais métodos abstratos Atributos e métodos concretos de uma classe abstrata estão sujeitos às regras normais da herança.

3 Palavra-chave abstract
Utilizada para declarar uma classe abstrata. Utilizada para declarar um método abstrato: Classes abstratas contêm um ou mais métodos abstratos. Todas as subclasses concretas devem sobrescrever todos os métodos abstratos herdados. Tentar instanciar um objeto de uma classe abstrata é um erro de compilação.

4 Formas geométricas área( ) Formas geométricas área = π x r2
área = (b x h)/2 área = b x h

5 Classe Abstrata: Forma Geométrica
Atributos básicos Número de lados Métodos Set/ get número de lados: métodos não abstratos Área: método abstrato Imprime(): método não abstrato Precisa construtor?

6 Classe FormaGeometrica
Atributo protected Método concreto

7 Classe Circulo public class Circulo extends FormaGeometrica { private double raio; // atributo especifico do circulo public void setRaio (double raio) { if (raio<0) this.raio = 0; else this.raio = raio; } public Circulo (double raio) // construtor { setRaio(raio); } } Compila?

8 Classe concreta X superclasse abstrata
Classes abstratas contêm um ou mais métodos abstratos. No caso da forma geométrica: método area(). Todas as subclasses concretas devem sobrescrever todos os métodos abstratos herdados. No caso do círculo, devemos sobrescrever o método area().

9 Classe Circulo com Método Area( )
Usa classe Math Implementa Area( )

10 Classe TesteFormas Funciona?
public class TesteFormas { public static void main (String args[]) { FormaGeometrica f = new FormaGeometrica(); f.imprime(); Circulo c = new Circulo(5); c.imprime(); } } Funciona?

11 Alterações Classes abstratas não podem ser instanciadas.
Corrigir código do teste O que o método imprime(), quando invocado a partir de um objeto circulo deve imprimir na tela? Como imprimir raio junto ao número de lados? Altero em Circulo ou FormaGeometrica? Redefinir método imprime( ) na classe circulo!

12 Classe Circulo - Método imprime( )
sobrescreve imprime( )

13 Mais alterações... Como imprimir área da forma geométrica instanciada? No caso, a área do circulo... Altero na classe Círculo? Ou na FormaGeometrica? Redefinir método imprime( ) incluindo área.

14 Alterando a superclasse

15 Exemplo 02 – Subclasse Retangulo
Atributos básicos Base Altura Métodos Sets/ Gets Construtor (base, altura) area() imprime()

16 Classe Retangulo

17 Classe Retangulo (cont.)

18 Teste Formas

19 Atividade 31 Codifique a classe Triângulo
Crie uma classe de teste com as 3 formas geométricas: Circulo, Retangulo e Triangulo.

20 Próximas Aulas 16/05: Lista de Exercícios 23/05: Prova 2
30/05: Interface e Componentes GUI 06/06: Interface e Componentes GUI 13/06: Substitutiva


Carregar ppt "Classes Abstratas P. O. O. Prof. Ângela e Grace."

Apresentações semelhantes


Anúncios Google