天天看點

靜态方法和靜态變量是屬于某一個類,而不屬于類的對象

  靜态方法和靜态變量是屬于某一個類,而不屬于類的對象。 class Point

{

 int x,y;

 static void output()

 {

  System.out.println("output() called");

  }

  public static void main(String[] args)

 {

  Point.output();

 }

} 這個程式是可以編譯過的; 是以 靜态方法和靜态變量的引用直接通過類名引用。 在靜态方法中不能調用非靜态的方法和引用非靜态的成員變量。反之,則可以。 可以用類的對象obj去調用靜态的方法method(),如:obj.method()。   雖然靜态方法和非靜态執行個體化方法在記憶體中都是隻有1份拷貝,但是他們是不同的。     class Point

{

 int x,y;

 static int z;

 final double PI;

 Point(int a,int b)

 {

PI=3.1415926;

  x=a;

  y=b;

 } ... } 正确的,因為會調用構造函數   class Point

{

 int x,y;

 static int z;

 static final double PI;

 Point(int a,int b)

 {

PI=3.1415926;

  x=a;

  y=b;

 } ... } 錯誤的,必須 class Point

{

 int x,y;

 static int z;

static  final double PI=3.1415926;  Point(int a,int b)

 {

  x=a;

  y=b;

 } ... } 因為不屬于對象,隻屬于類