Variablen Variablen in mehreren Klassen nutzen

Phy

Mitglied
Heyho,

also es ist mir etwas peinlich, da ich glaube es ist die totale noob Frage aber gut:


Wie kann ich mehrere Variablen in mehreren Klassen bearbeiten und verwenden?
Ich Ziel ist, dass ich eine Variable X in einer Klasse Y erstelle und wenn ich in einer anderen Klasse Z eine Method ausführe, sie diese Variable X auslesen und verändern kann. Danach will ich die Variable X (oder auch irgendeine andere) in der vorherigen Klasse Y auslesen und auf eine Speichervariable legen. Dann will ich die Variable X wieder ändern und die Method in Klasse Z erneut ausführen, sie soll aber diesmal mit der geänderten Variable X hantieren.
Den Ablauf dann ein paar mal.

Ich habe wirklich versucht in diesem und in anderen Foren antworten darauf zu finden.
Die bisherigen Erfolge sind eher gering. Ich habe es mit einem Interface versucht, bin da aber daran gescheitert, dass ich die Variablen nicht mehr ändern kann. Kennt jemand eine Lösung, oder auch nur ein Stichwort, über das ich mich diesbezüglich mal dringenst informieren sollte?

Schonmal danke im voraus an alle, die ihr Gehirnleistung hierdrauf verschwenden.

Phy
 
S

SlaterB

Gast
das Stichwort ist die Beschäftigung mit Java, mit Objektorientierung an sich überhaupt,
was kann man in Java machen, wenn nicht mit anderen Objekten interagieren, Informationen abfragen und zurückgeben?

schaue dir
Listing 3.1: PlayerAndDoorAsPoints.java
in
Galileo Computing :: Java ist auch eine Insel - 3 Klassen und Objekte
3.4.4 Zugriff auf Objektattribute und -methoden mit dem ».«
ziemlich weit am Anfang an

da gibt es zwar nicht zwei Klassen, sondern nur eine und main-Methode, aber das ist ja ähnlich


dein Objekt der Klasse Z braucht eine Referenz auf das Objekt der Klasse Y,
dann kann es dort auf das Attribut X oder auf Methoden zugreifen
 
F

Firephoenix

Gast
Du könntest Z eine Referenz auf Y mitgeben:

Java:
public class Y{
int x;
}

public class Z{
Y y;

public Z(Y y){
this.y = y;
}

public method(){
int x = y.getX();
//irgendwas mit x machen
}

}

Instanzieren könnte man das ganze dann so:
Java:
Y y = new Y();
Z z = new Z(y);
z.method();

(Getter, Setter und die Access-Modifier habe ich mal ausgelassen der Übersicht halber)

Gruß
 

Phy

Mitglied
Ja das mit den Set- und Get-Methoden muss ich mir unbedingt noch anlesen.
Auch den Sinn von Constructorn hab ich noch nicht so ganz raus.. aber naja kann ja alles noch werden ^^.

Ich hab es jetzt per Referenz geregelt und so geht es ja auch ganz gut.
Ich glaub Java per Youtube Videos zu lernen hat den Nachteil, das man von den oben genannten Methoden ganz einfach noch nie etwas gehört hat. ???:L

Naja einfach mehr lesen. Danke für die Antworten.:toll::applaus:
 

Robokopp

Bekanntes Mitglied
Ja das mit den Set- und Get-Methoden muss ich mir unbedingt noch anlesen.
Auch den Sinn von Constructorn hab ich noch nicht so ganz raus.. aber naja kann ja alles noch werden ^^.

Ich hab es jetzt per Referenz geregelt und so geht es ja auch ganz gut.
Ich glaub Java per Youtube Videos zu lernen hat den Nachteil, das man von den oben genannten Methoden ganz einfach noch nie etwas gehört hat. ???:L

Naja einfach mehr lesen. Danke für die Antworten.:toll::applaus:

Es ist vlt einfacher als du dir vorstellst. Der Konstruktor ist einfach nur die "Methode", die mit dem erstellen eines Objektes aufgerufen wird . Hier kannst du z.b. Werte übergeben, die zur Definition deines Objekts beitragen. breite,Höhe Position etc.

Getter und Setter sine im Prinzip einfach nur Methoden um variablen auszulesen oder zu setzen

Gesendet von meinem GT-I9100 mit Tapatalk 2
 
F

Firephoenix

Gast
Oder mal ganz hart auf Objekte runtergebrochen:

Wenn du ein neues Auto baust benötigst du dafür einen Motor, eine Karosserie und Räder, solche "Bauprozesse" kannst du über den Konstruktor erledigen:

Java:
Motor m = ...;
Karosserie k = ...;
Raeder r = ...;

Auto a = new Autor(m, k, r); //Neues Auto mit den gegebenen Komponenten erstellen

Das Auto kann die Komponenten intern "speichern" und wieder darauf zugreifen.
Willst du nachträglich noch auf die Komponenten direkt zugreifen könntest du setter und getter einfügen (dazu findet man genug Material denke ich, das Prinzip ist immer gleich).
Möglich wäre also (vorrausgesetzt auto legt den Motor intern ab und bietet einen getter-Methode dafür an):

Java:
Auto a = ... ;
Motor m = a.getMotor();
m.starten(); //Diesen starten

Mit settern kannst du dann nachträglich die Attribute gegen neue Versionen austauschen:
Java:
Motor doppeltSoSchnellerMotor = ... ;
Auto a = ...;
a.setMotor(doppeltSoSchnellerMotor);

Gruß
 

Neue Themen


Oben