Referenz Objekt aufrufen

LimDul

Top Contributor
Nun, indem du korrekt auf sie zugreifst.

Spezifiziere deine Frage mal mit einem konkreten Beispiel? Was ist "weiter oben in der Struktur"?
 

hasocuk

Mitglied
Sorry für den Fehlbeitrag, habe zu schnell gedrückt auf den Button!

Hallo zusammen,

ich mache mir Gedanken, wie ich auf Objekte, die weiter oben in Richtung Kopf in der Struktur angesiedelt sind zugreifen kann. Beziehungsweise auch auf Objekte, die durch wiederum andere Objekte erzeugt wurden. Wie kann ich mir Zeiger erzeugen die auf Bestimmte Knoten zeigen und diese weitergeben?

Meine Vorstellung ist, Der Zeiger / Referenz von Auto wird weitervererbt und steht im Innenraum, Bereifung, Motor, aber auch in Lenkrad und Sitze zur Verfügung. Der Zeiger auf Innenraum, wäre daher in dem Objekt Sitze und Lenkrad verfügbar. Könnt ihr mir bitte ein Beispiel geben, wie ihr sowas lösen tut.

Im Pseudo Code, habe ich einige stellen zu meinen Problem markiert. Vielen Dank im Voraus

Gruß
Hasan

public class Start {
public static Auto start;

public static void main(final String[] args) {
start = new Auto("BMMM");
}
}
public class Auto {
String name;
Innenraum myInnenraum;
Bereifung myBereifung;
Motor myMotor;
public Auto(String name) {
this.name = name;
init();
}
public void init() {
myInnenraum = new Innenraum("Sport");
myBereifung = new Bereifung();
myMotor =new Motor();
}
}

public class Innenraum {
Sitze mySitze;
Lenkrad myLenkrad;
String Ausstattungsklasse;
public Innenraum(String txt){
this.Ausstattungsklasse =txt;
this.mySitze = new Sitze();

this.myLenkrad = new Lenkrad();
}
}
public class Bereifung {
String Felgentyp;
String Felgenroesse;
public Bereifung(){
// Hier würde ich gerne Abfragen, welche Marke,
// Daher auf das Auto Objekt zugreifen
// wenn BMM dann Felgentyp = new ALU("BMM"); //usw.
}
}
public class Lenkrad {
public Lenkrad() {
// Hier würde ich gerne Abfragen ob das Objekt --> Sitzart z.B. Sport ist
// wie kann ich auf das Object zugreifen
}
}

public class Sitze {
String sitzart;
}
public Sitze(String sitz) {
this.sitzart = sitz;
}
 

httpdigest

Top Contributor
Das ist ein guter Anwendungsfall für nicht-statische innere Klassen. Diese besitzen eine implizite Sichtbarkeit auf die Instanz der äußeren Klasse:
Java:
public class Auto {
  public class Innenraum {
    public class Lenkrad {
      public Lenkrad() {
        System.out.println(Innenraum.this.sitze.sitzart);
      }
    }
    public class Sitze {
      private String sitzart;
      public Sitze(String sitzart) {
        this.sitzart = sitzart;
      }
    }
    private Sitze sitze;
    private Lenkrad lenkrad;
    private String ausstattungsklasse;
    public Innenraum(String ausstattungsklasse) {
      this.ausstattungsklasse = ausstattungsklasse;
      this.sitze = new Sitze("leder");
      this.lenkrad = new Lenkrad();
    }
  }
  public class Bereifung {
    private String Felgentyp;
    private String Felgenroesse;
    public Bereifung() {
      System.out.println(Auto.this.bereifung);
    }
  }
  public class Motor {
  }
  private String name;
  private Innenraum innenraum;
  private Bereifung bereifung;
  private Motor motor;
  public Auto(String name) {
    this.name = name;
    init();
  }
  public void init() {
    innenraum = new Innenraum("Sport");
    bereifung = new Bereifung();
    motor = new Motor();
  }
}
 
Zuletzt bearbeitet:

