久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

java中的static詳解

 司馬小賊 2017-11-07

 

如果一個類成員被聲明為static,它就能夠在類的任何對象創(chuàng)建之前被訪問,,而不必引用任何對象,。static 成員的最常見的例子是main( ) 。因為在程序開始執(zhí)行時必須調(diào)用main() ,,所以它被聲明為static,。

聲明為static的變量實質(zhì)上就是全局變量。當聲明一個對象時,,并不產(chǎn)生static變量的拷貝,,而是該類所有的實例變量共用同一個static變量,例如:聲明一個static的變量count作為new一個類實例的計數(shù)。聲明為static的方法有以下幾條限制: 

1,、它們僅能調(diào)用其他的static 方法,。

2、它們只能訪問static數(shù)據(jù),。

3,、它們不能以任何方式引用this super

如果你需要通過計算來初始化你的static變量,,你可以聲明一個static塊,,Static 塊僅在該類被加載時執(zhí)行一次。下面的例子顯示的類有一個static方法,,一些static變量,,以及一個static 初始化塊:

public class UserStatic {  

        static int a = 3;  

        static int b;    

        static void meth(int x) {  

            System.out.println("x = " + x);  

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

            System.out.println("b = " + b);    

        }   

        static {  

            System.out.println("Static block initialized.");  

            b = a * 4;    

        }   

        public static void main(String args[]) {  

            meth(42);   

        }  

    }

一旦UseStatic 類被裝載,所有的static語句被運行,。首先,,a被設置為3,接著static 塊執(zhí)行(打印一條消息),,最后,,b被初始化為a*4 12。然后調(diào)用main(),,main() 調(diào)用meth() ,,把值42傳遞給x3println ( ) 語句引用兩個static變量ab,,以及局部變量x ,。

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

下面是該程序的輸出:

Static block initialized.
x = 42
a = 3
b = 12

在定義它們的類的外面,,static 方法和變量能獨立于任何對象而被使用,。這樣,你只要在類的名字后面加點號(.)運算符即可,。例如,,如果你希望從類外面調(diào)用一個static方法,你可以使用下面通用的格式:

classname.method( )

這里,,classname 是類的名字,,在該類中定義static方法??梢钥吹?,這種格式與通過對象引用變量調(diào)用非static方法的格式類似。一個static變量可以以同樣的格式來訪問——類名加點號運算符,。這就是Java 如何實現(xiàn)全局功能和全局變量的一個控制版本,。

總結(jié):
1
,、static成員是不能被其所在class創(chuàng)建的實例訪問的。

2,、如果不加static修飾的成員是對象成員,,也就是歸每個對象所有的。

3,、加static修飾的成員是類成員,,就是可以由一個類直接調(diào)用,為所有對象共有的,。

 

 

Java Static:作為修飾符,, 可以用來修飾變量、方法,、代碼塊(但絕對不能修飾類),。


1、修飾變量:

類的所有對象共同擁有的一個屬性,,也稱為類變量,。這類似于C語言中的全局變量。類變量在類加載的時候初始化,,而且只被初始化一次,。在程序中任何對象對靜態(tài)變量做修改,其他對象看到的是修改后的值,。因此類變量可以用作計數(shù)器,。另外,Java Static變量可以用類名直接訪問,,而不必需要對象,。

2、修飾方法:

類的所有對象共同擁有的一個功能,,稱為靜態(tài)方法。靜態(tài)方法也可以用類名直接訪問,,而不必需要對象,。所以在靜態(tài)方法里不能直接訪問非靜態(tài)變量和非靜態(tài)方法,在Static方法里不能出現(xiàn)this或者super等關(guān)鍵字,。

3,、修飾Java代碼塊:

static去修飾類里面的一個獨立的代碼塊,稱為靜態(tài)代碼塊,。靜態(tài)代碼塊在類第一次被加載的時候執(zhí)行,,而且只執(zhí)行一次。靜態(tài)代碼塊沒有名字,,因此不能顯式調(diào)用,,而只有在類加載的時候由虛擬機來調(diào)用。它主要用來完成一些初始化操作。

4,、說說類加載:

JVM在第一次使用一個類時,會到classpath所指定的路徑里去找這個類所對應的字節(jié)碼文件, 并讀進JVM保存起來,,這個過程稱之為類加載。

可見,,無論是變量,,方法,還是代碼塊,,只要用static修飾,,就是在類被加載時就已經(jīng)"準備好了",也就是可以被使用或者已經(jīng)被執(zhí)行。都可以脫離對象而執(zhí)行,。反之,,如果沒有static,則必須通過對象來訪問,。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多