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

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

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

    302班

    java突擊隊(duì)
    posts - 151, comments - 74, trackbacks - 0, articles - 14
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    Java關(guān)鍵字Static的用法

    Posted on 2007-04-26 15:24 停留的風(fēng) 閱讀(775) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Java程序集合

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

    聲明為static的變量實(shí)質(zhì)上就是全局變量。當(dāng)聲明一個(gè)對(duì)象時(shí),并不產(chǎn)生static變量的拷貝,而是該類(lèi)所有的實(shí)例變量共用同一個(gè)static變量。聲明為static的方法有以下幾條限制:

    ·
    它們僅能調(diào)用其他的static 方法。
    ·
    它們只能訪(fǎng)問(wèn)static數(shù)據(jù)。
    ·
    它們不能以任何方式引用this 或super(關(guān)鍵字super 與繼承有關(guān),在下一章中描述)。
    如果你需要通過(guò)計(jì)算來(lái)初始化你的static變量,你可以聲明一個(gè)static塊,Static 塊僅在該類(lèi)被加載時(shí)執(zhí)行一次。下面的例子顯示的類(lèi)有一個(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 類(lèi)被裝載,所有的static語(yǔ)句被運(yùn)行。首先,a被設(shè)置為3,接著static 塊執(zhí)行(打印一條消息),最后,b被初始化為a*4 或12。然后調(diào)用main(),main() 調(diào)用meth() ,把值42傳遞給x。3個(gè)println ( ) 語(yǔ)句引用兩個(gè)static變量a和b,以及局部變量x 。

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

    下面是該程序的輸出:

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

    classname.method( )

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

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

    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

    主站蜘蛛池模板: 亚洲三级在线免费观看| 又爽又黄无遮挡高清免费视频| 亚洲嫩草影院在线观看| 成人片黄网站A毛片免费| 美女露隐私全部免费直播| 久久精品视频亚洲| 最近中文字幕免费mv视频8| 一区二区三区免费在线视频 | 国产三级免费电影| 99视频免费在线观看| 久久精品国产亚洲αv忘忧草| 亚洲精品偷拍视频免费观看| 1000部国产成人免费视频| 视频免费1区二区三区| 亚洲国产电影在线观看| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 久久91亚洲精品中文字幕| 成人人免费夜夜视频观看| baoyu777永久免费视频| 亚洲日本在线电影| 久久精品国产亚洲| 国产美女无遮挡免费网站| 久久久久久久久久国产精品免费| 亚洲经典千人经典日产| 色播亚洲视频在线观看| 免费大黄网站在线看| 久久久久久精品免费看SSS| 精品国产免费人成网站| 在线观看日本亚洲一区| 久久久久亚洲AV成人无码| 国产在线19禁免费观看| 国产成人免费高清激情明星 | 在线观看H网址免费入口| jizz在线免费观看| 亚洲人成电影网站色| 亚洲无删减国产精品一区| 久久久久亚洲精品中文字幕| 国产日产成人免费视频在线观看| 成人黄色免费网站| 午夜精品免费在线观看 | 69视频免费在线观看|