Declaracion de un vector
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.
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.
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 =)
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 =)
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 :)
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 :)