<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    thinking

    one platform thousands thinking

    java中static的作用

    java中static的作用

    有時(shí)你希望定義一個(gè)類成員,使它的使用完全獨(dú)立于該類的任何對(duì)象。通常情況下,類成員必須通過它的類的對(duì)象訪問,但是可以創(chuàng)建這樣一個(gè)成員,它能夠 被它自己使用,而不必引用特定的實(shí)例。在成員的聲明前面加上關(guān)鍵字static(靜態(tài)的)就能創(chuàng)建這樣的成員。如果一個(gè)成員被聲明為static,它就能 夠在它的類的任何對(duì)象創(chuàng)建之前被訪問,而不必引用任何對(duì)象。你可以將方法和變量都聲明為static。static 成員的最常見的例子是main( ) 。因?yàn)樵诔绦蜷_始執(zhí)行時(shí)必須調(diào)用main() ,所以它被聲明為static。

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

    class UseStatic {
    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語句被運(yùn)行。首先,a被設(shè)置為3,接著static 塊執(zhí)行(打印一條消息),最后,b被初始化為a*4 或12。然后調(diào)用main(),main() 調(diào)用meth() ,把值42傳遞給x。3個(gè)println ( ) 語句引用兩個(gè)static變量a和b,以及局部變量x 。

    注意:在一個(gè)static 方法中引用任何實(shí)例變量都是非法的。

    下面是該程序的輸出:

    Static block initialized.
    x = 42
    a = 3
    b = 12
    在定義它們的類的外面,static 方法和變量能獨(dú)立于任何對(duì)象而被使用。這樣,你只要在類的名字后面加點(diǎn)號(hào)運(yùn)算符即可。例如,如果你希望從類外面調(diào)用一個(gè)static方法,你可以使用下面通用的格式:

    classname.method( )

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

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

    class StaticDemo {
    static int a = 42;
    static int b = 99;
    static void callme() {


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


    class StaticByName {

    public static void main(String args[]) {
    StaticDemo.callme();
    System.out.println("b = " + StaticDemo.b);


    }
    }

    下面是該程序的輸出:

    a = 42
    b = 99


     

    static成員是不能被其所在class創(chuàng)建的實(shí)例訪問的。

    如果不加static修飾的成員是對(duì)象成員,也就是歸每個(gè)對(duì)象所有的。

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

    posted on 2009-03-02 12:03 lau 閱讀(174) 評(píng)論(0)  編輯  收藏 所屬分類: J2SE

    主站蜘蛛池模板: 色播在线永久免费视频| 91精品免费在线观看| 四虎永久成人免费影院域名| 99精品一区二区免费视频| 国产亚洲精午夜久久久久久| 一级看片免费视频| 国产成人亚洲精品91专区手机| 亚洲免费视频网站| 久久99精品国产免费观看| 免费在线观看一级毛片| 美女被爆羞羞网站在免费观看 | 亚洲a级成人片在线观看| 亚洲一区免费视频| 亚洲亚洲人成综合网络| 中文字幕免费视频精品一| 国产美女a做受大片免费| 亚洲宅男天堂a在线| 欧美在线看片A免费观看| 午夜影视日本亚洲欧洲精品一区 | 亚洲视频在线一区二区三区| 亚洲成人免费在线观看| 国产亚洲日韩在线三区| 美女免费视频一区二区| 亚洲中文字幕第一页在线| 99视频有精品视频免费观看| 精品日韩99亚洲的在线发布| 日本不卡高清中文字幕免费| 国产日本亚洲一区二区三区| 在线永久免费观看黄网站| 国产免费人成视频尤勿视频 | 亚洲视频在线一区| 毛片视频免费观看| 一区二区三区免费在线视频| 久久综合九九亚洲一区| 最新猫咪www免费人成| 国产一级a毛一级a看免费视频| 亚洲小视频在线播放| 久久亚洲AV无码西西人体| 99久久久精品免费观看国产 | 午夜精品射精入后重之免费观看 | 亚洲中文字幕无码久久2017 |