Para esta Atividade 01, você irá desenvolver um programa na linguagem JAVA, utilizando a IDE NetBeans, para calcular a área de diferentes formas geométricas, como por exemplo: retângulo e triângulo. 1 - Crie uma classe abstrata denominada de "Poligono", 1.1 - Nesta classe, deverá ter um atributo para guardar a quantidade de lados e, um método para imprimir a quantidade de lados da forma. 1.2 - Na sequência, ainda dentro da classe Poligono, você deverá criar um método abstrato para calcular a área. 2 - Crie as subclasses Triangulo e Retangulo, 2.1 - Em ambas as classes, implemente o método de calcular a área de acordo com a forma. 2.2 - Em ambas as classes, devem ter atributos para o cálculo da área (como medida do lado ou altura). Deve haver uma forma de definir esses atributos, usando a classe Scanner. 2.3 - Ainda nas subclasses, implemente o método imprimir, neste deverá ser impresso qual é a forma, a quantidade de lados, o seu respectivo tamanho, bem como o resultado do cálculo da área. 3 - Crie uma classe Principal para gerenciar a interação.
Soluções para a tarefa
Resposta:
package geometria;
public abstract class Poligono {
private int lados;
private double area;
public Poligono() {
this(0);
}
public Poligono(int lados) {
this.lados = lados;
this.area = 0.0;
}
public int getLados() {
return lados;
}
public void setLados(int lados) {
this.lados = lados;
}
public double getArea() {
return area;
}
public void setArea(double area) {
this.area = area;
}
public abstract void relatorio();
public abstract void calcularArea();
}
package geometria;
public class Retangulo extends Poligono {
private double largura;
private double altura;
public Retangulo() {
this(0.0, 0.0);
}
public Retangulo(double largura, double altura) {
super(4);
this.largura = largura;
this.altura = altura;
}
public double getLargura() {
return largura;
}
public void setLargura(double largura) {
this.largura = largura;
}
public double getAltura() {
return altura;
}
public void setAltura(double altura) {
this.altura = altura;
}
@Override
public void relatorio() {
System.out.println("Forma: retângulo \n" +
"Quantidade de lados: " + super.getLados() + "\n" +
"Largura: " + this.getLargura() + "\n" +
" Altura: " + this.getAltura() + "\n" +
" Area: " + super.getArea());
}
@Override
public void calcularArea() {
super.setArea(largura * altura);
}
}
package geometria;
public class Triangulo extends Poligono {
private double base;
private double altura;
public Triangulo() {
this(0.0, 0.0);
}
public Triangulo(double base, double altura) {
super(3);
this.base = base;
this.altura = altura;
}
public double getBase() {
return base;
}
public void setBase(double base) {
this.base = base;
}
public double getAltura() {
return altura;
}
public void setAltura(double altura) {
this.altura = altura;
}
@Override
public void relatorio() {
System.out.println("Forma: triângulo \n" +
"Quantidade de lados " + super.getLados() + "\n" +
" Base: " + this.getBase() + "\n" +
"Altura: " + this.getAltura() + "\n" +
" Area: " + super.getArea());
}
@Override
public void calcularArea() {
super.setArea(base * altura / 2);
}
}
package geometria;
import java.util.Scanner;
public class Principal {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int lados;
do {
System.out.print("Digite o número de lados do polígono ou zero para encerrar: ");
lados = teclado.nextInt();
teclado.nextLine();
if (lados == 0) {
System.out.println("Aplicação encerrada!");
} else if (lados == 3) {
Triangulo t = new Triangulo();
System.out.print(" Digite a base: ");
t.setBase(teclado.nextDouble());
System.out.print("Digite a altura: ");
t.setAltura(teclado.nextDouble());
t.calcularArea();
t.relatorio();
} else if (lados == 4) {
Retangulo r = new Retangulo();
System.out.print("Digite a largura: ");
r.setLargura(teclado.nextDouble());
System.out.print(" Digite a altura: ");
r.setAltura(teclado.nextDouble());
r.calcularArea();
r.relatorio();
} else {
System.out.println("Quantidade de lados inválida!");
}
} while (lados != 0);
System.exit(0);
}
}
Explicação:
public abstract class Poligono {
private int lados;
private double area;
public Poligono() {
this(0);
}
public Poligono(int lados) {
this.lados = lados;
this.area = 0.0;
}
public int getLados() {
return lados;
}
public void setLados(int lados) {
this.lados = lados;
}
public double getArea() {
return area;
}
public void setArea(double area) {
this.area = area;
}
public abstract void relatorio();
public abstract void calcularArea();
}