/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

ARRAYLIST

 
      Índice del Foro elrincondelc.com -> Java
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
LUCAS_S



Registrado: 05 Abr 2005
Mensajes: 68

MensajePublicado: 07/09/2005 9:58 pm
Título: ARRAYLIST

hola,,, bueno tengo un problema con el arraylist, resulta que lo creo y lo cargo con un objeto, pero al cargarlo mas d una vez, mantiene en todas las posiciones el mismo dato....
este es mi codigo:
Código:

public class Puerto {
   private ArrayList barcos;

   Puerto(){
      this.barcos=new ArrayList();
   };
   public void Agregar(Barco b){
      this.barcos.add(this.barcos.size(),b);
   };
};
//donde barco:
public class Barco extends Puerto{
   protected static int velocidad,carga,tipo;
   protected static String capitan;
   
   Barco(int tipo,String cap){
      switch (tipo){
      case 1:Barco.velocidad=20;Barco.carga=3000;
      case 2:Barco.velocidad=10;Barco.carga=5000;
      case 3:Barco.velocidad=25;Barco.carga=2000;
      };
      Barco.capitan=cap;
   };
};


bueno espero que se entienda, lo repito por las dudas: el asunto es que cargo un barco de tipo 1 y luego otro de tipo 2, y cuando muesto el arraylist son los 2 de tipo 2.

muchas gracias
salu2
Volver arriba
silverfox



Registrado: 04 Jul 2005
Mensajes: 81

MensajePublicado: 13/09/2005 5:51 am
Título:

Creo que tu problema está en la declaración de variables (no lo he mirado mucho, pero creo que es precisamente ese...)

En Java, una variable o método definida como static tiene un tratamiento especial:
En primer lugar, un método estático puede ser invocado sin necesidad de tener una instancia del objeto, símplemente, se usa el nombre de la clase. Hay muchos ejemplos de esto en la clase Math.

O sea, si tengo una clase ClassA con un método estático metodo() no haré:

ClassA miclase = new ClassA();
miclase.metodo();

Sino:

ClassA.metodo()

Las variables static también se usan así, por lo tanto, si tengo dentro de ClassA una variable var puedo acceder a ella con ClassA.var (siempre que pueda verla, esto es, que no sea privada para la clase que quiere usarla.
Más aún, dado que estas variables siempre están definidas, sin necesidad de que exista una instancia de la clase, son, por lo tanto, compartidas por todas las instancias de la clase: Es decir, sólo hay una variable para todas las clases. En tu caso, sólo existe una variable velocidad, solo nua variable carga, solo una variable tipo y solo una variable capitán.

Simplemente, prueba a quitar el static y recompila el programa.

Suerte

Silverfox
Volver arriba
      Índice del Foro elrincondelc.com -> Java
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com