hasocuk

Mitglied
Hallo httpdigest vielen Dank für deine Antwort.

Das klappt auch und finde es als eine leichte Vorgehensweise. Aber bekomme bedenken für mein vorhaben, wegen der Übersicht wegen der Verschachtelung. Ich wollte für mein Projekt unabhängige Klassen die einerseits vererben und veränderte Kindklassen sind, wo ich je nach Produkt individuell zusammenbauen kann nach Abhängigkeiten und diese auch eine Art Schnittstelle zum zusammenbauen des Models sind. Daher wäre mein Aufbauwunsch für mein Model, das diese als einzelne Klassen anzulegen wegen der Wartbarkeit, Framesteuerung usw.. Oder verstehe das Konzept nicht?

Um beim Beispiel zu bleiben, Kraftfahrzeug --> Auto, Bus, Motorrad, Auto --> Sportwagen, Van, Limousine, Motor --> für Auto, Bus, Motorrad und diese wiederum Diesel, Elektro, Benziner. Mein eigenes Projekt würde zum Teil 3-4 Vererbungsebenen von der Hauptklasse haben und hier möchte ich die Kontrolle beibehalten können.

Von Oben kann ich ja zugreifen, da sage ich Auto.Innenausstattung.Lenkrad.Methode(), gibt es hier keine Technik / Möglichkeit die Referenzen im unterem Knoten bereitzustellen wie oben beschrieben?

--- Meine Vorstellung ist, Der Zeiger / Referenz von Auto wird weitervererbt und steht im Innenraum, Bereifung, Motor, aber auch in Lenkrad und Sitze zur Verfügung. Der Zeiger auf Innenraum, wäre daher in dem Objekt Sitze und Lenkrad verfügbar ----

Danke nochmals!
Hasan
 

httpdigest

Top Contributor
gibt es hier keine Technik / Möglichkeit die Referenzen im unterem Knoten bereitzustellen wie oben beschrieben?
Klar gibt es die. Nutze einen Konstruktorparameter, der die Instanz der äußeren Klasse als Argument bekommt, und speichere die Instanz in einer Instanzvariable. Heißt (z.B: für die Klasse Bereifung):
Java:
private final Auto auto;
public Bereifung(Auto auto) {
  this.auto = auto;
}
Innere Klassen in Java funktionieren genauso, nur, dass man den Konstruktorparameter nicht explizit sieht und angeben muss.
Nach diesem Schema kannst du dann beliebig wieder hochnavigieren.
 

Thallius

Top Contributor
Das Ganze wiederspricht aber dem eigentlich OOP Gedanken. Es gibt nämlich eigentlich keinen Grund warum das Lenkrad wissen muss in welchem Auto es eingebaut ist.

Gruß

Claus
 

Kirby.exe

Top Contributor
Das Ganze wiederspricht aber dem eigentlich OOP Gedanken. Es gibt nämlich eigentlich keinen Grund warum das Lenkrad wissen muss in welchem Auto es eingebaut ist.

Gruß

Claus
Da muss ich dir wiedersprechen, denn wenn das Lenkrad ein Airbag besitzt sind diese an Fahrzeuge gebunden, somit müsste es schon wissen an welchem Auto es montiert ist...z.B. die Fahrgestellnummer
 
K

kneitzel

Gast
Da muss ich dir wiedersprechen, denn wenn das Lenkrad ein Airbag besitzt sind diese an Fahrzeuge gebunden, somit müsste es schon wissen an welchem Auto es montiert ist...z.B. die Fahrgestellnummer
Nein, wieso sollte das Lenkrad die Fahrgestellnummer kennen oder das Auto? Wenn ich das Lenkrad (Ein System, das einfach eine Eingabe in Form einer Drehung entgegen nimmt und weiter gibt) so begrenze, dann kann ich daraus nichts anderes mehr machen. Also so Ein Auto Lenkrad kann ich dann nicht an einem Boot befestigen.... ==> Das zeigt, wie wichtig die Reduzierung der Abhängigkeiten ist. Das Folgende macht es evtl. auch deutlich:

