Ich darf Klasse A nicht ändern, aber ich muss den Wert von 'a' bekommen (im Konstruktor gesetzt). Kann mir jemand sagen, wie ich das mache? Jede andere Lösung scheint mir erlaubt ist nicht für die Öffentlichkeit in keiner Weise, kein Wechsel zu Änderungen an der Klasse A einen Getter in der Klasse A. vorzuschlagen usw. Die Magie in der Klasse B passieren hatjava: private Variable aus einer anderen Klasse holen, ohne einen Getter zu setzen
public class A{
private int a;
public A(int x){
a = x * 10;
}
}
public class B{
public B(int x){
A instA = new A(x);
}
public int geta(){
???
}
}
PS: Diese Frage wurde geposted, weil jede ähnliche Frage mit der Änderung der Klasse A beantwortet wurde, obwohl ich das nicht tun darf. Aber da es nur Nachdenken zu geben scheint, kann diese Frage geschlossen werden. Danke Jungs und Mädels.
Wenn die Membervariable privat ist, ist die einzige Möglichkeit, auf sie zuzugreifen, eine Methode. –
Sie dürfen keinen Getter zu A hinzufügen, aber dürfen Sie A in irgendeiner Weise modifizieren? Wenn dies der Fall ist, könnten Sie 'private int a;' in 'public int a;' ändern. Bitte geben Sie auch an, WARUM Sie keinen Getter hinzufügen dürfen. –
siehe: http://stackoverflow.com/questions/1196192/how-do-i-read-a-private-field-in-java –