當前位置:首頁 » 編程語言 » javastatic函數

javastatic函數

發布時間: 2024-12-29 15:13:27

java中什麼時候該用static修飾方法有什麼好處或者壞處

有時你希望定義一個類成員,使它的使用完全獨立於該類的任何對象。通常情況下,類成員必須通過它的類的對象訪問,但是可以創建這樣一個成員,它能夠被它自己使用,而不必引用特定的實例。在成員的聲明前面加上關鍵字static(靜態的)就能創建這樣的成員。如果一個成員被聲明為static,它就能夠在它的類的任何對象創建之前被訪問,而不必引用任何對象。你可以將方法和變數都聲明為static。static 成員的最常見的例子是main( ) 。因為在程序開始執行時必須調用main() ,所以它被聲明為static。

聲明為static的變數實質上就是全局變數。當聲明一個對象時,並不產生static變數的拷貝,而是該類所有的實例變數共用同一個static變數。聲明為static的方法有以下幾條限制:
·
它們僅能調用其他的static 方法。
·
它們只能訪問static數據。
·
它們不能以任何方式引用this 或super(關鍵字super 與繼承有關,在下一章中描述)。
如果你需要通過計算來初始化你的static變數,你可以聲明一個static塊,Static 塊僅在該類被載入時執行一次。下面的例子顯示的類有一個static方法,一些static變數,以及一個static 初始化塊:
// Demonstrate static variables,methods,and blocks.


classUseStatic{
staticinta=3;
staticintb;

staticvoidmeth(intx){
System.out.println("x="+x);
System.out.println("a="+a);
System.out.println("b="+b);

}

static{
System.out.println("Staticblockinitialized.");
b=a*4;

}

publicstaticvoidmain(Stringargs[]){
meth(42);
}
}


一旦UseStatic 類被裝載,所有的static語句被運行。首先,a被設置為3,接著static 塊執行(列印一條消息),最後,b被初始化為a*4 或12。然後調用main(),main() 調用meth() ,把值42傳遞給x。3個println ( ) 語句引用兩個static變數a和b,以及局部變數x 。

注意:在一個static 方法中引用任何實例變數都是非法的。

下面是該程序的輸出:

Static block initialized.
x = 42
a = 3
b = 12
在定義它們的類的外面,static 方法和變數能獨立於任何對象而被使用。這樣,你只要在類的名字後面加點號運算符即可。例如,如果你希望從類外面調用一個static方法,你可以使用下面通用的格式:

classname.method( )

這里,classname 是類的名字,在該類中定義static方法。可以看到,這種格式與通過對象引用變數調用非static方法的格式類似。一個static變數可以以同樣的格式來訪問——類名加點號運算符。這就是Java 如何實現全局功能和全局變數的一個控製版本。

下面是一個例子。在main() 中,static方法callme() 和static 變數b在它們的類之外被訪問。


classStaticDemo{
staticinta=42;
staticintb=99;
staticvoidcallme(){

System.out.println("a="+a);
}
}

classStaticByName{

publicstaticvoidmain(Stringargs[]){
StaticDemo.callme();
System.out.println("b="+StaticDemo.b);

}
}


下面是該程序的輸出:

a = 42
b = 99

熱點內容
電腦上遠程訪問伺服器 發布:2025-01-01 09:10:34 瀏覽:54
伺服器網卡ip 發布:2025-01-01 08:38:37 瀏覽:396
ios訪問https介面 發布:2025-01-01 08:33:49 瀏覽:258
主力指標源碼 發布:2025-01-01 08:25:17 瀏覽:995
怎麼更改資金交易密碼 發布:2025-01-01 08:16:48 瀏覽:540
php三目運算 發布:2025-01-01 08:10:57 瀏覽:953
微電動汽車基本配置具備哪些 發布:2025-01-01 08:06:06 瀏覽:141
c語言計算ab的值 發布:2025-01-01 07:38:52 瀏覽:630
如何配置好健康保障 發布:2025-01-01 07:38:52 瀏覽:863
0基礎怎樣快速學習編程 發布:2025-01-01 07:34:35 瀏覽:719