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.
Se alguém puder ajudar, agradeço.
Piá, poste o que já codificou. A ajuda terá como ponto de partida o seu código, a partir da parte que tu ‘empacou’.
1 curtida
Interfaces:
public interface Area {
public double calculaArea();
}
public interface Unidade {
public void setUnidade();
}
Classes:
public class Bidimensional implements Unidade {
private String unidade;
@Override
public void setUnidade() {
this.unidade="m²";
}
public String getUnidade(){
return this.unidade;
}
}
public class Quadrado extends Bidimensional implements Area {
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.getUnidade());
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 Area {
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.getUnidade());
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 Area{
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.getUnidade());
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;
}
}
Postei o código acima, porém não é desta maneira que o problema pede. Preciso fazer 2 interfaces, 1 Bidimensional e 1 Tridimensional e a partir disso implementar nas classes.