Das schöne bei der Objektorientierung ist doch eben, dass man sich schön an der Realität entlang hangeln kann.
- Das Lenkrad ist einfach ein Lenkrad. Das kann Airbags haben, muss es aber noch nicht mal.
- Das Lenkrad muss das Auto selbst nicht kennen. Es muss aber das Lenksystem kennen, denn wenn es benutzt wird (also sowas wie "10° nach rechts gedreht", dann muss es das weiter geben, so dass sich z.B. die Stellung der Räder verändert)
- Die angesprochenen Airbags haben mit dem Lenkrad kaum etwas zu tun. Sie kommen da dann halt rein. Aber das Lenkrad hat mit den Airbags ja nichts zu tun. Die Steuerung übernimmt ein Steuerungskasten. Dem ist das Fahrzeug aber auch egal. Das Airbag Steuersystem kennt Sensoren und werte die Signale der Sensoren aus. Und es kennt die Airbags. Wenn dann bestimmte Sensorsignale vorliegen und das Gerät nicht auf Störung ist, dann werden Airbags ausgelöst und direkt auf Störung gegangen - Das Steuersystem schaltet sich sozusagen mit Auslösung auch selbst dauerhaft ab.
- Die Sensoren interessieren sich für das Auto selbst auch nicht. Sehr wohl aber Positionsveränderungen. Dabei ist es den Sensoren aber egal, ob diese in einem Auto, Flugzeug oder sonst wo verbaut sind. Die Sensoren messen z.B. die Beschleunigung und das war es auch schon!

Durch die Begrenzung der Abhängigkeiten kann ich alles frei verwenden ohne es anzupassen. Die G-Sensoren baue ich überall da ein, wo ich sie brauchen kann.
 

hasocuk

Mitglied
Hallo JustNobody,

ich meine hier, Grundsätzlich hast du recht das die Eigenschaften des Lenkrad Objektes nicht vom Auto abhängen darf, aber wenn du in die Richtung Konfiguration denkst, sieht es mir nach etwas anders aus. Du hast eine Reihe an meinetwegen Lenkrädern, die du in eine Box zur Auswahl stellen möchtest. Genau hier ist es von Interesse mir nach zu wissen, welches Auto ist aktuell ausgewählt zur Begrenzung. Weiterhin kommen Restriktionen hinzu, wo du es erst Optionen nach gewählter Ausstattung verfügbar machen möchtest oder die Auswahl eines Soundsystems, soll weiteren Einfluss nehmen z.B. den Ausbau des Standardradios und den Einbau des Radio++Systems.

Mir nach ist es auch nötig und von Vorteil nicht nur den Objekt-Model des Autos zur Bestimmung zu nutzen, sondern das das untere Objekt das Auswahlelement vom Lenkrad die Auswahlmöglichkeit nach den Abhängigkeiten abregelt. Daher ein Teil der wählbaren Lenkräder sind defaultmäßig registriert und weitere kommen hinzu oder die Auswahl reduziert sich innerhalb einer Konfiguration. Anhand von einzelnen Auswahlelementen werden dann die Eigenschaften des eigentlichen Lenkrad Objekts gebaut (Beschrieben) und dieses ist nicht im voraus statisch fest. Das ist mein Grund, wieso ich von unten und in die Seite prüfen möchte, wo ist welches Objekt mit welcher Eigenschaft vorhanden.

