static
static成員不能通過對象實例來訪問,它必須通過類名來訪問。原因是它不作用于類的實例。實質上,被聲明為static的變量是全局變量。當聲明類的對象時,不用拷貝static變量,而是類的所有實例共享一個static變量。static方法不用創建任何對象,只用類名就可以調用。static變量在類被裝載時初始化。如果沒有明確的初始化值,數值類型將被初始化為0,對象引用初始化為空,bool類型變量初始化為false。因此static變量總有一個值。
static方法不能引用this。static方法只能直接調用其它static方法,原因是實例方法作用于類中的特定實例,但static方法不是。static方法只能直接訪問static數據,它不能使用實例變量,原因是它不作用于類的實例。
this
this是保留的指針。指向當前對象。雖然有時候寫它不寫它,看起來沒什么不同。實際上它的好處就是在編譯期就可以獲得對象的地址。比如一個類中有個成員類。成員類需使用上層類的函數,就可以把this傳到成員類中。
super
super是調用父類的構造函數 。使用super調用有一些限制條件,不能在super調用中使用實例變量作為參數. 而且在構造函數中,調用必須寫在繼承類的構造函數定義的第一行,不能在構造函數的后面使用.
this和super
一個構造函數定義中不能同時包括this調用和super調用,如果想同時包括的話,可以在this中首先進行super調用.
transient
Java語言的關鍵字,用來表示一個域不是該對象串行化的一部分。當一個對象被串行化的時候,transient型變量的值不包括在串行化的表示中,然而非transient型的變量是被包括進去的。
final
一個Java語言的關鍵字。你只能定義一個實體一次,以后不能改變它或繼承它。更嚴格的講:一個final修飾的類不能被子類化,一個final修飾的方法不能被重寫,一個final修飾的變量不能改變其初始值。
abstract 抽象的
一個Java語言中的關鍵字,用在類的聲明中來指明一個類是不能被實例化的,但是可以被其它類繼承。一個抽象類可以使用抽象方法,抽象方法不需要實現,但是需要在子類中被實現 。
經專家指正,現修正如下:
"static成員不能通過對象實例來訪問,它必須通過類名來訪問"
static成員是可以通過對象實例來訪問的,但不建議這么做 。
public class A {
public static void print() {
System.out.println("A");
}
}
public class StaticTest {
public static void main(String[] args) {
A a = new A();
a.print();
}
}
posted on 2007-04-20 20:42
靜兒 閱讀(776)
評論(2) 編輯 收藏