auslesen einer Variablen eines Objekt welches "Eigentum" eines Objektes der selben Klasse ist.

Leux

Mitglied
Hi und entschuldigung für den übermäßig langen Titel.

Ich habe ein kleines Problem:
Ich möchte eine Variable eines speziefischen Objektes auslesen, welches selbst ... "Eigentum" eines Objektes der selben Klasse ist, verständlicherweise per getter.
Ich habe aber leider keine Idee und Ahnung wie ich das ganze so gestellte das ich eine Variable eines Objektes in der x beliebig tiefen Ebene einer solchen verschachtelung auslesen kann, das ganze also generisch mache.

Ich weiß zwar wie ich das ganze auf einer begrenzten zahl Ebenen tun kann, aber ich würde das ganze gern richtig generisch machen und nicht so nen' halb garen quatsch wie bisher...

Danke schonmal für eure Zeit.
 
Hi XHelp^^

also... ich dachte mir schon das es etwas sehr verwirrend sein könnte ^^"

also:
Ich habe eine Klasse XYZ, von dieser erstelle ich zwei Objkete mit bsp. Namen A und B so...
jetzt weise ich Objekt B einem Arry der Klasse XYZ in Objekt A zu, welches wiederum in der Klasse XYZ deklariert wurde... (der grundgedanke)
und nun erstelle ich ein Objekt C der Klasse XYZ und weise C dem Objekt B wie oben beschrieben in ein Arry zu und wiederhole das jetzt einfach mal x-beliebig oft...
und nun würde ich gern, beispielsweise den String Name des Objektes T auslessen und dann den String Name des Objektes F und dann den String Name des Objektes H...

Imperative Lösung währe: ich schreib jetzt nen Getter der mir den String Namen des Obersten Objektes also Objektes A ausgiebt, dann schreib ich mir nen Getter der mir dien String Name des Objektes B ausgiebt mittels nutzung des Getters für A... und so weiter...
und da liegt jetzt mein Problem, ich würde gern eine Getter Methode schreiben die sich quasie selber darum kümmert und nicht "hast-du-nicht-gesehen" viele Getter die mir letztlich das liefern was ich möchte...

weiß da wer Rat?
 
Hi,

ich hab mal versucht das was ich verstanden habe in Code zu packen:

Java:
public class ChainingClasses {
    private List<ChainingClasses> chain = new ArrayList<ChainingClasses>();
    private String name;

    public ChainingClasses(String name) {
        this.name = name;
    }

    public static void main(String... args) {
        ChainingClasses objektA = new ChainingClasses("A");
        ChainingClasses objektB = new ChainingClasses("B");
        objektA.addChain(objektB);

        ChainingClasses objektC = new ChainingClasses("C");
        objektB.addChain(objektC);

        //und jetzt von objektC aus die Namen aller Objekte ausgeben???
    }

    public void addChain(ChainingClasses another) {
        this.chain.add(another);
    }
}
 
hmpf ich versuchs mal ^^"
also statt sowas:
Java:
public String getName(){
		return nameDFaehigkeit;
	}
	public String getNameSub(int l1){//Ebene 2
		return SubFaehigkeiten[l1].getName();
	}
	public String getNameSubSub(int l1, int l2){//Ebene 3
		return SubFaehigkeiten[l1].getNameSub(l2);
	}
	public String getNameSubSubSub(int l1,int l2, int l3){//Ebene 4
		return SubFaehigkeiten[l1].getNameSubSub(l2,l3);
	}
	public String getNameSubSubSubSub(int l1,int l2, int l3, int l4){//Ebene 5
		return SubFaehigkeiten[l1].getNameSubSubSub(l2,l3,l4);
	}
Hätt ich gern eine methode die nicht nur diese hier vereint, sonder eine X-Beliebige anzahl an Ebenen bewältigen kann, das wenn ich noch mehr Objekte inneiander verschachteln will ich nicht für jede Verschachtelungsebene noch eine Riege Methoden basteln muss ^^"... das kann einem bei zeiten auf den Geist gehen ^^"""

Ich hoffe das war jetzt verständlicher ^^"

EDIT:
@ gman wenn ich mit meinem noch begrenztem JAVA wissen jetzt deinen Quellcode verstanden habe dann: Ich will jetzt von Objekt A mittels einer Methode die Variable name von Objet C ausgeben, die methode muss aber auch name für Objekt B ausgeben und name für (das in diesem Fall nicht existierende) Objkt D etc.
^^
 
Zuletzt bearbeitet:
Wäre da eine linked list nicht viel eleganter? Im Prinzip willst du ja eine Art DOM Hierarchie abbilden, also eine Liste wo jeder Knoten Parent und Children kennt.
 
Hi @ Noctarius
1. mir sagt linked list leider nichts, könntest du mir sagen was das ist?
und
2. kann bei besagte linked list ein Parent x-beliebig viele Children haben deren anzahl man vorher nicht festlegen muss?
So weit ich das im Netz gesehen habe punkto DOM-Hirarchie Ja.
Oder?
 
Ich würde mir eine eigene Klasse nach etwa dem Muster bauen:
Java:
class Element {
  private final Element parent;
  private final Element name;
  private final List<Element> children = new ArrayList<Element>();

  public Element(String name, Element parent) {
    this.name = name;
    this.parent = parent;
  }

  public Element(String name) {
    this(name, null);
  }

  public List<Element> getChildren() {
    return Collections.unmodifiableList(children);
  }

  public void appendChildren(Element child) {
    children.add(child);
  }

  public void removeChildren(Element child) {
    children.remove(child);
  }
}

Damit kannst du beliebige Parent-Children Hierarchien verwalten.
 
wow ... ganzschön deftig... ^^"
Auch wenn es noch ne ganze weile dauern wird um das alles zu verstehen, schonmal Danke ^^.

Mir stellt sich nur gerade die frage: ist dann damit mein problem gelösst? ^^" Ich weiß gerade nicht ob ja oder nein ^^"

Meine vermutung:
Ich kann jetzt mit diesem Quelcode, wenn ich ihn verstanden hab und einsetztze letztlich jedes Objekt direkt ansprechen bsp mit der Methode .getName den die Variable name auslesen oder?...
oder bin ich jetzt endgültig verwirrt...
 
Wofür brauchst du denn diese Struktur? Was für ein Programm schreibst du denn? Deiner bisherigen Problembeschreibung nach sollte Noctarius' Ansatz durchaus gut geeignet sein. Wenn du Probleme mit dem Verständnis des Quellcodes hast, solltest du vielleicht erst in deinem Buch weiterlernen bis du die nötigen Kenntnisse hast um dein Problem anzugehen.
 

Zurück
Oben