Galera dou novo em java e estou com muita dificuldade nesse exercício, se alguém puder me ajudar?

“Em astronomia, corpo celeste designa qualquer entidade física existente no espaço sideral. Podendo referir-se a um único objeto como a Lua, o Sol, ou um asteroide, como também a vários objetos que se mantêm unidos por forças gravitacionais, como galáxias, estrelas duplas, ou o sistema solar.[…]Os cometas são considerados corpos celestes que possuem um tamanho pequeno e realizam deslocamento em torno do Sol, sendo que tal movimento é desenvolvido de forma irregular quanto ao seu contorno. Os cometas são formados basicamente por gelo e rochas.As estrelas são corpos celestes que possuem uma característica particular: são bastante reluzentes, com tal luminosidade provida do próprio astro. O conjunto de várias estrelas é chamado de constelação, assim, podemos destacar as zodiacais: Áries, Touro, Gêmeos, Câncer, Leão, Virgem, Libra, Escorpião, Sagitário, Capricórnio, Aquário e Peixes.

Crie uma classe abstrata chamada CorpoCeleste. Essa classe deve possuir um método chamado descrever para descrever as características físicas do corpo celeste com base nas suas informações internas.Crie classes especializadas para representar as características de cada tipo de corpo celeste: uma para as estrelas, uma para planetas e uma para cometas.Cada classe especializada deve implementar as características do tipo de corpo celeste, bem como implementar o método descrever que foi herdado da superclasse CorpoCeleste. Características que devem ser manipuladas nas
•Cometa: massa e velocidade;
•Estrela: massa e tipo (tipo segundo a classificação astronômica);e
•Planeta: massa,raio,gravidade na superfície e estrela na qual orbita.

Como você construiria o seu código a partir dessas informações?

Faça um esboço do seu código, se quiser, utilize da linguagem humana mesmo (raciocínio lógico).

Depois poste o seu esboço aqui para avaliarmos e te ajudar a raciocinar.

Eu sei que colocar na cabeça a ideia de classes, objetos, parâmetros não é simples as vezes.

1 curtida

public abstract class CorpoCeleste {

public abstract double getDescrever();

}
public class Estrelas {

public static void main(String[] args) {
	
	

}

}

public class Planetas {

public static void main(String[] args) {
	// TODO Auto-generated method stub

}

}

public class Cometas {

public static void main(String[] args) {
	double massa = 0;
	double velocidade = 135;
	
	

}

}

Bom, pelo que pude observar você vai muito bem em Java e no entendimento de POO.

Qual o problema encontrado agora para finalizar?

estou com dificuldades para entender a atividade que descrevi acima. não estou conseguindo desenvolver. não sei como prosseguir no programa

Essa atividade tem um texto grandioso. Mas a tarefa me parece pequena.
Falta voce criar os demais atributos das classes especializadas. Voce so fez isso em “cometas”.
Mas tambem precisa de pesquisa para saber o que deve preencher aqui quando instanciar o objeto planeta.
Porque todas as classes tem um metodo main? Acho que so deve deixar um metodo main, uma classe abstrata e suas 3 especializacoes.

eu ja tentei, mas não estou compreendendo o problema. alguém poderia me ajudar ao menos no começo para entender

Abaixo vou deixar como eu criaria as classes e como eu implementaria o método descrever da classe CorpoCeleste. Talvez isso ajude você a começar.
Caso deseje, pode implementar as variáveis das classes especializadas com Get e SET

//_____ABAIXO A CLASSE CORPO CELESTE

public abstract class CorpoCeleste {

public void descrever(double massa, double velocidade, String tipo, double raio, double gravidade, String estrelaOrbitada) {
    StringBuilder descricao = new StringBuilder();

    descricao.append("Massa=" + massa);
    descricao.append("\n");
    descricao.append("Velocidade=" + velocidade);
    descricao.append("\n");
    descricao.append("Tipo=" + tipo);
    descricao.append("\n");
    descricao.append("Raio=" + raio);
    descricao.append("\n");
    descricao.append("Gravidade=" + gravidade);
    descricao.append("\n");
    descricao.append("Estrela Orbitada=" + estrelaOrbitada);

    System.out.println(descricao.toString());
}

}

//_______ABAIXO A CLASSE COMETA

public class Cometa extends CorpoCeleste {

double massa, velocidade;

public Cometa(double massa, double velocidade) {
    this.massa = massa;
    this.velocidade = velocidade;
    //METODO HERDADO DA CLASSE CORPO CELESTE
    descrever(massa, velocidade, "null", 0.0, 0.0, "null");
}

}

//_______ABAIXO A CLASSE ESTRELA

public class Estrela extends CorpoCeleste {

double massa;
String tipo;

public Estrela(double massa, String tipo) {
    this.massa = massa;
    this.tipo = tipo;
    //METODO HERDADO DA CLASSE CORPO CELESTE
    descrever(massa, 0.0, tipo, 0.0, 0.0, "null");
}

}
//_______ABAIXO A CLASSE PLANETA

public class Planeta extends CorpoCeleste {

double massa, raio, gravidade;
String estrelaOrbitada;

public Planeta(double massa, double raio, double gravidade, String estrelaOrbitada) {
    this.massa = massa;
    this.raio = raio;
    this.gravidade = gravidade;
    this.estrelaOrbitada = estrelaOrbitada;

    //METODO HERDADO DA CLASSE CORPO CELESTE
    descrever(massa, 0.0, "null", raio, gravidade, estrelaOrbitada);
}

}

//  Crie uma classe abstrata chamada CorpoCeleste
public abstract class CorpoCeleste { // OK, perfeito

    // Essa classe deve possuir um método chamado descrever para descrever as características físicas do corpo celeste com base nas suas informações internas
    public abstract double getDescrever(); // Porque esse método tem prefixo get e porque ele retorna double?

}
  • Comece criando uma classe abstrata chamada CorpoCeleste com um método abstrato descrever();
  • Crie uma classe concreta chamada Cometa estendendo a classe CorpoCeleste e defina os atributos massa e velocidade;
  • Crie uma classe concreta chamada Estrela estendendo a classe CorpoCeleste e defina os atributos massa e tipo;
  • Crie uma classe concreta chamada Planeta estendendo a classe CorpoCeleste e defina os atributos massa, raio, gravidade e estrela.
1 curtida