Assoziationen

Status
Nicht offen für weitere Antworten.
R

Rubylux

Gast
Ich hab mich in den Assoziationen zw. mehreren Klassen versucht, aber bekomm eine Fehlermeldung :(
Bitte helft mir .. !!

Fehler:
symbol : constructor B (Obj)
location: class B
b = new B(this);

Mein KSKB:

Code:
public class Stg {
	public Obj obj;
	public Stg(){
		obj = new Obj(this);
	}
	public static void main(String args[]) {
		Stg m = new Stg();
	}
}

Code:
public class Obj{
	Stg stg;
	B b;
	S1 s1;
	S2 s2;
	public Obj(){    }
	public Obj(Stg s) {
		stg = s;
		b = new B(this);
		s1 = new S1();
		s2 = new S2();
		//Obj soll B,S1 & S2 kennen.
	}
}

Code:
class B {
	Obj obj;
	S1 s1;
	S2 s2;
	public B(Obj obj, S1 s1, S2 s2) {
		obj = obj;
		s1 = s1;
		s2 = s2;
		//B soll Obj, S1 & S2 kennen.
	}
}

Code:
public class S1
{
	public S1() { }
	//S1 ist identisch mit S2
}
 

Ariol

Top Contributor
Jop, der Konstruktor von B verlangt nach einem Obj-, einem S1- und einem S2-Objekt, aber du übergibst dem Konstruktor nur ein Obj-Objekt.

Vergleiche:
Code:
public B(Obj obj, S1 s1, S2 s2)
{
....
}
Code:
b = new B(this);

Außerdem fehlt die klasse S2


Ach ja, so sollte es gehen:
Code:
public Obj(Stg s) {
      stg = s;
      s1 = new S1();
      s2 = new S2();
      b = new B(this,s1,s2);
   }
 
R

Rubylux

Gast
So, die Fehlermeldung ist weg, aber jetzt bekomm ich zur Laufzeit ne NPE. Und zwar soll eine Methode aus B in Obj ausgeführt werden, wenn ein Button gerückt wurde.
 
R

Rubylux

Gast
Bin selbst dahinter gekommen mit this.x
Code:
class B {
   Obj obj;
   S1 s1;
   S2 s2;
   public B(Obj obj, S1 s1, S2 s2) {
      this.obj = obj;
      this.s1 = s1;
      this.s2 = s2;
      //B soll Obj, S1 & S2 kennen.
   }
}
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben