Wie greife ich in Java auf Variablen anderer Klasse zu?

5 Antworten

Die Klasse, in der cash enthalten ist, steuert den Zugriff (die Sichtbarkeit) auf die Variable. Wenn du die Kontrolle über die Klasse hast, die die Variable cash beherbergt, kannst du die Variable public definieren oder eine Eigenschaft mit Getter deklarieren oder über Vererbung an die Variable heran kommen.

Woher ich das weiß:Berufserfahrung – Programmierer

Auf (öffentliche) Instanzvariablen einer anderen Klasse kannst du mit objekt.variable bzw. bei statischen Klassen mit klasse.variable zugreifen.

Macht man aber meistens anders, nämlich mit getter-Methoden. Die Instanzvariablen an sich sind private, es gibt allerdings eine Methode in der entsprechenden Klasse, die diese zurückliefert:

public class XYZ {
   private int cash;
   [...]
   public int getCash(){
      return cash;
   }
   [...]
}

Die Methode getCash() ist public und dementsprechend auch von anderen Klassen aus aufrufbar.

Woher ich das weiß:Berufserfahrung – Software-Entwicklung

Wenn du von einer Oberklasse(Bei vererbung) darauf zugreifen willst, kannst du protected statt private benutzen.

Falls nicht musst du(wie allgemein üblich) mit Setter und Getter Methoden arbeiten.

Das sind Methoden , die du in der Klasse definierst, in der die Variable ist.

Mit der Setter-Methode setzt du eine Variable auf einem in den Parametern angegebenen Wert.

z.B.: public void setCash(double newCash){

cash=newCash;

}

Mit der Getter-Methode gibst du den Wert der Variable zurück.

z.B.:public double getCash(){

return cash;

}

Wenn du Variablen einer anderen Klasse ändern möchtest, stelle in der jeweiligen Klasse einen setter (und getter) bereit und nutze diese um den Wert zu ändern z.B.:

class MyClass {
   private double cash;

   public double getCash(){...};
   public void setCash(double cash) {...};
}
class Shop {
   void test() {
       MyClass cls = new MyClass();
       cls.setCash(2.50);
   }
}

Getter-Methoden einbauen, Sichtbarkeit ändern oder Erben.