Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Arny Britos en 17 Julio 2009, 05:38 am



Título: hola men
Publicado por: Arny Britos en 17 Julio 2009, 05:38 am
Tengo un problemita con mi codigo ejercicio vector tipo objeto me da un error al compilar... Quiero una ayudita...


Código
  1. public static void main(String[] args) {
  2.        DatosPersona vec[]=new DatosPersona[5];
  3.        CargarDatos carga= new CargarDatos();
  4.        carga.prueba(vec);
  5.        System.out.println("El nombre es: "+ vec[1].nombre);
  6.        System.out.println("El apellido es: "+ vec[1].apellido);
  7.        System.out.println("Su edad es: "+ vec[1].edad);
  8.    }
  9.  
  10.  
  11.  
  12. public class DatosPersona {
  13.  
  14.    public String nombre;
  15.    public int edad;
  16.    public String apellido;
  17.  
  18. }
  19.  
  20.  
  21. public class CargarDatos {
  22.  
  23.   public void prueba (DatosPersona vec[])
  24.     {
  25.       vec[1].nombre="Alberto";
  26.       vec[1].apellido="Gonzalez";
  27.       vec[1].edad=24;
  28.     }
  29. }


MENSAJE DE ERROR AL EJECUTAR

init:
deps-jar:
compile-single:
run-single:
Exception in thread "main" java.lang.NullPointerException
        at matrizobjeto.CargarDatos.prueba(CargarDatos.java:17)
        at matrizobjeto.Main.main(Main.java:20)
Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)


Título: Re: hola men
Publicado por: Nakp en 17 Julio 2009, 08:09 am
declaraste el vector, pero no cada objeto del vector :rolleyes:...

esto va en JAVA y pon el código entre [code=java][/code]
(http://www.threadbombing.com/data/media/42/doingitwrong.jpg)


Título: Re: hola men
Publicado por: Arny Britos en 18 Julio 2009, 23:40 pm
amigo te agradezco por haberme contestado.. ;D pero no estoy entendiendo bien es que yo instancie un vector tipo DatosPersonales que es una clase que yo habia creado y segun como entiendo tendria que poder acceder a cada uno de sus metodos y atributos dado que mi vector se convirtio en un objeto de ese tipo clase que insatancie me podes indicar en el codigo como deberia quedar asi lo compilo en mi maquina y lo analizo porfa  ;)


Título: Re: hola men
Publicado por: Nakp en 19 Julio 2009, 00:30 am
no... instanciaste un vector de cierto "tipo" pero cada elemento del vector no ha sido instanciado como objeto

Código
  1. public static void main(String[] args) {
  2. DatosPersona vec[]=new DatosPersona[5];
  3. for(i=0;i<vec.lenght();i++)
  4. vect[i] = new DatosPersona();
  5.  
  6. CargarDatos carga= new CargarDatos();
  7. carga.prueba(vec);
  8. System.out.println("El nombre es: "+ vec[1].nombre);
  9. System.out.println("El apellido es: "+ vec[1].apellido);
  10. System.out.println("Su edad es: "+ vec[1].edad);
  11. }


Título: Re: hola men
Publicado por: Arny Britos en 19 Julio 2009, 02:26 am
 ;-) ;-) Amigaso sos un idolo te agradezco de aqui a la luna te comento que busque muchisimo en la web ejecicios de este tipo pero no encontraba nada el miercoles tengo un examen en la facu los ejercicios van a estar planteados para trabajar con matrices tipo objeto.. ya no quiero molestarte ya me ayudaste bastante pero de porai conoces algun sitio donde pueda encontrar ejercicios de este tipo seria bueno hasta pronto y gracias... ;-)


Título: Re: hola men
Publicado por: Arny Britos en 20 Julio 2009, 04:46 am
HOLA AMIGO UNA CONSULTA AL TRATAR CREAR DOS MATRICES TIPO OBJETO ME DA EL MISMO ERROR YA PROBE DE VARIAS MANERAS PERO NO ME FUNCIONA SERA QUE ME PODES DAR LA LUZ... DESDE YA TE AGRADEZCO.


public static void main(String[] args) {
       
        CargarDatos matDep[][]=new CargarDatos[5][3];
        for (int i=0;i<matDep.length;i++)
        {
            for(int j=0; j < matDep.length;j++)
            {
                matDep[j]=new CargarDatos();
            }
        }
        DatosPersona matPer[][]=new DatosPersona[5][5];
        for (int i=0;i<matPer.length;i++)
        {
            for (int j=0;j<matDep.length;j++)
            {
                matDep[j]= new CargarDatos();
            }
        }
       
        DatosPersona CARGA= new DatosPersona();
        CARGA.cargar(matPer,matDep);
        for (int i=0;i<5;i++)
        {
            System.out.println(matPer
  • .CodDep);
            System.out.println(matDep
  • .nombre);
        }

    }


Título: Re: hola men
Publicado por: Nakp en 20 Julio 2009, 06:38 am
Código
  1. public static void main(String[] args) {
  2.  
  3.        CargarDatos matDep[][]=new CargarDatos[5][3];
  4.        for (int i=0;i<matDep.length;i++)
  5.        {
  6.            for(int j=0; j < matDep.length;j++)
  7.            {
  8.                matDep[j]=new CargarDatos();
  9.            }
  10.        }
  11.        DatosPersona matPer[][]=new DatosPersona[5][5];
  12.        for (int i=0;i<matPer.length;i++)
  13.        {
  14.            for (int j=0;j<matDep.length;j++)
  15.            {
  16.                matDep[j]= new CargarDatos();
  17.            }
  18.        }
  19.  
  20.        DatosPersona CARGA= new DatosPersona();
  21.        CARGA.cargar(matPer,matDep);
  22.        for (int i=0;i<5;i++)
  23.        {
  24.            System.out.println(matPer
  25.  
  26.    * .CodDep);
  27.  
  28.            System.out.println(matDep
  29.  
  30.    * .nombre);
  31.  
  32.        }
  33.  
  34.    }

length es un método, no un atributo matDep.length()

y NO es el mismo error