static 關鍵字的用法


有些時候,我們需要在jvm 中維護一份共享數據,使得每個使用對象的人,都能共享這份數據,這個時候怎么辦呢,就需要使用靜態成員變量。

靜態的成員變量只會在數據共享區中維護一份,而非靜態成員變量的數據會在每個對象中都維護一份的。。

static(靜態\修飾符)

1. static修飾成員變量 :如果有數據需要被共享給所有對象使用時,那么就可以使用static修飾。

靜態成員變量的訪問方式:

方式1: 可以使用對象進行訪問。
格式: 對象.變量名。

方式二: 可以使用類名進行訪問。
格式: 類名.變量名;

注意:
1. 非靜態的成員變量只能使用對象進行訪問,不能使用類名進行訪問。
2. 千萬不要為了方便訪問數據而使用static修飾成員變量,只有成員變量的數據是真正需要被共享的時候
才使用static修飾。

static修飾成員變量的應用場景: 如果一個數據需要被所有對象共享使用的時候,這時候即可好實用static修飾。

內存圖
2. static修飾成員函數:

 

static 修飾成員函數的應用

統計一個類被使用了多少次創建對象,該類對外顯示被創建的次數。

 

package ViewTest;

 

public class Count {
public static void main (String[] args){
ds a = new ds();
ds b = new ds();
ds c= new ds();
ds d = new ds(4);
}
}

 

class ds{
public static int number =0;
ds(){
number++;
System.out.println(number);
}
ds(int c){
number++;
System.out.println(number);
}
}

在上述代碼中,由於構造函數會在每次對象創建時候,都會執行一次,因此,計數器應寫在構造函數中;如果一個類中有多個構造函數的話,那么,

在創建對象過程中,就不一定會調用哪個構造函數了,因此,計數器需要在每個構造函數中都維護一份,這時候應該聯想到知識點,構造代碼塊。程序可以將

每個構造函數中維護的number++技術器,放到構造代碼塊中,這樣,無論創建對象時調用哪個構造函數,都不會影響計數器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM