static
static成員不能通過對象實例來訪問,它必須通過類名來訪問。原因是它不作用于類的實例。實質(zhì)上,被聲明為static的變量是全局變量。當聲明類的對象時,不用拷貝static變量,而是類的所有實例共享一個static變量。static方法不用創(chuàng)建任何對象,只用類名就可以調(diào)用。static變量在類被裝載時初始化。如果沒有明確的初始化值,數(shù)值類型將被初始化為0,對象引用初始化為空,bool類型變量初始化為false。因此static變量總有一個值。
static方法不能引用this。static方法只能直接調(diào)用其它static方法,原因是實例方法作用于類中的特定實例,但static方法不是。static方法只能直接訪問static數(shù)據(jù),它不能使用實例變量,原因是它不作用于類的實例。
this
this是保留的指針。指向當前對象。雖然有時候?qū)懰粚懰雌饋頉]什么不同。實際上它的好處就是在編譯期就可以獲得對象的地址。比如一個類中有個成員類。成員類需使用上層類的函數(shù),就可以把this傳到成員類中。
super
super是調(diào)用父類的構(gòu)造函數(shù) 。使用super調(diào)用有一些限制條件,不能在super調(diào)用中使用實例變量作為參數(shù). 而且在構(gòu)造函數(shù)中,調(diào)用必須寫在繼承類的構(gòu)造函數(shù)定義的第一行,不能在構(gòu)造函數(shù)的后面使用.
this和super
一個構(gòu)造函數(shù)定義中不能同時包括this調(diào)用和super調(diào)用,如果想同時包括的話,可以在this中首先進行super調(diào)用.
transient
Java語言的關(guān)鍵字,用來表示一個域不是該對象串行化的一部分。當一個對象被串行化的時候,transient型變量的值不包括在串行化的表示中,然而非transient型的變量是被包括進去的。
final
一個Java語言的關(guān)鍵字。你只能定義一個實體一次,以后不能改變它或繼承它。更嚴格的講:一個final修飾的類不能被子類化,一個final修飾的方法不能被重寫,一個final修飾的變量不能改變其初始值。
abstract 抽象的
一個Java語言中的關(guān)鍵字,用在類的聲明中來指明一個類是不能被實例化的,但是可以被其它類繼承。一個抽象類可以使用抽象方法,抽象方法不需要實現(xiàn),但是需要在子類中被實現(xiàn) 。
經(jīng)專家指正,現(xiàn)修正如下:
"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
靜兒 閱讀(781)
評論(2) 編輯 收藏