Declaracion de un vector

Kripto
02 de Mayo del 2005
Mi problema consiste en que trato de construir un vector(VecEst) en la
clase (EstudiantePrg1) que tenga la estructura de la clase (Estudiante1)
en cada celda, pero me arroja el error (java.lang.NullPointerException)
y no se por que???. Como puedo solucionar esto??


class Estudiante1
{
private String codigo;
private String nombre;
private int edad;
private float promedio;
private double valorMcl;


public void setcod(String codigo)
{ this.codigo=codigo;}

public void setnom(String nombre)
{ this.nombre=nombre;}

public void setedad(int edad)
{ this.edad=edad; }

public void setprom(float promedio)
{ this.promedio=promedio; }

public void setvalor(double valorMcl)
{ this.valorMcl=valorMcl; }



public String getcod()
{ return(codigo); }

public String getnom()
{ return (nombre); }

public int getedad()
{ return (edad); }

public float getprom()
{ return (promedio); }

public double getvalorMcl()
{ return (valorMcl); }

public String toString ()
{
return "codigo:"+codigo+"nombre:"+nombre+"edad:"+edad+"promedio;"+promedio+"valor:"+valorMcl+"";
}

}



import java.io.*;
class EstudiantePrg1
{
Estudiante1 []VecEst;

public EstudiantePrg1()
{
VecEst=new Estudiante1[5];
}


public void incrustar(int posici,String nomb)
{
VecEst[posici].setnom(nomb);
}

public static void main (String[] args)
{
EstudiantePrg1 VectorEstudiante=new EstudiantePrg1();
VectorEstudiante.incrustar(0,"badir");
System.out.println("el cabron es: "+VectorEstudiante.VecEst[0].getnom());
}
}




Y si requiero ingresarle a la clase(Estudiante1) un atributo que sea un
vector Como debo implementar los metdos set y get para accesar a este???

Muchisimas gracias de antemano.
Saludos.


miguel angel
02 de Mayo del 2005
Deberias considerar las nomas de estilo mas extendidas para que el codigo resulte más utilizable por las costumbres de los demás :-p

En cuanto a tu pregunta, revisa este método y preguntate siempre que intentes acceder a cualquier posicion de array u objeto si contiene algo q no sea null o si esta instanciado, respectivamente =)

public void incrustar(int posici,String nomb)
{
//no tenias nada en la posición del array, intentabas acceder a null
VecEst[posici] = new Estudiante1();
VecEst[posici].setnom(nomb);
}

VecEst[] Estudianteprg1{
return VecEst;
}
si no me equivoco, que son las 3 d la mañana =)

miguel angel
02 de Mayo del 2005
confundime!

VecEst[] getVector(){

//devuelve la refencia del vector VecEst

return VecEst;
}

dentro de la clase Estudianteprg1 :)

no tiene mucho sentido un setVector... desde mi punto de vista... si acaso un setVector(int n) que cree otro array con n huecos y copie los contenidos y reasigne las referencias para que el recolector de basura se lleve la referencia vieja cuando pueda... pero un gasto de recursos un poco innecesario desde mi punto de vista :)

jorge
02 de Mayo del 2005
yo tmb estoy = q tu, hoy me enseñaron ese tema pero no entendi muxo