Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - manolazo

#11
Buenas tardes.

Soy  novato en esto de java pero hay un concepto que no entiendo en el siguiente código.


public class ClaseA {
   
    public int x[];       
    public ClaseB c;
   
    public ClaseA (){       
        x = new int[2];       
        for (int i=0; i<x.length; ++i){
            x[i]= i;
        }           
        c= new ClaseB(x[1]);   
        mostrar();   
    }   
   
    public void mostrar(){       
        c.calcu();
       c.mostrarenClase();             
       System.out.println(c.a );     
       
    }
   
    public static void main (String args[]){     
        ClaseA p = new ClaseA();
       
    }   
}




public class ClaseB {
    public int a;
    public ClaseA p ;
   
    public ClaseB(int x){
        this.a= x;         
    }
   
    public void calcu(){
        a++;       
    }
   
    public void mostrarenClase(){       
        System.out.println(p.x[1]);
    }         
}


Creo un objeto de la claseB , y cuando llamo el metodo mostrarenClase() es cuando me sale el NUllPointerException.

Supongo es porque en la claseB no creo un objeto de la claseA y por eso en la declaracion de variable de la claseB : ClaseA p; no esta inicializado y al llamar a p.x[1] me sale el error .

Se ve que hay algun concepto que no tengo claro.

Como se soluciona?

Un saludo y gracias de antemano.