Gruß
Hasan
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Warum bekommen wir nicht die Referenz vom zurückgegebenen Objekt? Java Basics - Anfänger-Themen 4
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
Q Parameterübergabe - Objekt - Referenz Java Basics - Anfänger-Themen 5
V Frage zu Polymorphismus: Objekt der Subklasse in Referenz der Oberklasse Java Basics - Anfänger-Themen 4
C Referenz auf ein Objekt kopieren! Java Basics - Anfänger-Themen 2
A Klassenvariablen Referenz auf ein Objekt Java Basics - Anfänger-Themen 18
K OOP Probleme mit Objekt-Referenz in Methode Java Basics - Anfänger-Themen 6
E Compiler-Fehler kann Objekt-Referenz nicht erstellen Java Basics - Anfänger-Themen 3
H Objekt holen per Referenz als String. Java Basics - Anfänger-Themen 4
S Datentypen Objekt Integer Referenz Java Basics - Anfänger-Themen 5
D Fehlen einer Referenz auf Objekt Java Basics - Anfänger-Themen 14
K Attribut als Referenz auf Objekt Java Basics - Anfänger-Themen 8
P OOP-Theorie-Frage: Referenz auf Objekt Java Basics - Anfänger-Themen 27
D Referenz auf Objekt Java Basics - Anfänger-Themen 5
G Wie Referenz auf Objekt übergebn Java Basics - Anfänger-Themen 8
D Unterschied zwischen Referenz auf Objekt/Instanz von Objekt Java Basics - Anfänger-Themen 9
J Referenz auf ein Objekt Java Basics - Anfänger-Themen 2
Hzrfa Objekte, Referenz Java Basics - Anfänger-Themen 5
I Grundsatzfrage: Belegt eine Referenz auf 'null' RAM, und wenn ja - wieviel ;-) ? Java Basics - Anfänger-Themen 5
C Kopie oder Referenz ? Java Basics - Anfänger-Themen 5
A Binärbaum rekursiv durchsuchen und Referenz zurückgeben Java Basics - Anfänger-Themen 4
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
Y Pointer / Referenz - Theorie Java Basics - Anfänger-Themen 3
D Uebergabe per Referenz Java Basics - Anfänger-Themen 2
O Referenz - toString Java Basics - Anfänger-Themen 9
S This-Referenz Java Basics - Anfänger-Themen 6
I Referenz auf Klasse als Rückgabewert Java Basics - Anfänger-Themen 7
P Datentypen LinkedList: Kopie behält Referenz? Java Basics - Anfänger-Themen 3
J Referenz und Instanzierung Java Basics - Anfänger-Themen 25
I Erste Schritte Referenz zum Knoten davor, in einer Liste Java Basics - Anfänger-Themen 4
M Referenz geht bei Zwischenspeichern verloren (ArrayList) Java Basics - Anfänger-Themen 4
8 Referenz (Pointer, Zeiger) in Java Java Basics - Anfänger-Themen 9
O This-Referenz als Returnwert einer Methode? Java Basics - Anfänger-Themen 13
O This Referenz Java Basics - Anfänger-Themen 3
A top referenz bei queues Java Basics - Anfänger-Themen 1
J Rückgabe als Wert, keine Referenz Java Basics - Anfänger-Themen 3
C Dynamische Referenz & abstrakte Klassen Java Basics - Anfänger-Themen 3
T Aufgerufene Methode Inhalt der übergebenen Referenz Java Basics - Anfänger-Themen 5
B Referenz in Java Java Basics - Anfänger-Themen 5
J Methoden Referenz und Speicherplatz für Objekte reservieren Java Basics - Anfänger-Themen 2
M Wie komm ich an die Referenz eines Oberflächenelements Java Basics - Anfänger-Themen 2
M Referenz Frage Java Basics - Anfänger-Themen 12
W Die leidige Referenz-Frage Java Basics - Anfänger-Themen 9
B Arraycopy kopiert nur die Referenz?! Java Basics - Anfänger-Themen 3
S Speicheradresse auf die eine Referenz zeigt ausgeben Java Basics - Anfänger-Themen 12
B Referenz zu anderen Frame Java Basics - Anfänger-Themen 10
Blackskyliner Referenz ähnlicher Zugriff, aber wie? Java Basics - Anfänger-Themen 4
K Klassen this-Referenz und Klassen/Methodenaufruf Syntax Java Basics - Anfänger-Themen 3
C Referenz einer bereits instanziierten Klasse während des Programmablaufs Java Basics - Anfänger-Themen 16
T Referenz einer Variable übergeben Java Basics - Anfänger-Themen 3
B Referenz auf Referenz Java Basics - Anfänger-Themen 3
Luk10 Problem mit Singleton bzw statischer Referenz! Java Basics - Anfänger-Themen 16
H ArrayList Zugriffe per Referenz verkürzen? Java Basics - Anfänger-Themen 9
B Static Referenz auf Non-static Feld Java Basics - Anfänger-Themen 6
Luk10 Sinn von Instanzierung ohne Referenz Java Basics - Anfänger-Themen 7
C0FFEE Referenz auf Methode übergeben Java Basics - Anfänger-Themen 2
aze NullpointerException :Null Referenz anzeigen lassen Java Basics - Anfänger-Themen 2
N this.referenz erläuterung Java Basics - Anfänger-Themen 2
K 3 Threads bearbeiten 1 Referenz: Ich versteh's nicht... Java Basics - Anfänger-Themen 2
P Methode BigInteger-Array übergeben als Referenz Java Basics - Anfänger-Themen 6
U null-referenz Java Basics - Anfänger-Themen 26
deetee Problem mit Referenz auf Map Java Basics - Anfänger-Themen 5
G Interface referenz probleme Java Basics - Anfänger-Themen 10
V Return - JA/NEIN - Parameterübergabe Array (Referenz) Java Basics - Anfänger-Themen 7
D enum und Referenz der umgebenden Klasse Java Basics - Anfänger-Themen 2
C Referenz Java Basics - Anfänger-Themen 11
A ClassNotFoundException: Referenz nicht aktualisiert Java Basics - Anfänger-Themen 2
P Textarea aktualisieren, Referenz fehlt Java Basics - Anfänger-Themen 4
T Die this Referenz Java Basics - Anfänger-Themen 21
C Größe einer Referenz ? Java Basics - Anfänger-Themen 16
D Array reverse Problem, da Referenz nicht auf tmpArray zeigt Java Basics - Anfänger-Themen 4
G primitive Datentypen als Referenz an eine Methode übergeben Java Basics - Anfänger-Themen 2
P Objekte als Attribut: Referenz oder Kopie? Java Basics - Anfänger-Themen 3
G Parameterübergabe als Referenz bzw. als Kopie Java Basics - Anfänger-Themen 4
S Prüfen, ob null Referenz? Java Basics - Anfänger-Themen 2
G Referenz-Problem Java Basics - Anfänger-Themen 3
J Referenz problem Java Basics - Anfänger-Themen 12
D tiefergehende Java-Referenz Java Basics - Anfänger-Themen 3
M Referenz auf Membervariable Java Basics - Anfänger-Themen 5
G Objektübergabe als Referenz bei RMI Java Basics - Anfänger-Themen 2
J referenz auf noch nicht erzeugte objekte? Java Basics - Anfänger-Themen 2
G Rückgabe einer Kopie bzw. Referenz Java Basics - Anfänger-Themen 22
M Parameter als Referenz übergeben Java Basics - Anfänger-Themen 5
F Referenz Pointer oder doch nochmal neu suchen ? Java Basics - Anfänger-Themen 2
K Referenz auf Funktion Java Basics - Anfänger-Themen 6
javasdann Referenz als String ausgeben. Java Basics - Anfänger-Themen 10
B Was ist eine Referenz? Java Basics - Anfänger-Themen 6
Z Zugriff auf Attribute nach Zuweisung einer Referenz Java Basics - Anfänger-Themen 8
L Referenz vs. Kopie Java Basics - Anfänger-Themen 2
G Zeiger/Referenz auf int- Variable Java Basics - Anfänger-Themen 5
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
Rxiiz Objekt aus ComboBox entfernen Java Basics - Anfänger-Themen 4
I JSON in Objekt umwandeln Java Basics - Anfänger-Themen 3
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
B Objekt aus generalisierter Liste entfernen Java Basics - Anfänger-Themen 11
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
Say Objekt Java Basics - Anfänger-Themen 4
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben