Carregar apresentação
A apresentação está carregando. Por favor, espere
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.