Ma ti rendi conto che hai creato un codice che neppure io riesco a capire???
Quando inizializzi class1 chiami il costruttore di default, giusto?
Il costruttore di default cosa fa? Crea un nuovo oggetto class2.
Per creare un oggetto class2 viene invocato il corrispondente costruttore di default, che a sua volta crea un nuovo oggetto class1. class1 crea un class2, class2 crea un class1...
Come diavolo ti è riuscito di creare un casino di questo tipo non riesco a spiegarmelo... volevi solo che date 2 classi A e B (iniziale maiuscola, sempre per le classi!!!) la classe A potesse accedere a un metodo di B?
Prova a vedere questo:
Codice PHP:public class Class1
{
private Class2 cl2;// riferimento a una istanza di Class2
public Class1(Class2 cl2)
{
this.cl2 = cl2;
}
public void metodo1()
{
// Puoi accedere a metodo2, ma se ci provi vai in loop
System.out.print("ciao");
}
}
public class Class2
{
private Class1 cl1;
public Class2()
{
cl1 = new class1(this); // Passa un riferimento a se stessa
}
public void metodo2()
{
System.out.print("ciao");
cl1.metodo1();
}
public static void main (String [] arg)
{
Class2 cl2 = new Class2 ();
cl2.metodo2();
}
}

Rispondi quotando