Boa noite, estou aprendendo java agora, estou com dificuldades para fazer o seguinte programa:

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.