JAVA拾遗1
1? static修飾符
??? 類的成員變量分為靜態(tài)變量和實(shí)例變量,???? 被stacit修飾的變量,叫靜態(tài)變量,沒(méi)被修飾的就是實(shí)例變量了.
靜態(tài)變量的特點(diǎn),在于其在內(nèi)存中只有一個(gè)COPY,在使用時(shí)不需要實(shí)例化,直接用類名來(lái)調(diào)用就可以了.
?? 同樣,比如
???? public static int add()
?這樣的叫靜態(tài)方法,同樣,使用靜態(tài)方法時(shí)不需要實(shí)例化類.
?? 在靜態(tài)方法中要注意兩點(diǎn)
??? A 靜態(tài)方法中,不能用this關(guān)鍵字,也不能訪問(wèn)非靜態(tài)變量,比如
??? public class Voter{
??? private static int count;???
? private String name;??
?????
?public static void printVoteResult(){
??? System.out.println("當(dāng)前投票數(shù)為:"+count); //正確
???? System.out.println("當(dāng)前投票數(shù)為:"+name); //錯(cuò)誤
? System.out.println("當(dāng)前投票數(shù)為:"+this.name); //錯(cuò)誤
? 同樣,靜態(tài)方法中不能用super關(guān)鍵字
??? 此外,靜態(tài)方法必須被實(shí)現(xiàn),因?yàn)殪o態(tài)方法是表示某個(gè)類的特有功能,不需要實(shí)例化,因此必須要給實(shí)現(xiàn).,比如
??? static abstract void add()是錯(cuò)誤的。
2? 類的初始化
????? A 對(duì)于final類型的變量,如果在編譯時(shí)能計(jì)算其值,則此時(shí)該類不會(huì)被初始化,比如
?? class Tester
? {
?? public static final int a=2*3;
static
? {?
System.out.println("abc");
??? }
}
? public class samle
{
?? System.out.println("a="+Tester.a);
? }
?則只會(huì)輸出a=6
? 而如果是編譯時(shí)算不出的話,則要初始化這個(gè)類,比如
?? public static final int? a=....運(yùn)算表達(dá)式;
3 final修飾符
??? final修飾的方法不能被子類的方法覆蓋,修飾的類不能被子類繼承,要注意的是,在一個(gè)類中,如果出現(xiàn)final常量,則必須被初始化,
? 比如
? public a
{
? final int a;//錯(cuò)誤
}
轉(zhuǎn)載于:https://www.cnblogs.com/jackyrong/archive/2008/06/16/1223296.html
總結(jié)
- 上一篇: 慕课版软件质量保证与测试(第四章.课后作
- 下一篇: 行间css样式