So erstellen Sie globale Variablen
Globale Variablen sind Variablen, auf die von überall in der Anwendung aus zugegriffen werden kann. Mit anderen Worten: Ihr Geltungsbereich umfasst die gesamte Anwendung. Um eine solche Variable in Java zu erstellen, müssen Sie eine öffentliche statische Variable in einer öffentlichen Klasse erstellen:public class Example {
public static int a;
public static int b;
public static String str;
}
Die Variablen a
, b
und str
- sind global geworden. Wir können direkt von anderen Klassen innerhalb der Anwendung darauf zugreifen:
public class GlobalVarsDemo {
public static void main(String[] args) {
Example.a = 4;
Example.b = 5;
Example.str = "Global String variable value";
System.out.println(Example.a);
System.out.println(Example.b);
System.out.println(Example.str);
}
}
Wenn wir die Methode ausführen main
, sehen wir die folgende Ausgabe:
4
5
Global String variable value
Globale Variablen können in zwei Typen unterteilt werden:
- Variablen, die bearbeitet werden können;
- Variablen, die nur gelesen werden können.
final
und ihr beim Definieren der Variablen einen Wert zuweisen:
public class Constants {
public static final double PI = 3.1415926535897932384626433832795;
public static final String HELLO_WORLD_STR = "Hello, World!";
}
Gemäß der Java-Namenskonvention müssen alle Konstanten in Großbuchstaben benannt werden, wobei Wörter durch einen Unterstrich getrennt werden müssen. Wir haben also Konstanten erstellt und können ihre Werte jetzt nicht mehr ändern. Wir können ihre Werte jedoch lesen:
public class HelloWorld {
public static void main(String[] args) {
System.out.println(Constants.HELLO_WORLD_STR);
}
}
Abschluss:
Hello, World!
public class ConstantsDemo {
public static void main(String[] args) {
double r = 10;
String message = String.format("Площадь круга с радиусом %f=%f", r, getCircleSquare(r));
System.out.println(message);
}
static double getCircleSquare(double r) {
return Constants.PI * r * r;
}
}
Abschluss:
Площадь круга с радиусом 10,000000=314,159265
Sollten Sie globale Variablen verwenden?
Es gibt viele Artikel im Internet, deren Hauptbotschaft diese lautet: Globale Variablen sind böse, schlecht und schrecklich. Ist das wirklich? Versuchen wir, die Vor- und Nachteile globaler Variablen darzulegen, damit jeder seine eigenen Schlussfolgerungen ziehen kann. Beginnen wir mit den Nachteilen. Stellen wir uns eine Anwendung vor, die über eine Klasse mit globalen Variablen verfügt, die gelesen und bearbeitet werden können. Mit der Zeit wächst die Anzahl der Klassen im Projekt, die Anzahl globaler Variablen und Methoden, die globale Variablen verwenden, also von ihnen abhängen. Im Laufe der Zeit wird jede globale Variable in verschiedenen Teilen des Systems für unterschiedliche Zwecke gelesen. Der Wert einer Variablen kann in verschiedenen Teilen des Systems aktualisiert werden. Das Gesamtbild der Welt dieser Anwendung wird deutlich komplizierter, was zu folgenden Nachteilen führt :- Reduzierte Lesbarkeit und erhöhte Schwierigkeiten beim Verstehen des Codes.
- Erhöhte Komplexität der Codepflege.
- Um eine globale Variable zu ändern, muss der gesamte Code analysiert werden, um die Variable nicht auf einen Wert zu setzen, der für andere Teile des Systems ungültig ist.
- Zunahme von Fehlern, die sehr schwer zu debuggen sind.
Stellen wir uns eine globale Variable vor, ein Array von Objekten. In einem Teil des Systems werden beispielsweise Strings in diesem Array erwartet, und in einem anderen Teil des Systems hat sich jemand für die Verwendung von Gleitkommazahlen entschieden. Es ist unwahrscheinlich, dass irgendjemand das verstehen möchte.
- Die Variablennamen können identisch sein, wenn Sie in Ihrem Code globale Variablen verwenden, sowie bei einigen Bibliotheken, die wiederum auch globale Variablen verwenden. Dies kann sowohl auf der Seite Ihrer Anwendung als auch auf der Seite der von Ihnen verwendeten Bibliothek zu Fehlern führen.
- Erhöht die Konnektivität zwischen verschiedenen Teilen des Systems, die globale Variablen verwenden. Im Gegenteil, Sie sollten eine lockere Kopplung des Codes anstreben. Es ist besser, viele kleine Subsysteme lose miteinander zu verbinden, als nur ein großes Ding. Weil es für das Gehirn einfacher ist, mit mehreren einfachen Dingen umzugehen, als mit einer zu komplexen und verwirrenden Sache.
- Das Schreiben von Komponententests wird schwieriger, da der Test nicht weiß, welche globalen Variablen benötigt werden und wie sie initialisiert werden müssen.
- In Multithread-Anwendungen führt die Verwendung globaler Variablen durch verschiedene Threads zu einer Zunahme schwer zu debuggender Fehler und zu einer Erhöhung der Projektkomplexität. Aus diesem Grund ist es notwendig, den Zugriff auf solche Variablen korrekter zu konfigurieren und sie mit Synchronisierungen und Sperren auszustatten. Dies kann in Zukunft zu Kurzschlüssen führen. Beispielsweise hat Thread A die Variable
- In kleinen Projekten sind globale Variablen die einfachste Möglichkeit, das Projekt zum Laufen zu bringen.
- Manchmal führt die Angst vor der Verwendung globaler Variablen zu noch mehr Komplexität im Projekt. Dann beginnen Programmierer, Singletons zu erstellen und auf andere Entwurfsmuster zurückzugreifen.
- Beim Programmieren muss man sich oft auf einige unveränderliche Werte verlassen.
Am sinnvollsten ist es, solche Werte als Konstanten zu schreiben, denn nur Konstanten garantieren, dass sich der Wert einer Variablen im Laufe der Zeit nicht ändert. Solche Konstanten können ständig gefunden werden (
Integer.MAX_VALUE
,Integer.MIN_VALUE
,Boolean.TRUE
usw.Collections.EMPTY_LIST
). Die Programmierung beschränkt sich jedoch nicht nur auf die Verwendung von Standardbibliotheken. Es kommt oft vor, dass Sie eine einzigartige Logik schreiben müssen, die auf Ihren eigenen einzigartigen Konstanten basieren muss. Deshalb macht die Verwendung von Konstanten (schreibgeschützte globale Variablen) manchmal das Leben wirklich einfacher.
- Alles, was ein unerfahrener Entwickler schreibt, ist im Wesentlichen ein kleines Projekt. Und die Verwendung globaler Variablen in seinen Projekten wird ihm beibringen, überall globale Variablen zu verwenden.
- Besser ist es, erst einmal zu lernen, auf „verbotene Tricks“ zu verzichten. Und mit zunehmender Erfahrung wird das Verständnis dafür, wann der Einsatz solcher Techniken angemessen ist, von selbst kommen.
GO TO FULL VERSION