Exercicio java

Alguem consegue me ajuda neste exercicio , pois fiz tds os outros e neste aqui parei e nao vai , sou novo em programação.

Implemente uma hierarquia de formas geométricas. O programa deve subdividir as formas como se segue:

  1. Forma

  2. FormaBidimensional

  3. Circulo

  4. Quadrado

  5. Triangulo

  6. FormaTridimensiona

  7. Esfera

  8. Cubo

  9. Tetraedro

Cada forma bidimensional deve conter o método obterArea(), e cada forma tridimensional deve conter o método obterArea() e obterVolume(). Todas as instâncias de algum tipo de forma devem possuir um nome, e suas medidas. As formulas de cálculo devem ser especificas para cada tipo de forma. Crie um programa que permite criação dos vários tipos de forma, edição pelo nome, exibição das propriedades da forma e execução de seus cálculos de área e volume, exibição das propriedades de uma forma específica pesquisada pelo nome. Deve-se desenvolver o projeto utilizando polimorfismo da melhor maneira possível.

O que você já fez?

eu fiz os bi dimensionais mais nao sei como faço pra fazer a parte de hierarquia nem os tridimensionais ,
sou bem cabaço em programação :frowning:
public class Quadrado extends Figura{

private double lado;

public Quadrado(double lado){
this.setLado(lado);
}

public double calculaArea(){
return this.getLado() * this.getLado();
}

public double calculaPerimetro(){
return 4 * this.getLado();
}

public double getLado(){
return lado;
}

public void setLado(double lado){
this.lado = lado;
}

}

public class Triangulo extends Figura{

private double lado1;
private double lado2;
private double base;
private double altura;

public Triangulo(double base, double altura, double lado1, double lado2){
this.setLado1(lado1);
this.setBase(base);
this.setLado2(lado2);
this.setAltura(altura);
}

public double calculaArea(){
return (this.getBase() * this.getAltura())/2;
}

public double calculaPerimetro(){
return this.getLado1() + this.getLado2() + this.getBase();
}

public double getLado2(){
return lado2;
}

public void setLado2(double lado2){
this.lado2 = lado2;
}

public double getBase(){
return base;
}

public void setBase(double base){
this.base = base;
}

double getAltura() {
return altura;
}

public void setAltura(double altura){
this.altura = altura;
}

public double getLado1(){
return lado1;
}

public void setLado1(double lado){
this.lado1 = lado;
}

}

public class Circulo extends Figura{

private double raio;

public Circulo(double raio){
this.setRaio(raio);
}

public double calculaArea(){
return Math.PI * (this.getRaio() * this.getRaio());
}

public double calculaPerimetro(){
return 2 * Math.PI * this.getRaio();
}

public double getRaio(){
return raio;
}

public void setRaio(double raio){
this.raio = raio;
}

}

Quando for postar código, cola ele na caixa de texto, seleciona e clica no botão </> que ele vai formatar o código e dar destaque a palavras reservadas.
Pois bem, você entende o que é herança? Se não, volte alguns passos, estude isso e então tente resolver essa parte.

sim sei oq é heranca , para sobrepor as classes.

1 curtida

Se sabe o que é herança, entende que a ideia de colocar os elementos em uma estrutura hierárquica vai utilizar herança, não?

a parte de metodos eu ate sei fazer darlan , oq me deixou na duvida foi essa questao de calculos tridimensionais meu professor me deu exemplos com animais.

Cara, isso é matemática básica, matéria de ensino médio, Provavelmente foi esta a razão que o teu professor ignorou. É você que precisa saber e se não sabe, precisa se coçar para aprender.

sim

cara se vai me jaudar o vai ficar nessa, se for pra me dizer pra se coçar ne perca seu tempo aqui , pois isso so me traz mais dificuldade.

Coloque suas dúvidas/problemas sobre codificação java ou algo relacionado a isso e eu ajudo.
Matemática básica e outros aspectos, é contigo.

Mano, o cara já está tirando tempo do dia dele pra lhe AJUDAR. Veja, ajudar não é fazer por você. Estude o cálculo de área das formas bi e tridimensionais, tente implementá-las em código Java e depois volte aqui com dúvidas, é assim que se busca ajuda. Na dúvida leia um artigo que eu sempre gosto de recomendar pra quem está começando: https://area31.net.br/wiki/Como_fazer_perguntas_inteligentes

Respira, tenha calma, sei que o professor da facul pressiona pra entregar, mas sim, cálculo de área de formas geométricas é matemática de segundo grau. Dá uma estudada na net que tem bastante material e depois volta aí com as dúvidas.

Abraços e bons estudos :wink:

1 curtida

Creio que a seguinte hierarquia é a mais simples de se implementar:

                                 Forma
                                   |
              +--------------------+------------------+
              |                                       |
       FormaBidimensional                    FormaTridimensional
              |                                       |
   +----------+-----------+                 +---------+---------+
   |          |           |                 |         |         |
Circulo    Quadrado    Triangulo          Esfera     Cubo    Tetraedro

Na classe FormaBidimensional você vai declarar um método abstrato chamado obterArea() e vai implementar ele nas subclasses Circulo, Quadrado e Triangulo.

Na classe FormaTridimensional você vai declarar um método abstrato chamado obterVolume() e vai implementar ele nas subclasses Esfera, Cubo e Tetraedro.

Os links acima possuem as fórmulas geométricas. :wink:

3 curtidas

Opa , vlw pela ajuda com este diagrama ficou bem mais claro agora
obgdo.

1 curtida

MDs q exercicio :cold_face::sob::scream:

na verdade herança é herdar algo genérico e criar a partir deste algo mais específico

Quando terminar ele, poste. Gostaria de ver o resultado.

1 curtida

O conceito de herança passa por isso.
Mas, ele deve ser utilizado para identificar características (seus atributos) comuns a N grupos de objetos (que serão representados pelas respectivas classes), bem como suas funcionalidades (também conhecidas como métodos).
A ideia principal é permitir um melhor aproveitamento de recursos, evitando a duplicidade (ou repetição de mesmas estruturas de código em várias partes do sistema) o que torna a manutenção custosa e o código confuso.
Porém, temos que lembrar que qualquer linguagem orientada a objetos prevê que se preze pela implementação de comportamentos a estender classes concretas.
Ou seja, é melhor você definir interfaces que vão estabelecer quais são os comportamentos esperados do que usar uma estrutura muito rígida de herança.

2 curtidas

Comecei a brincar com esse exercício. Achei interessante. Tá lá no meu GitHub, só falta esses dois itens que me deu preguiça de fazer huehuehue:

Edit: eu fiz e tá lá completão. :slight_smile:

achou dificil?

É um exercício simples, só requer que você saiba o que tá aplicando.