Zugriff auf Variablen anderer Klassen

  • Themenstarter Themenstarter balzac
  • Beginndatum Beginndatum
B

balzac

Gast
Hall Zusammen,

ich habe eine Klasse A mit einer private-Variable:
Java:
public Class A {

private static final int HOUR_OF_DAY = 11;

}

Wie kann ich nun auf diese Variable von der Klasse B zugreifen?
Java:
public Class B {

public static int getVariable() {
????
}

Muss ich in der Klasse A ein Objekt erzeugen? ==> A obj = new A();
 
Gar nicht. (zumindest ohne weiteres.)

Entweder du bietest eine Getter Methode an, oder du machst die Variable public. Wäre bei einer static final Konstante nicht unüblich.

Java:
public Class A {
 
private static final int HOUR_OF_DAY = 11;
 
public int getHourOdDay(){
  return HOUR_OF_DAY;
}

}

In B dann halt:

Java:
public Class B {
 
public static int getVariable() {
  return new A().getHourOfDay();
}

Oder halt:

Java:
public Class B {
 
public static int getVariable() {
  return  A.HOUR_OF_DAY ;
}


Allerdings erschließt sich mir der Sinn von getVariable nicht?
 
Zuletzt bearbeitet von einem Moderator:
Java:
public Class B {
 
public static int getVariable() {
  return new A().getHourOfDay();
}

Aber was möchtest du denn erreichen? Das macht eigentlich überhaupt keinen Sinn? Du definierst eine static final int Konstante. Die wird sich NIEMALS* ändern. Also kannst du die auch problemlos public deklarieren und dann in B einfach über A.HOUR_OF_DAY bekommen. Nur eine Instanz von A zu erzeugen um über den Getter die Konstante zu bekommen ist nicht wirklich nützlich.

* Manipulationen über Reflektion oder Bytecode Manipulationen mal ausgenommen.

Und deine Methode getVariable in B ist ja wieder static. Bist du dir im klaren was static eigentlich bedeutet?
 
Stimmt, das ist Blödsinn.

Eine andere Frage:

Wie greife ich mittels Getter auf die private Variable innerhalb einer Klasse?

Java:
public Class A {
 
private static final int HOUR_OF_DAY = 11;
 
public int getHourOfDay(){
  //Getter?
}
 
}
 
Hatte ich doch in meinem ersten Posting schon gezeigt:

Java:
public Class A {
 
private static final int HOUR_OF_DAY = 11;
 
public int getHourOfDay(){
  return HOUR_OF_DAY;
}
 
}

Aber auch das macht sehr wenig Sinn. Was möchtest du denn erreichen?
 

Zurück
Oben