Java自學入門之靜態變數
靜態變數
在定義一個類時,只是在描述某類事物的特徵和行為,並沒有產生具體的資料。只有通過new關鍵字建立該類的例項物件後,系統才會為每個物件分配記憶體空間,儲存各自的資料。有時候,開發人員會希望某些特定的資料在記憶體中只有一份,而且能夠被一個類的所有例項物件所共享。例如某個學校所有學生共享同一個學校名稱,此時完全不必在每個學生物件所佔用的記憶體空間中都宣告一個變數來表示學校名稱,而可以在物件以外的空間宣告一個表示學校名稱的變數,讓所有物件來共享。
具體記憶體中的分配情況如圖1所示。
圖1 靜態變數記憶體分配圖
從圖1可以看出,所有學生物件共享一個名稱為schoolName的變數。在一個Java類中,要實現這種功能可以使用static關鍵字來修飾成員變數,該變數被稱作靜態變數,它可以被所有例項所共享。
靜態變數可以使用如下語法來訪問:
類名.變數名
瞭解了靜態變數的宣告和訪問方式後,接下來通過一個案例來實現圖3-18所描述的情況,如檔案1所示。
檔案1 Example12.java
1 class Student { 2 static String schoolName; // 宣告靜態變數schoolName 3 } 4 public class Example12 { 5 public static void main(String[] args) { 6 Student stu1 = new Student(); // 建立第1個學生物件 7 Student stu2 = new Student(); // 建立第2個學生物件 8 Student.schoolName = "清華大學"; // 為靜態變數賦值 9 // 分別輸出兩個學生物件的資訊 10 System.out.println("我是" + stu1.schoolName+"的學生"); 11 System.out.println("我是" + stu2.schoolName+"的學生"); 12 } 13 }
相關文章
- Java逆向基礎之靜態變數存取Java變數
- 靜態變數和非靜態變數變數
- Java靜態變數塊使用案例Java變數
- Java靜態變數在靜態方法內部無法改變值Java變數
- 靜態變數變數
- 靜態變數與靜態方法變數
- java執行緒安全問題之靜態變數、例項變數、區域性變數Java執行緒變數
- 自學Java如何入門?Java
- Java入門學習-學會使用靜態變數、掌握單例模式的用法和原理Java變數單例模式
- java優化程式設計-靜態變數Java優化程式設計變數
- 【C++】靜態持續變數?如何建立靜態持續變數?C++變數
- 靜態持續變數變數
- 靜態變數和Session變數Session
- java靜態變數和靜態函式是否可以被繼承,重寫!Java變數函式繼承
- Java靜態匯入Java
- C語言區域性變數、全域性變數、靜態區域性變數、靜態全域性變數C語言變數
- Asp.Net Core入門之靜態檔案ASP.NET
- 區域性變數和全域性變數(靜態和非靜態)區別變數
- static靜態變數的理解變數
- js中的靜態變數JS變數
- 靜態全域性變數和全域性變數變數
- 靜態變數和例項變數區別?變數
- PHP類的靜態(static)方法和靜態(static)變數PHP變數
- APK加固之靜態脫殼機編寫入門APK
- Java代理之靜態代理Java
- 自學人工智慧之數學篇,數學入門並不難人工智慧
- 全域性變數和靜態變數的區別變數
- Java初始化靜態變數的時間順序Java變數
- Java入門系列-04-java中的變數Java變數
- 函式的靜態變數 static函式變數
- C/C++ 靜態變數解析C++變數
- PHP的靜態變數介紹PHP變數
- VBA靜態變數與常量(轉)變數
- 自學 Java 怎麼入門,怎麼從入門到精通?Java
- java 反射之操作靜態MethodJava反射
- C#靜態建構函式及靜態變數學習C#函式變數
- 遞迴程式中的靜態變數遞迴變數
- asp.net中使用靜態變數ASP.NET變數