How To make Geltungsbereich der variable Global(Ohne dass es eigentlich Global)
Wie kann ich Rahmen einer String-Variablen(In Java) global.So, dass es von einem anderen aus zugreifen-Funktion
ZB
//String b="null"; I don't want to do this... because if i do this, fun2 will print Null
public int func1(String s)
{
String b=s;
}
public int func2(String q)
{
System.out.println(b);//b should be accessed here and should print value of s
}
Jede Hilfe... Danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eines der grundlegenden Konzepte in OOP ist das Konzept der Anwendungsbereich: in fast allen Fällen ist es ratsam zur Verringerung der Gültigkeitsbereich einer Variablen (d.h., wo es sichtbar ist), um seine minimale lebensfähige Auswahl.
Ich werde davon ausgehen, dass Sie absolut erfordern, dass die variable in beiden Funktionen. Also, das minimum viable scope in diesem Fall würde für beide Funktionen.
Je nach der situation, die Sie beurteilen muss, die erforderlich Gültigkeitsbereich einer Variablen, und Sie müssen verstehen, die Auswirkungen der Erhöhung des Umfangs (mehr access = potenziell mehr Abhängigkeiten = schwerer zu verfolgen).
Als ein Beispiel, sagen wir Ihnen absolut erforderlich, dass es eine GLOBALE variable (so wie du es nennst in deiner Frage). Eine variable mit Globalem Gültigkeitsbereich zugegriffen werden kann, indem Sie alles innerhalb der Anwendung. Dies ist außerordentlich gefährlich, das werde ich unter Beweis stellen.
Eine variable mit globalem Gültigkeitsbereich (es gibt keine solche Dinge wie Globale Variablen, genau, in Java) erstellen Sie eine Klasse mit einer statischen variable.
Wenn ich das alter der original-code, es würde nun so Aussehen.
Dies kann eine außergewöhnlich leistungsstarke und außerordentlich gefährlich, wie es kann dazu führen, seltsames Verhalten, dass Sie nicht erwarten, und Sie verlieren viele der Fähigkeiten, die der Objekt-orientierten Programmierung gibt Ihnen, so verwenden Sie es sorgfältig.
Immer beurteilen, das minimum viable scope für Variablen. Macht es nicht mehr zugänglich, als es sein muss.
Bitte auch nicht die Namen der Variablen a,b,c. Und nicht die Namen Ihrer Variablen func1,func2. Es ist nicht Ihre Anwendung jede langsamer, und es nicht töten, werden Sie in ein paar Buchstaben.
Hmm. Natürlich müssen Sie einige Lektionen in der objektorientierten Programmierung. In OO gibt es keine "globalen" Variablen. Aber jede variable, die definiert, wie ein Mitglied in einer Klasse außerhalb einer Methode) ist das weltweit in dieser Klasse.
So func2 ausgegeben wird der Wert von s NUR dann, WENN Sie call func1 ersten.
Auch, warum sind die Methoden zurückgeben int in deinem Beispiel? Sie sollten nichtig sein.
func1()
.