Willkommen zurück zur Java Keywords Essentials-Reihe! In diesem Beitrag dreht sich alles um statische Variablen – eine leistungsstarke Funktion in Java, die es Ihnen ermöglicht, Daten über mehrere Objekte derselben Klasse hinweg zu teilen.
Wir gehen durch den Zweck, das Verhalten und die wichtigsten Anwendungsfälle statischer Variablen, mit praktischen Beispielen und Erkenntnissen. In einem separaten Beitrag gehen wir auf statische Methoden ein, um Sie nicht mit zu viel Inhalt zu überfordern.
Dieser Beitrag baut auf Konzepten auf, die in früheren Beiträgen besprochen wurden. Ich empfehle die Lektüre von Final Keyword und Static Blocks, um ein tieferes Verständnis der hier behandelten Themen zu erlangen.
Eine statische Variable gehört zur Klasse und nicht zu einer einzelnen Instanz. Es wird von allen Objekten der Klasse gemeinsam genutzt und behält für alle Objekte den gleichen Wert.
package keywords.static_keyword; public class StaticVariables { // Static variable: Shared across all instances of the class // Automatically initialized to default value on class loading static int idCounter; // int default value -> 0 // Static final variables // Must be initialized at declaration or in a static block static final String COMPANY_NAME = "TechCorp"; static final String OFFICE_CODE; // Instance variables: Unique to each object int employeeId; String employeeName; // Static final variable Initialized in a static block static { // Default region: US String region = System.getProperty("user.region", "US"); switch (region) { case "EU": regionalOfficeCode = "EU-01"; break; case "APAC": regionalOfficeCode = "AP-11"; break; default: regionalOfficeCode = "US-00"; } System.out.println("Static Block Invoked: Office Code set to " + regionalOfficeCode); } // Constructor: Assigns a unique ID to each object public StaticVariables(String name) { this.employeeName = name; this.employeeId = ++idCounter; // Incrementing the shared counter } // Instance method // Displays instance details along with shared data(static variables) void displayEmployeeDetails() { System.out.println("Employee ID: " + employeeId + ", Name: " + employeeName + ", Company: " + COMPANY_NAME + ", Office Code: " + OFFICE_CODE); } public static void main(String[] args) { // Creating instances to observe static variable behavior StaticVariables emp1 = new StaticVariables("Alice"); StaticVariables emp2 = new StaticVariables("Bob"); emp1.displayEmployeeDetails(); emp2.displayEmployeeDetails(); // Accessing the static variable directly using the class name System.out.println("Total Employees: " + StaticVariables.idCounter); } }
Static Block Invoked: Office Code set to US-00 Employee ID: 1, Name: Alice, Company: TechCorp, Office Code: US-00 Employee ID: 2, Name: Bob, Company: TechCorp, Office Code: US-00 Total Employees: 2
Statische Variablen:
Statische Endvariablen:
Statischer Block:
Instanzvariablen und -methoden:
Zugriff auf statische Variablen auf Klassenebene:
package keywords.static_keyword; public class StaticVariables { // Static variable: Shared across all instances of the class // Automatically initialized to default value on class loading static int idCounter; // int default value -> 0 // Static final variables // Must be initialized at declaration or in a static block static final String COMPANY_NAME = "TechCorp"; static final String OFFICE_CODE; // Instance variables: Unique to each object int employeeId; String employeeName; // Static final variable Initialized in a static block static { // Default region: US String region = System.getProperty("user.region", "US"); switch (region) { case "EU": regionalOfficeCode = "EU-01"; break; case "APAC": regionalOfficeCode = "AP-11"; break; default: regionalOfficeCode = "US-00"; } System.out.println("Static Block Invoked: Office Code set to " + regionalOfficeCode); } // Constructor: Assigns a unique ID to each object public StaticVariables(String name) { this.employeeName = name; this.employeeId = ++idCounter; // Incrementing the shared counter } // Instance method // Displays instance details along with shared data(static variables) void displayEmployeeDetails() { System.out.println("Employee ID: " + employeeId + ", Name: " + employeeName + ", Company: " + COMPANY_NAME + ", Office Code: " + OFFICE_CODE); } public static void main(String[] args) { // Creating instances to observe static variable behavior StaticVariables emp1 = new StaticVariables("Alice"); StaticVariables emp2 = new StaticVariables("Bob"); emp1.displayEmployeeDetails(); emp2.displayEmployeeDetails(); // Accessing the static variable directly using the class name System.out.println("Total Employees: " + StaticVariables.idCounter); } }
In diesem Beitrag haben wir statische Variablen untersucht – eine grundlegende Funktion, die einen gemeinsamen Status über Instanzen hinweg ermöglicht. Das Verständnis statischer Variablen hilft dabei, effizienteren Code zu schreiben, insbesondere bei der Verwaltung von Daten, die über mehrere Objekte hinweg konsistent bleiben müssen.
Im nächsten Beitrag werden wir uns eingehend mit statischen Methoden befassen und deren Verhalten, Einschränkungen und Best Practices untersuchen.
Java-Grundlagen
Array Interview Essentials
Java Memory Essentials
Collections Framework Essentials
Viel Spaß beim Codieren!
Das obige ist der detaillierte Inhalt vonStatisches Schlüsselwort: Dekodierung statischer Variablen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!