0 penilaian0% menganggap dokumen ini bermanfaat (0 suara)
51 tayangan4 halaman
O documento descreve 12 tarefas para implementar um programa com herança de classes que representam figuras geométricas 2D e 3D. As tarefas incluem: 1) implementar a estrutura de classes conforme diagrama; 2) definir a classe Ponto como abstrata; 3) criar métodos para área e desenho em todas as subclasses; 4) adicionar construtores; 5) comparar objetos; 6) tratar erros; 7) adicionar método volume para Cilindro.
O documento descreve 12 tarefas para implementar um programa com herança de classes que representam figuras geométricas 2D e 3D. As tarefas incluem: 1) implementar a estrutura de classes conforme diagrama; 2) definir a classe Ponto como abstrata; 3) criar métodos para área e desenho em todas as subclasses; 4) adicionar construtores; 5) comparar objetos; 6) tratar erros; 7) adicionar método volume para Cilindro.
O documento descreve 12 tarefas para implementar um programa com herança de classes que representam figuras geométricas 2D e 3D. As tarefas incluem: 1) implementar a estrutura de classes conforme diagrama; 2) definir a classe Ponto como abstrata; 3) criar métodos para área e desenho em todas as subclasses; 4) adicionar construtores; 5) comparar objetos; 6) tratar erros; 7) adicionar método volume para Cilindro.
IFRN - INSTITUTO FEDERAL DE EDUCAO, CINCIA E TECNOLOGIA DO RN
DIRETORIA DE EDUCAO E TECNOLOGIA DA INFORMAO
EXERCCIO DE REVISO Polimorfismo PROF. JAILTON CARLOS jailton.paiva@ifrn.edu.br
Objetivo da Aula Implementar e entender a herana de classes. Utilizar os principais mtodos da class Object. Entender o conceito de classes e mtodos abstratos. Entender como evitar herana. Entender a sobrescrita de mtodos e o polimorfismo. Utilizar a palavra-chave super. Conceito de downcast e upcast Tarefa 01: Implementar a estrutura de classes presente no diagrama abaixo. Para cada campo presente em cada classe, implementar seus respectivos mtodos get e set.
Tarefa 02. A classe Ponto uma classe Geral, serve apenas de base para as outras classes. Portanto, a classe Ponto no poder ser instanciada. Defina a classe Ponto como sendo abstrata.
Tarefa 03: Criar uma classe chamada TesteGeometria. Criar o mtodo main, este dever criar uma instncia das classes Circulo, Quadrado e Cilindro e configurar suas variveis de instncia. !"#$" #x: int #y: int %&'()'(" -lado: double *)+,&-" #raio: double *+-+#()" -altura: double # visibilidade protected
Tarefa 04: Implementar construtores pblicos das classes Ponto, Circulo, Quadrado e Cilindro. Estes construtores devem inicializar as variveis de instncia das suas respectivas classes de acordo com os parmetros recebidos. Segue as assinaturas destes construtores:
public Ponto (int x, int y) public Circulo (int x, int y, double raio) public Quadrado(int x, int y, double lado) public Cilindro(int x, int y, double raio, double altura) Nota: usar a palavra-chave super para chamar o construtor da super-classe.
Tarefa 05: Defina um contrato para que todas as classes filhas sejam obrigadas a implementarem um mtodo area() e desenhar. Segue as assinaturas dos mtodos: public void desenhar() public double area()
Tarefa 06: Implementar os mtodos area() e desenhar() para todas as classes filhas.
Tarefa 07: Crie o mtodo volume para a classe Cilindro(). Nota: Aproveitar o mtodo area() da classe Circulo.
Tarefa 09: Defina a classe Cilindro de forma a evitar herana, ou seja, no permitir que sejam criadas subclasses a partir dela.
Tarefa 10: Ao imprimir uma instncia da classe Circulo, a JVM imprime a referencia do objeto, por exemplo, geometria.Circulo@addbf1,altere a classe para que a sada seja [x=10, y=10], raio=5.0
int x, y, raio; x=10; y=10; raio=5; Ponto c = new Circulo(x,y,raio); System.!"#.println(c);// sada [x=10, y=10], raio=5.0
Tarefa 11: Alterar as classes Quadrado,Circulo e Cilindro de forma a permitir comparar dois objetos de cada uma delas.
Tarefa 12: Como saber se as variveis de referncia p1, p2 e p3 so do Quadrado, Cilindro e Circulo respectivamente.
|| (1 _________ Qaacracc) >,stem.cat.r|at|a(1.etC|ass().et>|m|eHame()' e am Qaacracc.'),
|| (2 _________ C|rca|c) >,stem.cat.r|at|a(2.etC|ass().et>|m|eHame()' e am C|rca|c.'),
|| (3 _________ C|||acrc) >,stem.cat.r|at|a(3.etC|ass().et>|m|eHame()' e am C|||acrc.'),
!are|a 13. 0 trec|c ce ccc|c aca|\c ccatem am errc, c|s tccas as |astac|as sc cc t|c |catc, mas c metccc .c|ame() sc esta ce||a|cc aa c|asse C|||acrc, ccrr|a-c.
|catc |] ||aras = aew Qaacracc(10,10,5), aew C|rca|c(10,10,5), aew C|||acrc(10,10,5,), for (Ponto figura : figuras) { System.!"#.println(figura.area()); System.!"#.println (figura.volume()); }