㈠ java 類變數 靜態變數
publicclassDemo
{
privateinta;//實例變數
privatestaticinta;//靜態變數(也叫類變數)
publicvoidfun1(){
//這個是實例方法
}
publicvoidstaticfun2(){
//這個是靜態方法(類方法)
}
}
publicstaticvoidmain(String[]args){
//這里調用實例方法
Demodemo=newDemo();
demo.fun1();
//這里調用靜態方法
Demo.fun2();
}
㈡ java中什麼方法可以定義靜態變數
java中什麼方法可以定義靜態變數
靜態變數
可以將靜態變數理解為類變數(與對象無關),而實例變數則屬於一個特定的對象。
靜態變數有兩種情況:
靜態變數是基本數據類型,這種情況下在類的外部不必創建該類的實例就可以直接使用
靜態變數是一個引用。這種情況比較特殊,主要問題是由於靜態變數是一個對象的引用,那麼必須初始化這個對象之後才能將引用指向它。因此如果要把一個引用定義成static的,就必須在定義的時候就對其對象進行初始化。
靜態方法
與類變數不同,方法(靜態方法與實例方法)在內存中只有一份,無論該類有多少個實例,都共用一個方法。
靜態方法與實例方法的不同主要有:
靜態方法可以直接使用,而實例方法必須在類實例化之後通過對象來調用。
在外部調用靜態方法時,可以使用「類名.方法名」或者「對象名.方法名」的形式。實例方法只能使用後面這種方式。
靜態方法只允許訪問靜態成員。而實例方法中可以訪問靜態成員和實例成員。
靜態方法中不能使用this(因為this是與實例相關的)。
㈢ Java中靜態常量和靜態變數的區別
靜態變數是屬於靜態存儲方式,但是屬於靜態存儲方式的量不一定就是靜態變數,例如外部變數雖屬於靜態存儲方式,但不一定是靜態變數,必須由static加以定義後才能成為靜態外部變數,或稱靜態全局變數。
對於自動變數,它屬於動態存儲方式。但是也可以用static定義它為靜態自動變數,或稱靜態局部變數,從而成為靜態存儲方式。由此看來,一個變數可由static進行再說明,並改變其原有的存儲方式。
而在以Pascal為代表的許多程序語言中,所有局部變數都由系統自動分配存儲空間,而所有全局變數的存儲空間則以靜態分配的方式獲取,因此由於實際上「局部變數」和「全局變數」這兩個術語已足以涵蓋所有的情況,在這些程序語言中通常不使用「靜態變數」這一術語,而直接以「全局變數」代之。
在這些程序語言中,靜態變數就是全局變數,而即使在有明確區分全局和靜態變數的程序語言中,在編譯後的代碼里二者也以相同的方式獲取存儲空間。而今術語「靜態變數」的概念則主要基於C族語言的「static」的定義。
靜態變數也可以用於存儲常數。具體來說,靜態變數可用const,constant或final等關鍵字標識,這時其值就會在編譯時設定,並且無法在運行時改變。編譯器通常將靜態常量與文本一起置於目標文件的文本區域,而非常量初始化數據則置於數據區。
㈣ 在java語言中,靜態變數和普通變數有什麼區別
靜態變數是從屬於類的,在java虛擬機載入的時候就會在內存中載入這個變數,可以用類直接調用。
而普通的變數是從屬於對象的,只有用對象來使用
㈤ java為什麼要使用靜態變數或靜態方法
以下是我復制的說的很好:
Java類中的靜態變數在程序運行期間,其內存空間對所有該類的對象實例而言是共享的,有些時候可以認為是全局變數。因此在某些時候為了節省系統內存開銷、共享資源,可以將類中的一些變數聲明為靜態變數!
我在補充一下:
靜態還有一個好處,可以代替包,有些時候不想用一個包,來封裝一個類做一個公共的數據使用的時候,就可以通過靜態屬性來完成!
㈥ java的靜態方法中不能有靜態變數
靜態即:一個數據成員或方法屬於它所在的類,而不象一般數據成員或方法,只屬於它所在的對象,對象不同,數據成員的值也不同。 靜態方法里的變數是臨時變數,只在靜態方法里有效。而聲明STATIC表示該變數屬於類。靜態變數相當於C語言的全局變數.既然加了static的變數是類一級數據成員,有什麼理由放在一個方法裡面。方法裡面的應該是局部的只有本方法才會用的,在方法裡面聲明一個類一級的數據成員有何意義呢? 所以JAVA不允許這樣做。 要提醒一下,一般的方法同樣不能聲明靜態數據成員。
㈦ java靜態變數的基本介紹
1·、static應用范圍:可用於內部類、方法和變數。
2、標記一個方法為static,意味著這個方法,被所在類的所有實例公用,在類裝載時被首先執行,執行一次即被所有該類的實例共享,同時意味著:
A、static方法內部不能引用非static變數。
B、static方法不能被子類重寫為非static方法。
C、父類的非static方法不能被子類重寫為static方法。
D、static代碼塊可以用static {}來完成,在類被第一次裝載時執行初始化,先於靜態方法和其他方法的執行。
3、標記一個變數為static,則該變數在內存中有不變的位置,相當於全局變數,所有類的實例都訪問同一個存儲變數區域。對其修改對於所有類的實例來說都是可見和一致的。
㈧ java中靜態變數和靜態方法的優缺點
java 里的靜態可以說就是全局變數,它是屬於類的,類存在它就已經存在了,方法也是一樣,靜態方法裡面使用到的外部變數只能是靜態變數,想想就知道了.
但是不要隨便定義成靜態方法, 因為靜態方法內部只能使用靜態變數,而靜態變數是屬於類的, 如果都是靜態方法那麼這個類就沒有實力化的必要.所以一般的工具類才使用較多的靜態方法
㈨ java的靜態變數 static
1.首先你 for (i = 0; i < 3; i++) 里的i就是那個靜態的i了 你把i=0了 於是靜態的i就變成0了 於是執行完循環i就變成3了
2.你的for循環並沒有定義局部的i 親
把那個for循環改成for ( int i = 0; i < 3; i++)
就可以了
㈩ java如何存取靜態變數
無論是靜態的屬性和方法都可以使用 類名.屬性名或類名.方法名這樣的方式進行直接調用。當然由於一般 屬性和方法的調用也是可以的哦。