| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
LUCAS_S
Registrado: 05 Abr 2005 Mensajes: 68
| Publicado: 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
| Publicado: 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 | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |