JAVA中static辦法的用法實例詳解。本站提示廣大學習愛好者:(JAVA中static辦法的用法實例詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是JAVA中static辦法的用法實例詳解正文
本文實例講述了JAVA中static辦法的用法。分享給年夜家供年夜家參考,詳細以下:
static表現“全局”或許“靜態”的意思,用來潤飾成員變量和成員辦法,也能夠構成靜態static代碼塊,然則Java說話中沒有全局變量的概念。
被static潤飾的成員變量和成員辦法自力於該類的任何對象。也就是說,它不依附類特定的實例,被類的一切實例同享。只需這個類被加載,Java虛擬機就可以依據類名在運轉時數據區或許辦法區內找到他們。是以,static對象可以在它的任何對象創立之前拜訪,無需援用任何對象。
用public潤飾的static成員變量和成員辦法實質是全局變量和全局辦法,當聲明它類的對象時,不生成static變量的正本,而是類的一切實例同享統一個static變量。
static變量前可以有private潤飾,表現這個變量可以在類的靜態代碼塊中,或許類的其他靜態成員辦法中應用(固然也能夠在非靜態成員辦法中應用),然則不克不及在其他類中經由過程類名來直接援用,這一點很主要。現實上你須要弄明確,private是拜訪權限限制,static表現不要實例化便可以應用,如許就輕易懂得多了。static後面加上其它拜訪權限症結字的後果也以此類推。
static潤飾的成員變量和成員辦法習氣上稱為靜態變量和靜態辦法,可以直接經由過程類名來拜訪,拜訪語法為:
類名.靜態辦法名(參數列表...)
類名.靜態變量名
用static潤飾的代碼塊表現靜態代碼塊,當Java虛擬機(JVM)加載類時,就會履行該代碼塊(用途異常年夜)。
static變量
依照能否靜態的對類成員變量停止分類可分兩種:一種是被static潤飾的變量,叫靜態變量或類變量;另外一種是沒有被static潤飾的變量,叫實例變量。二者的差別是:
關於靜態變量在內存中只要一個拷貝(節儉內存),JVM只為靜態分派一次內存,在加載類的進程中完成靜態變量的內存分派,可用類名直接拜訪(便利),固然也能夠經由過程對象來拜訪(然則這是不推舉的)。
關於實例變量,每創立一個實例,就會為實例變量分派一次內存,實例變量可以在內存中有多個拷貝,互不影響(靈巧)。
靜態辦法
靜態辦法可以直接經由過程類名挪用,任何的實例也都可以挪用,是以靜態辦法中不克不及用this和super症結字,不克不及直接拜訪所屬類的實例變量和實例辦法(就是不帶static的成員變量和成員辦法),只能拜訪所屬類的靜態成員變量和成員辦法。由於實例成員與特定的對象聯系關系!
由於static辦法自力於任何實例,是以static辦法必需被完成,而不克不及是籠統的abstract。
static代碼塊
static代碼塊也叫靜態代碼塊,是在類中自力於類成員的static語句塊,可以有多個,地位可以隨意放,它不在任何的辦法體內,JVM加載類時會履行這些靜態的代碼塊,假如static代碼塊有多個,JVM將依照它們在類中湧現的前後次序順次履行它們,每一個代碼塊只會被履行一次。例如:
package staticPackage; public class testStatic { private static int a;// 靜態變量 private int b;// 實例變量 static { testStatic.a = 3; System.out.println(a); testStatic t = new testStatic(); t.f(); t.b = 1000; System.out.println(t.b); } static { testStatic.a = 4; System.out.println(a); } public static void main(String[] args) { // TODO 主動生成辦法存根 } static { testStatic.a = 5; System.out.println(a); } public void f() { System.out.println("method f() executing..."); } /** * 3 * method f() executing... * 1000 * 4 * 5 */ }
應用靜態代碼塊可以對一些static變量停止賦值,最初再看一眼這些例子,有一個static的main辦法,如許JVM在運轉main辦法的時刻可以直接挪用而不消創立實例。這時候候我們去看《實例剖析Java中public static void main(String args[])是甚麼意思》這篇文章應當也好懂得了吧。
願望本文所述對年夜家Java法式設計有所贊助。