Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNESP/FEG/DMA Programação de Computadores II - Prof. Senne Aula de Laboratório 4.2 ATENÇÃO: Não esquecer de incluir os nomes dos alunos da turma em cada classe. Atividade 1. Considere a seguinte hierarquia de classes: Quadrilatero − Ponto A, B, C, D + Quadrilatero(Ponto a, Ponto b, Ponto c, Ponto d) . . . + double calcularPerimetro() + final boolean umRetangulo() + final boolean umQuadrado() + final String mostrarFigura() Retangulo − Ponto A, B, C, D + Retangulo(Ponto a, Ponto b, Ponto c, Ponto d) + double calcularDiagonal() + double calcularArea() Quadrado − Ponto A, B, C, D + Quadrado(Ponto a, Ponto b, Ponto c, Ponto d) + Ponto centro() onde Ponto é a classe: Ponto − double X, Y + Ponto(double x, double y) . . . + double distancia(Ponto p) + String mostrarPonto() Para a codificação dessas classes, observar os seguintes pontos: – As reticências (. . .) representam os getters e setters da classe. – Somente os getters e setters podem acessar diretamente os campos da classe. – Nenhum outro método deve ser incluído nas classes, além dos getters e setters nas classes Quadrilatero e Ponto. – Os campos privados da classe Quadrilatero representam os 4 pontos que definem um quadrilátero A-B-C-D, ou seja, o quadrilátero é formado pelos segmentos de reta AB, BC, CD e DA. – O método mostrarFigura() deve retornar um string da forma: Figura: (A.X; A.Y) (B.X; B.Y) (C.X; C.Y) (D.X; D.Y) é um xxxxxx 2 onde xxxxxx deve ser "Quadrilatero", "Retangulo" ou "Quadrado". – O construtor da classe Retangulo deve assegurar que seus parâmetros realmente formem um retângulo. Caso contrário, deve construir um retângulo com vértices 0-0-0-0. – O construtor da classe Quadrado deve assegurar que seus parâmetros realmente formem um quadrado. Caso contrário, deve construir um quadrado com vértices 0-0-0-0. – O método centro() deve retornar o ponto que representa o centro do quadrado. – O método distancia(Ponto p) deve retornar o valor de: Math.hypot(getX()-p.getX(),getY()-p.getY()) Atividade 2. Construir a seguinte classe executável Lab42 para verificar se a saída corresponde à mostrada abaixo: Lab42.java public class Lab42 { public static void main(String[] args) { Ponto A = new Ponto(1,11); Ponto B = new Ponto(7,9); Ponto C = new Ponto(4,4); Ponto D = new Ponto(1,4); Quadrilatero q = new Quadrilatero(A,B,C,D); System.out.println(q.mostrarFigura()); System.out.printf("Perimetro = %.2f\n",q.calcularPerimetro()); Ponto E = new Ponto(1,7); Ponto F = new Ponto(4,7); Quadrado s = new Quadrado(E,F,C,D); System.out.println(s.mostrarFigura()); System.out.printf("Centro = %s\n",s.centro().mostrarPonto()); if (s.umRetangulo()) { Retangulo r = s; System.out.println(r.mostrarFigura()); System.out.printf("Diagonal = %.2f\n",r.calcularDiagonal()); System.out.printf("Area = %.2f\n",r.calcularArea()); } } } Saída: Figura: (1,0; 11,0) (7,0; 9,0) (4,0; 4,0) (1,0; 4,0) é um Quadrilatero Perimetro = 22.16 Figura: (1,0; 7,0) (4,0; 7,0) (4,0; 4,0) (1,0; 4,0) é um Quadrado Centro = (1,5; 1,5) Figura: (1,0; 7,0) (4,0; 7,0) (4,0; 4,0) (1,0; 4,0) é um Quadrado Diagonal = 4.24 Area = 9.00
Compartilhar