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