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