Java - OBJETOS EN JAVA (EJERCICIO SIST.PLANETARIO)

 
Vista:

OBJETOS EN JAVA (EJERCICIO SIST.PLANETARIO)

Publicado por minaya (2 intervenciones) el 27/04/2011 12:02:40
Hola programadores de JAVA... estoy que me vuelvo loco intentando resolver el siguiente apartado:

Desarrolle una clase en Java que realice la abstracción de un sistema planetario, debiendo tener en cuenta para cada cuerpo del sistema aspectos como: masa, densidad, diámetro, distancia al sol (suponga órbitas circulares), un número de identificador único y un nombre textual. Incluya métodos que calculen la atracción gravitatoria entre dos cuerpos cualesquiera del sistema.

public class SistemaPlanetario {

int pk;
String nombrePlaneta;
static int masa;
int densidad;
int diametro;
int distancia;
private int getMasa;
static int F;
int masa2 = pk+1;

private final static double obtenerAtraccionGravitatoria = F;

public int getPk(){

switch (pk)
{
case 1: pk = 1;
System.out.println("Mercurio");
break;
case 2: pk = 2;
System.out.println("Venus");
break;
case 3: pk = 3;
System.out.println("Tierra");
break;
case 4: pk = 4;
System.out.println("Marte");
break;
case 5: pk = 5;
System.out.println("Jupiter");
break;
case 6: pk = 6;
System.out.println("Saturno");
break;
case 7: pk = 7;
System.out.println("Urano");
break;
case 8: pk = 8;
System.out.println("Neptuno");
break;
}

return pk;

}
public void setPk(int pk) {

this.pk = pk;

}
public String getNombrePlaneta() {

return nombrePlaneta;
}

public void setNombrePlaneta(String nombrePlantea) {
}

public int getMasa() {
return masa;
}

public int setMasa(int masa) {

return SistemaPlanetario.masa;
}

public int getDensidad() {
return densidad;
}

public double setDensidad(double d) {
return this.densidad = (int) d;
}

public int getDiametro() {
return diametro;
}

public void setDiametro(int diametro) {
this.diametro = diametro;
}

private double F(int pk2) {
// TODO Auto-generated method stub
masa2 = pk + 1;
return this.F(masa2);
}

public double obtenerAtracionGravitatoria () {
for (pk=1;pk<9;pk++)
{
this.setGetMasa(masa);
int aux;
int r = diametro%2;
aux=(int) (masa*masa2*0.0000000000667);
r=(int) Math.pow(masa,2);
F=aux/r;
}
System.out.println("La fuerza de atracción gravitacional es: "+F);
return this.F(pk);
}
public void setGetMasa(int getMasa) {
this.getMasa = getMasa;
}

public int getGetMasa() {
return getMasa;
}

public static double getObteneratracciongravitatoria() {

return obtenerAtraccionGravitatoria;
}

public static void main(String[] args) {
SistemaPlanetario mercurio = new SistemaPlanetario();
mercurio.setPk(1);
mercurio.setNombrePlaneta("Mercurio");
mercurio.setDensidad(5.43);

System.out.println(mercurio.obtenerAtracionGravitatoria());

SistemaPlanetario venus = new SistemaPlanetario();
venus.setPk(2);
venus.setNombrePlaneta("Venus");
venus.setDensidad(5.24);

System.out.println(venus.obtenerAtracionGravitatoria());

SistemaPlanetario tierra = new SistemaPlanetario();
tierra.setPk(3);
tierra.setNombrePlaneta("Tierra");
tierra.setDensidad(5.5);

System.out.println(tierra.obtenerAtracionGravitatoria());

SistemaPlanetario marte = new SistemaPlanetario();
marte.setPk(4);
marte.setNombrePlaneta("Marte");
marte.setDensidad(3.9);

System.out.println(marte.obtenerAtracionGravitatoria());

SistemaPlanetario jupiter = new SistemaPlanetario();
jupiter.setPk(5);
jupiter.setNombrePlaneta("Jupiter");
jupiter.setDensidad(1.3);

System.out.println(jupiter.obtenerAtracionGravitatoria());

SistemaPlanetario saturno = new SistemaPlanetario();
saturno.setPk(6);
saturno.setNombrePlaneta("Saturno");
saturno.setDensidad(1.5);

System.out.println(saturno.obtenerAtracionGravitatoria());

SistemaPlanetario urano = new SistemaPlanetario();
urano.setPk(7);
urano.setNombrePlaneta("Urano");
urano.setDensidad(2.4);

System.out.println(urano.obtenerAtracionGravitatoria());

SistemaPlanetario neptuno = new SistemaPlanetario();
neptuno.setPk(8);
neptuno.setNombrePlaneta("Neptuno");
neptuno.setDensidad(2.1);

System.out.println(neptuno.obtenerAtracionGravitatoria());

}

}

y los errores que me da la plataforma que estoy usando de la que no estoy experimentado es eclipse version galileo.

Exception in thread "main" java.lang.ArithmeticException: / by zero
at Ejercicio31.SistemaPlanetario.obtenerAtracionGravitatoria(SistemaPlanetario.java:103)
at Ejercicio31.SistemaPlanetario.main(SistemaPlanetario.java:127)

Espero que alguien pueda solucionarmelo a corto plazo porque me estoy volviendo loco!! y seguro que es una tontería.

Gracias anticipadas, un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

OBJETOS EN JAVA (EJERCICIO SIST.PLANETARIO)

Publicado por Tom (1831 intervenciones) el 27/04/2011 16:25:10
Tienes una excepción "Divide by zero", que traducido es "división por cero" (astuto ¿eh?) y solamente hay una operación de división por una variable en tu código.

Resulta obvio que en esa operación, la variable masa es 0, y resulta evidente que no la has inicializado ni calculado para ninguno de los planetas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

OBJETOS EN JAVA (EJERCICIO SIST.PLANETARIO)

Publicado por minaya (2 intervenciones) el 28/04/2011 09:58:04
me imaginaba que era algo de la masa porque al inicializar el debug con un toogle antes de obtener la masa y setMasa, el caso es que no consigo descifrarlo,de todas formas no e lanzado ninguna exception, lo único que dividido es la fuerza ya que tengo que resolver la formula para obtener la atraccion gravitatoria de cada planeta segun la densidad y masa de cada uno.

Si me podeis echar una mano en esa línea de código te lo agradecería.

Un saludo y gracias por tu contestacion Tom.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar