Klasse übergeben und Methode aufrufen?

Status
Nicht offen für weitere Antworten.

Shiwayari

Mitglied
Ich denke mal das gehört hier rein..

Also ich habe mir eine Klasse geschrieben, die momentan noch von einer anderen Klasse abhängig ist. Diese Abhängigkeit will ich loswerden, damit ich die Klasse auch bei anderen Projekten verwenden kann. Das Ganze sieht so aus:

Folgende Klassen A und B:
Code:
public class A {
  ...
  A a = new A();
  ...
  B b = new B(a);
  ...
  public void m() {
    ...
  }
  ...
}



public class B {
  private A a;
  ...
  public B(A a) {
    this.a=a;
  }
  ...
  public void callM() {
    a.m();
  }
  ...
}

Klasse A instanziert ein Objekt b der Klasse B und übergibt im Konstruktor eine Instanz a von sich selbst.
Objekt b benutzt diese Instanz a, um eine Methode m von a aufzurufen.

Jetzt kann ich die ganze Klasse B aber nur dann in einem anderen Projekt benutzen, wenn ich auch ein Objekt des Typs A an b übergebe.
Es soll aber unabhängig vom Typ der Klasse A die Methode m aufgerufen werden können. Z.B. soll auch eine Klasse C, die eine Methode m enthält, ein brauchbares Objekt von B benutzen können. Ungefähr so:
Code:
public class C {
  ...
  C c = new C();
  ...
  B b = new B(a);
  ...
  public void m() {
    ...
  }
  ...
}
Genau das geht ja nicht, weil c nicht vom Typ A ist.

Nun habe ich mir gedacht, ich mache das Ganze in Klasse B so:
Code:
public class B {
  private Object o;
  ...
  public B(Object o) {
    this.o=o;
  }
  ...
  public void callM() {
    o.m();
  }
  ...
}

Das scheint aber auch nicht zu gehen, da ich angezeigt bekomme, dass die Klasse Object die Methode m nicht enthält. Also ruft ein Methodenaufruf immer eine Methode der Klasse des Typs auf, mit dem das Objekt in der eigenen Klasse deklariert wurde, und nicht die Methode der Klasse des Typs des übergebenen Objekts? Kann irgendwie nicht nachvollziehen warum das sinnvoll sein soll, da man ja sowieso alle Methoden aus den übergeordneten Klassen aufrufen kann?
Also wie bekomme ich es nun hin, dass Klasse B immer die Methode m des im Konstruktor übergebenen Objekts aufruft? Vererben will ich vermeiden, da B nicht wirklich in die Hierarchie reinpasst.
Natürlich könnte ich einfach bei jedem Projekt den jeweiligen Typ in Klasse B ändern, aber das soll ja nicht Sinn der Sache sein.
Ich glaube Interfaces helfen mir da weiter, aber ich komme einfach nicht drauf wie genau ich das machen soll. Hab mich auch noch nicht so mit Interfaces beschäftigt.
 
B

Beni

Gast
Fehlt doch nicht mehr viel, das Interface M stellt sicher dass es eine Methode m gibt:

Code:
public interface M{
  public void m();
}

B ruft m in M auf:
Code:
public class B{
  private M m;

  public B( M m ){
    this.m = m;
    m.m();
  }
}

... und A und C müssen M implementieren.
 

Shiwayari

Mitglied
Okay, das hat funktioniert, danke. Also hab ich jetzt einfach A als Typ des Interfaces M, damit ich auf m() zugreifen kann. Also entspricht m.m() dann a.m(), weil a dann vom Typ M ist. Denk mal ich habs verstanden.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Attribute aus Klasse in berechnungs Methode übergeben Java Basics - Anfänger-Themen 1
R Methode zwei Sortierkriterien der Klasse Comparator übergeben Java Basics - Anfänger-Themen 4
O Klasse übergeben und Methode aufrufen Java Basics - Anfänger-Themen 6
A Arraylist einer Methode, gefüllt einer anderen Klasse übergeben Java Basics - Anfänger-Themen 17
E Variable aus einer Methode heraus in eine andere Klasse übergeben Java Basics - Anfänger-Themen 13
H String in Methode einer anderen Klasse übergeben Java Basics - Anfänger-Themen 5
U Variabler Rückgabetyp und Klasse an Methode übergeben? Java Basics - Anfänger-Themen 5
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
C Int an andere Klasse übergeben Java Basics - Anfänger-Themen 26
jonny_2k12 Wie kann ich eine ArrayList aus einer Klasse in eine andere übergeben? Java Basics - Anfänger-Themen 21
G JTextField per Button speichern und an andere Klasse übergeben Java Basics - Anfänger-Themen 2
M JTable an andere Klasse übergeben Java Basics - Anfänger-Themen 2
S Werte in Klasse übergeben Java Basics - Anfänger-Themen 12
F Mehrere Instanzen der Klasse A EINER Instanz der Klasse B übergeben Java Basics - Anfänger-Themen 3
V JButton einer anderen Klasse übergeben? Java Basics - Anfänger-Themen 6
J Werte an eine andere Klasse übergeben Java Basics - Anfänger-Themen 4
N Auf TextFeld aus anderer Klasse zugreifen ohne es zu übergeben Java Basics - Anfänger-Themen 3
OlafHD Einen String an eine Klasse übergeben Java Basics - Anfänger-Themen 2
A Klassen Zahlen einlesen, an Klasse übergeben und Koordinaten ausgeben Java Basics - Anfänger-Themen 1
D String aus Main in Klasse übergeben Java Basics - Anfänger-Themen 4
Z ArrayList einer anderen Klasse übergeben Java Basics - Anfänger-Themen 8
W Wert an andere Klasse übergeben Java Basics - Anfänger-Themen 8
I Java Eingabe aus einer anderen Klasse in eine andere an Konstruktor übergeben Java Basics - Anfänger-Themen 4
M Klasse als Parameter übergeben Java Basics - Anfänger-Themen 7
W Variable an andere Klasse übergeben Java Basics - Anfänger-Themen 3
S Methoden eine Instanz einer eigenen Klasse als parameter übergeben Java Basics - Anfänger-Themen 9
M Variablen übergeben an andere Klasse Java Basics - Anfänger-Themen 9
O Variabeln aus einer andere Klasse dauerhaft einen anderen Wert übergeben Java Basics - Anfänger-Themen 5
N Methoden Klasse an Instanzmethode übergeben Java Basics - Anfänger-Themen 6
P Eingabe aus JTextField/Area an eine andere Klasse übergeben. Java Basics - Anfänger-Themen 2
W objektorientierte Programmierung - String in andere Klasse übergeben Java Basics - Anfänger-Themen 13
E Wert in eine andere Klasse übergeben Java Basics - Anfänger-Themen 3
J Combobox in andere Klasse übergeben Java Basics - Anfänger-Themen 3
H JPanel in andere Klasse übergeben Java Basics - Anfänger-Themen 7
H ArrayList in andere Klasse übergeben Java Basics - Anfänger-Themen 6
U Anderer Klasse ein Obejkt einer Klasse übergeben Java Basics - Anfänger-Themen 5
Q 2 Objekte in eine Klasse übergeben Java Basics - Anfänger-Themen 10
R Variable an andere Klasse übergeben? Java Basics - Anfänger-Themen 3
T Objekte einer Klasse einer anderen Klasse übergeben Java Basics - Anfänger-Themen 5
C Variable dem Konstruktor einer Klasse übergeben Java Basics - Anfänger-Themen 8
L Wert an andere Klasse übergeben Java Basics - Anfänger-Themen 7
L SQL Query an andere Klasse übergeben Java Basics - Anfänger-Themen 3
M Parameter an andere Klasse übergeben? Java Basics - Anfänger-Themen 5
K Wert an andre Klasse übergeben Java Basics - Anfänger-Themen 2
D primitive übergeben aus anderer klasse und alsLabel ausgeben Java Basics - Anfänger-Themen 4
J Parameter mit andere Klasse übergeben Java Basics - Anfänger-Themen 2
C Wert in andere Klasse übergeben Java Basics - Anfänger-Themen 10
J String von einer an die andere Klasse übergeben? Java Basics - Anfänger-Themen 11
N Daten von einer Klasse an eine andere übergeben? Java Basics - Anfänger-Themen 4
J Konstante von Klasse zu Klasse übergeben? Java Basics - Anfänger-Themen 6
H JLabel aus einer Klasse an eine andere Klasse übergeben Java Basics - Anfänger-Themen 4
S Werte an andere Klasse übergeben Java Basics - Anfänger-Themen 3
H Instanz einer Klasse übergeben und dynamisch auswerten Java Basics - Anfänger-Themen 3
B Vector an Klasse übergeben Java Basics - Anfänger-Themen 2
G variablen in eine andre klasse übergeben (andere Datei) Java Basics - Anfänger-Themen 1
I @Inject in normaler Klasse? Java Basics - Anfänger-Themen 4
P Enum oder normale Klasse? Java Basics - Anfänger-Themen 10
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
P Wie kann ich meine Keylistener Klasse unterscheiden lassen, von welcher "Quelle" der Input kommt? Java Basics - Anfänger-Themen 2
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
Amina556 Eigene Klasse definieren Java Basics - Anfänger-Themen 9
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
M Klasse in Runden Klammern bei Objektimplementierung Java Basics - Anfänger-Themen 4
J Klassen Klasse als Komponententyp bei Feldern Java Basics - Anfänger-Themen 2
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
Detlef Bosau nichtstatische Innere Klasse, this Pointer. Java Basics - Anfänger-Themen 47
C Unbekannte Methode add bei Klasse die JTree erweitert Java Basics - Anfänger-Themen 14
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
J Zugriff auf eine 2. Klasse die per UI-Designer erstellt wurde Java Basics - Anfänger-Themen 1
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
frager2345 Optional Klasse Java Java Basics - Anfänger-Themen 2
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
H Klassen Typ und Intitialisierungs-Klasse, wer bestimmt was? Java Basics - Anfänger-Themen 1
P Array vom Typ Klasse Java Basics - Anfänger-Themen 18
T Thread beenden aus zweiter Klasse Java Basics - Anfänger-Themen 4
frager2345 Java Klasse Buch verwalten Java Basics - Anfänger-Themen 0
frager2345 Java eigen Klasse zum verwalten von Büchern Java Basics - Anfänger-Themen 3
T Zugriff auf Control anderer Klasse Java Basics - Anfänger-Themen 5
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
G zwei Instanzen einer Klasse Java Basics - Anfänger-Themen 29
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
B Klasse "Character" Java Basics - Anfänger-Themen 2
F Suche nach betreuender Person für eine Jahresarbeit der 12. Klasse. Java Basics - Anfänger-Themen 6
H Mit setter-Methode JLabel in einer andern Klasse ändern. Java Basics - Anfänger-Themen 40
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
I Array Länge in Klasse festlegen Java Basics - Anfänger-Themen 1
L Klassen Vektor Klasse Java Basics - Anfänger-Themen 2
I Interface von einer EJB Klasse, um Code zu reduzieren Java Basics - Anfänger-Themen 1
M Interface als Parameter einer Klasse Java Basics - Anfänger-Themen 8
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
X Was ist der Unterschied zwischen materialisierten und nichtmaterialisierten Attributen einer Klasse? Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben