O programa deve ser capaz de calcular perímetro, área e volume, conforme a característica descrita nas regras acima.Para implementar essa solução, deve-se utilizar interfaces e classes da seguinte forma: as características do plano-bidimensional e do espaço-tridimensional devem ser modeladas como interfaces. As figuras devem ser modeladas como classes que implementam a respectiva interface.
Obs.: não é necessário implementar o programa principal para fazer os cálculos, basta que as interfaces e as classes sejam implementadas sintática e semanticamente corretas.
eu já fiz isso não sei se está certo
public interface Área {
public double calculaArea();
}
public interface Unidade {
public void setUnidade();
}
Classe Bidimensional que implementa Unidade
public class Bidimensional implements Unidade {
private String unidade;
@Override
public void setUnidade() {
this.unidade="m²";
}
public String getUnidade(){
return this.unidade;
}
}
classes Calculáveis que extendem Bidimensionais pegando sua unidade de medida, implementando a interface área;
public class Quadrado extends Bidimensional implements Área {
private double lado;
private double area;
// Construtor padrão da classe recebendo medida
public Quadrado (double lado){
this.setUnidade();
System.out.println("Unidade de medida do Quadrado "+ this.getUnidaed());
this.lado = lado;
}
// Implementação da interface Área
@Override
public double calculaArea() {
return this.area = this.lado * this.lado;
}
// Override na toString para exibição dos componentes apenas pelos nomes de instancia
@Override
public String toString(){
return "Área do quadrado calculado é = "+this.area;
}
}
public class Retangulo extends Bidimensional implements Área {
private double base;
private double altura;
private double area;
// Construtor padrão da classe recebendo medida
public Retangulo(double base, double altura) {
this.setUnidade();
System.out.println("Unidade de medida do Retangulo "
+ this.getUnidaed());
this.base = base;
this.altura = altura;
}
// Implementação da interface Área
@Override
public double calculaArea() {
return this.area = this.base * this.altura;
}
// Override na toString para exibição dos componentes apenas pelos nomes de instancia
@Override
public String toString() {
return "Área do retangulo calculado é = " + this.area;
}
}
public class Triangulo extends Bidimensional implements Área {
private double base;
private double altura;
private double area;
// Construtor padrão da classe recebendo medida
public Triangulo(double base, double altura) {
this.setUnidade();
System.out.println("Unidade de medida do Triangulo "
+ this.getUnidaed());
this.base = base;
this.altura = altura;
}
// Implementação da interface Área
@Override
public double calculaArea() {
return this.area = (this.base * this.altura) / 2;
}
// Override na toString para exibição dos componentes apenas pelos nomes de instancia
@Override
public String toString() {
return "Área do triangulo calculado é = " + this.area;
}
}
Teste de calculos de área
public class CalculaArea {
public static void main(String[] args) {
Área quadrado = new Quadrado(2);
quadrado.calculaArea();
System.out.println(quadrado);
Área retangulo = new Retangulo(2,3);
retangulo.calculaArea();
System.out.println(retangulo);
Área triangulo = new Triangulo(10, 5);
triangulo.calculaArea();
System.out.println(triangulo);
}
}