java有關static用法

前兩天,羣中討論了幾個Java問題,貼一下:

 假設A類有如下定義,設aA類的一個實例,下列哪些語句調用是錯誤的。【  

 

class A {

int i;

static String s;

    void method1() {   }

    static void method2()  {   }

}   

AA.method1();

BA.method2()

CSystem.out.println(a.i)

Da.method1(); 

題目考查static的用法:類成員必須通過它的類的對象訪問,但是可以創建這樣一個成員,它能夠被它自己使用,而不必引用特定的實例。在成員的聲明前面加上關鍵字static(靜態的)就能創建這樣的成員。如果一個成員被聲明爲static,它就能夠在它的類的任何對象創建之前被訪問,而不必引用任何對象。簡單說,類名調用方法時,只能調用靜態方法。對於非靜態的方法,需要類對象(實例化)進行調用。

開始不清楚,實際驗證了一把。

  1. public class Test {  
  2.  
  3.     int i;  
  4.     static String s;  
  5.     void Method1()  
  6.     {  
  7.         System.out.println("1");  
  8.     }  
  9.     static void Method2()  
  10.     {  
  11.         System.out.println("b");  
  12.     }  
  13.     /**  
  14.      * @param args  
  15.      */ 
  16.     public static void main(String[] args) {  
  17.         // TODO Auto-generated method stub  
  18.  
  19.         Test a = new Test();  
  20. //      Test.Method1();   
  21.         Test.Method2() ;  
  22.         System.out.println(a.i);   
  23.         a.Method1();    
  24.           
  25.     }  
  26. }  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章