小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

java靜態(tài)方法、非靜態(tài)代碼塊{}、靜態(tài)代碼塊static{}(轉(zhuǎn))

 李副營長 2013-04-19

static方法就是沒有this的方法。在static方法的內(nèi)部不能調(diào)用非靜態(tài)方法和變量,反過來是可以的。 
    一般情況下,如果有些代碼必須在項(xiàng)目啟動的時(shí)候就執(zhí)行的時(shí)候,需要使用靜態(tài)代碼塊,這種代碼是主動執(zhí)行的;需要在項(xiàng)目啟動的時(shí)候就初始化,在不創(chuàng)建對象的情況下,其他程序來調(diào)用的時(shí)候,需要使用靜態(tài)方法,這種代碼是被動執(zhí)行的. 靜態(tài)方法在類加載的時(shí)候 就已經(jīng)加載 可以用類名直接調(diào)用 比如main方法就必須是靜態(tài)的 這是程序入口。 
兩者的區(qū)別就是:靜態(tài)代碼塊是自動執(zhí)行的; 靜態(tài)方法是被調(diào)用的時(shí)候才執(zhí)行的. 

靜態(tài)方法 
(1)在Java里,可以定義一個不需要創(chuàng)建對象的方法,這種方法就是靜態(tài)方法。要實(shí)現(xiàn)這樣的效果,只需要在類中定義的方法前加上static關(guān)鍵字。例如:public static int maximum(int n1,int n2) 

使用類的靜態(tài)方法時(shí),注意: 
a.在靜態(tài)方法里只能直接調(diào)用同類中其他的靜態(tài)成員(包括變量和方法),而不能直接訪問類中的非靜態(tài)成員。這是因?yàn)?,對于非靜態(tài)的方法和變量,需要先創(chuàng)建類的實(shí)例對象后才可使用,而靜態(tài)方法在使用前不用創(chuàng)建任何對象。 
b.靜態(tài)方法不能以任何方式引用this和super關(guān)鍵字,因?yàn)殪o態(tài)方法在使用前不用創(chuàng)建任何實(shí)例對象,當(dāng)靜態(tài)方法調(diào)用時(shí),this所引用的對象根本沒有產(chǎn)生(this關(guān)鍵字只能在方法內(nèi)部使用,表示對“調(diào)用方法的那個對象”的引用)。 


(2)靜態(tài)變量是屬于整個類的變量而不是屬于某個對象的。注意不能把任何方法體內(nèi)的變量聲明為靜態(tài),例如: 
fun() 

   static int i=0;//非法。 

(3)一個類可以使用不包含在任何方法體中的靜態(tài)代碼塊,當(dāng)類被載入時(shí),靜態(tài)代碼塊被執(zhí)行,且之被執(zhí)行一次,靜態(tài)塊常用來執(zhí)行類屬性的初始化。例如: 
static 


(4)非靜態(tài)代碼塊 
eg: 

Java代碼 復(fù)制代碼 收藏代碼
  1. public class TestStaticCon {   
  2.     public static int a = 0;   
  3.   
  4.     static {   
  5.         a = 10;   
  6.         System.out.println("父類的非靜態(tài)代碼塊在執(zhí)行a=" + a);   
  7.     }   
  8.        
  9.     {   
  10.         a = 8;   
  11.         System.out.println("父類的非靜態(tài)代碼塊在執(zhí)行a=" + a);   
  12.     }   
  13.   
  14.     public TestStaticCon() {   
  15.         this("a在父類帶參構(gòu)造方法中的值:" + TestStaticCon.a); // 調(diào)用另外一個構(gòu)造方法   
  16.         System.out.println(a);   
  17.         System.out.println("父類無參構(gòu)造方法在執(zhí)行a=" + a);   
  18.     }   
  19.   
  20.     public TestStaticCon(String n) {   
  21.         System.out.println(n);   
  22.         System.out.println(a);   
  23.   
  24.     }   
  25.   
  26.     public static void main(String[] args) {   
  27.         TestStaticCon tsc = null;   
  28.         System.out.println("!!!!!!!!!!!!!!!!!!!!!");   
  29.         tsc = new TestStaticCon();   
  30.     }/*Output:  
  31.            父類的非靜態(tài)代碼塊在執(zhí)行a=10  
  32.            !!!!!!!!!!!!!!!!!!!!!  
  33.            父類的非靜態(tài)代碼塊在執(zhí)行a=8  
  34.            a在父類帶參構(gòu)造方法中的值:10  
  35.            8  
  36.            8  
  37.            父類無參構(gòu)造方法在執(zhí)行a=8  
  38.            */  
  39.   
  40. }  
  1. public class TestStaticCon {  
  2.     public static int a = 0;  
  3.   
  4.     static {  
  5.         a = 10;  
  6.         System.out.println("父類的非靜態(tài)代碼塊在執(zhí)行a=" + a);  
  7.     }  
  8.       
  9.     {  
  10.         a = 8;  
  11.         System.out.println("父類的非靜態(tài)代碼塊在執(zhí)行a=" + a);  
  12.     }  
  13.   
  14.     public TestStaticCon() {  
  15.         this("a在父類帶參構(gòu)造方法中的值:" + TestStaticCon.a); // 調(diào)用另外一個構(gòu)造方法  
  16.         System.out.println(a);  
  17.         System.out.println("父類無參構(gòu)造方法在執(zhí)行a=" + a);  
  18.     }  
  19.   
  20.     public TestStaticCon(String n) {  
  21.         System.out.println(n);  
  22.         System.out.println(a);  
  23.   
  24.     }  
  25.   
  26.     public static void main(String[] args) {  
  27.         TestStaticCon tsc = null;  
  28.         System.out.println("!!!!!!!!!!!!!!!!!!!!!");  
  29.         tsc = new TestStaticCon();  
  30.     }/*Output: 
  31.            父類的非靜態(tài)代碼塊在執(zhí)行a=10 
  32.            !!!!!!!!!!!!!!!!!!!!! 
  33.            父類的非靜態(tài)代碼塊在執(zhí)行a=8 
  34.            a在父類帶參構(gòu)造方法中的值:10 
  35.            8 
  36.            8 
  37.            父類無參構(gòu)造方法在執(zhí)行a=8 
  38.            */  
  39.   
  40. }  

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多