Ayuda con esto

Iniciado por monsefoster, 24 Enero 2010, 06:30 AM

0 Miembros y 1 Visitante están viendo este tema.

monsefoster

Hola chicos, me he perdido la practica de esta semana...

Me la enviaron y la realizé, solo que no se si esta como debe ser y alli si necesito ayuda...

La practica es la siguiente:

•   Definir una clase abstracta llamada Círculo con un atributo privado llamado radio, definir  el constructor y los métodos abstractos mostrar  y volumen el cual retornara un tipo double.
•   Definir una clase llamada Cilindro con un atributo privado llamado altura (double) y los métodos correspondientes.
•   Definir una clase llamada Esfera y los métodos correspondientes.
•   Tanto la clase Cilindro como la clase Esfera deben controlar la cantidad de objetos creados en cada una de esas clases.
Fuera del paquete Practica crear la clase principal con el método main( ), en el cual definirá variables del tipo Circulo que  referenciarán  objetos del tipo Cilindro y Esfera
Una vez creados los objetos mostrar la cantidad de objetos de cada tipo creado y sus atributos, posteriormente eliminar un objeto del tipo que sea y seguido mostrar la cantidad de objetos de ese tipo que quedan.


Lo que hice fue:

Código (java) [Seleccionar]
import practica.*;
public class principal {

/**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args) {
int x;
Circulo c[]= new Circulo [10];
c[0]=new Cilindro (3.4,3);
c[1]=new Esfera (7.36);
c[2]=new Cilindro (5.25,3);
c[3]=new Esfera (6);
c[4]=new Cilindro (4,5);
c[5]=new Esfera (2.5);
c[6]=new Cilindro (2,10);
c[7]=new Esfera (27);
c[8]=new Cilindro (10,2);
c[9]=new Esfera (4);
System.out.println ("Cantidad de Cilindros: "+Cilindro.cilt());
System.out.println ("Cantidad de Esferas: "+Esfera.cesft());

for (x=0;x<c.length;x++){
c[x].mostrar();
System.out.println ("Volumen: "+c[x].volumen());

}
c[3]=null;
System.gc();
System.out.println ("Cantidad de Esferas Restantes: "+Esfera.cesft());

}
}


Código (java) [Seleccionar]

package practica;


public abstract class Circulo {
private double radio;

public Circulo (double r){
radio=r;
}

public abstract void mostrar();


public abstract double volumen ();

public double mradio (){
return radio;
}
}

Código (java) [Seleccionar]


package practica;

public class Cilindro extends Circulo {
private double altura;
private static int cil=0;

public Cilindro (double r, double h){
super (r);
altura=h;
cil++;
}
public void mostrar (){
System.out.println ("Radio: "+mradio());;
}
public double volumen(){
double vc;
vc=3.1416*Math.pow(mradio(),2)*altura;
return vc;
}
public static int cilt (){
return cil;
}

}


Código (java) [Seleccionar]

package practica;


public class Esfera extends Circulo{
private static int cesf=0;
public Esfera (double r){
super(r);
cesf++;
}

public void mostrar(){
System.out.println ("Radio: "+mradio());
}
public double volumen (){
double ve;
ve=4*3.1416*Math.pow(mradio(),3);
return ve;
}
public static int cesft(){
return cesf;
}
protected void finalize (){
System.out.println ("Se elimino una esfera");


Si alguien pudiera decirme que tengo malo, y ayudarme a arreglarlo, seria genial  :D

Casidiablo

Muy bien por usar el resaltador de código... solo trata de usar uno por cada archivo. Por otra parte... ¿te aparece algún error o algo? Es que preguntas sobre lo que tienes mal pero no dices cuales son tus problemas.

Un saludo!

monsefoster

#2
Hola, No tengo ningun error... pero usualmente tengo algo que no deberia hacer...
So, mi pregunta es si todo esta como debe ser?

La otra vez tenia lo de la herencia malo...  :huh: y aun asi, los resultados me daban  :-\

monsefoster