traf ich ein Problem, ich habe zwei Klasse class A
und class B
sie wie folgt aussehen:Java - Wenn Klasse A die Klasse B aufrufen, in Klasse B wie kann ich die Methode und das Attribut der Klasse A verwenden?
class A{
private String s;
public a1(){
// do something with s
B b = new B();
b.b1();
// do others things
}
public a2(){
// this needs s which has been initialised in method a1
}
}
class B{
public b1(){
// do something
// here, how can I call method a2 and use String s in a2?
A a = new A();
a.a2();
// ...
}
}
Wie kann ich den Wert von String s
halten, wenn wir die Methode a2 nennen? Und ich mag nicht b.b1(s)
in a2 und a.a2(s)
in b1 verwenden.
Vielen Dank für Ihre Vorschläge.
Huh? Wenn "s" ein Datenelement der Klasse A ist, warum glauben Sie dann, dass a2() keinen Zugriff auf s hat? Ihre Klassendefinitionen sind sehr seltsam - sieht aus wie eine zirkuläre Abhängigkeit. A verwendet B und B verwendet A. Vielleicht müssen Sie überdenken, was Sie erreichen möchten. Und geben Sie Klassen sinnvolle Namen. – OldProgrammer
@OldProgrammer danke, ich dachte in Klasse B wir machen neue Instanz ('A a = new A(); a.a2();'), so denke ich, in dieser neuen Instanz kann es keinen Zugang zu haben s. Mache ich einen Fehler? –
@ShireResident danke, ich habe Ihren Punkt, das Problem ist, wie kann ich das gleiche 's' in Klasse B verwenden, wenn es die Methode a2 aufrufen? –