靜态方法和靜态變量是屬于某一個類,而不屬于類的對象。 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;
} ... } 因為不屬于對象,隻屬于類