Informática, perguntado por Usuário anônimo, 8 meses atrás

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 Retângulo,
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

Respondido por ricardopmat
2

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:


Usuário anônimo: Enunciado manda ter apenas um Atributo para guardar a quantidade de lados
Usuário anônimo: Vc criou um metado para calcular área e um atributo área ?
Perguntas interessantes