Foros del Web » Programación para mayores de 30 ;) » Java »

AYUDA con vectores[]

Estas en el tema de AYUDA con vectores[] en el foro de Java en Foros del Web. amigos fijense trato de declarar un vector de tipo objeto supongamos tengo una clase llamada MiClase y creo un objeto llamado objMiClase pero ademas de ...
  #1 (permalink)  
Antiguo 13/05/2006, 14:54
 
Fecha de Ingreso: abril-2006
Mensajes: 72
Antigüedad: 18 años
Puntos: 0
AYUDA con vectores[]

amigos fijense trato de declarar un vector de tipo objeto supongamos tengo una clase llamada MiClase y creo un objeto llamado objMiClase pero ademas de eso nesesito un vector q almacene en cada posicion un objetode esos(objMiClase con todos sus atributos) lo que hago es
MiClase V1=new MiClase[50]; //esto deveria crear el vector con 50
//posiciones verdad???????????? ok
//supongamos q uno delos atributos de la clase
//es X y es un entero por cada posicion del
// vector deve haver una X
//quiero acceder a esa informacion o modificarla
// como hagooooooooooooo????? lo q he echo es
V1[0].X=3;//esto me da un error es mas una exepcion de NULL POINTE R
// y si trato de leerlo asiendi q muestre en la
System.out.println(" "+V1[0].X ); //pantalla lo q tiene escribe NULL
ayudaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaa
mi correo es [email protected]
  #2 (permalink)  
Antiguo 13/05/2006, 16:06
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Hola:

El new MiClase[50] te crea cincuenta hueco para guardar clases de tipo MiClase, pero todavía no están creadas las clases. Debes meterlas una a una con algo similar a esto

for (int i=0;i<50;i++)
V1[i] = new MiClase(parametrosConstructor);

Una vez hecho esto, ya lo tienes todo preparado.

Si conoces C o C++, el new MiClase[50] es el equivalente a declarar un array de 50 punteros a MiClase, pero luego hay que incializar esos punteros uno a uno.

Una pequeña advertencia, no caigas en la tentación de hacer esto

MiClase aux = new Miclase(...);
for (int i=0;i<50;i++)
{
aux.X = unValor;
V1[i] = aux;
}

Si lo haces así, tendrás un único objeto en los 50 y el valor de la X de ese objeto es el último que hayas metido. Es importante hacer los 50 news si quieres 50 objetos distintos.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:02.