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執行緒變數
- 自動化漏洞挖掘:靜態程式分析入門
- 【C++】靜態持續變數?如何建立靜態持續變數?C++變數
- 自學Java如何入門?Java
- Asp.Net Core入門之靜態檔案ASP.NET
- 自學人工智慧之數學篇,數學入門並不難人工智慧
- 區域性變數和全域性變數(靜態和非靜態)區別變數
- Java代理之靜態代理Java
- Java初始化靜態變數的時間順序Java變數
- Java入門系列-04-java中的變數Java變數
- java 反射之操作靜態MethodJava反射
- Spring如何為靜態變數注入值Spring變數
- 對於systemverilog靜態變數和動態變數 ,描述不正確的是()。變數
- 自學 Java 怎麼入門,怎麼從入門到精通?Java
- Java 反射修改類的常量值、靜態變數值、屬性值Java反射變數
- C語言--靜態區域性變數C語言變數
- 普通人轉行程式設計師之自學java入門篇行程程式設計師Java
- 偽靜態網頁有什麼功能作用?學Linux如何入門網頁Linux
- TensorFlow入門 - 變數(Variables)變數
- 成員變數、全域性變數、例項變數、類變數、靜態變數和區域性變數的區別變數
- 關於單例及靜態變數測試單例變數
- Java靜態代理Java
- Shell 入門系列 (一): 變數變數
- Go 快速入門指南 - 變數Go變數
- ES6入門之變數的解構賦值變數賦值
- JAVA入門必學Java
- [java基礎]之變數Java變數
- java入門第一季_1.2_java環境變數配置Java變數
- Linux入門靜態網頁資源有哪些特徵?Linux運維學多久Linux網頁特徵運維
- 《Flask 入門教程》第 4 章:使用靜態檔案Flask
- Java入門系列之finalJava
- JAVA 靜態代理 & 動態代理Java
- 奇偶個數(Java入門)Java
- Java靜態代理模式Java模式
- 機器學習入門:多變數線性迴歸機器學習變數