靜態,final,接口

一:static   static: 靜態的.   1. 若須要一個類的多個對象共享一個變量,則該變量須要使用 static 修飾.   2. 由於 static 修飾的變量爲類的全部的實例所共享,因此 static 成員不屬於某個類的實例, 而屬於整個類.      因此在訪問權限容許的狀況下,可使用 "類名." 直接訪問靜態成員(成員包括屬性和方法).   3. 注意: 在靜態方法裏只能直接調用同類中其它的靜態成員(包括變量和方法),而不能直接訪問類中的非靜態成員.      這是由於,對於非靜態的方法和變量,須要先建立類的實例對象後纔可以使用,而靜態方法在使用前不用建立任何對象.   4. 同 3 的道理: 靜態方法不能以任何方式引用this和super關鍵字.   5. 非靜態方法中能夠直接來訪問類的靜態成員.   6. main() 方法是靜態的,所以JVM在執行main方法時不建立main方法所在的類的實例對象.   7. 靜態初始化指對類的靜態屬性進行初始化.     7.1 不該該在構造器中對靜態成員進行初始化: 由於靜態成員不因類的實例而改變.     7.2   1   //非靜態代碼塊: 先於構造器執行,每建立一個對象都會執行一次. 2   { 3       System.out.println("非靜態代碼塊"); 4   }  7.3   1   //靜態代碼塊: 使用 static 修飾的代碼塊 2   //在類被加載時執行一次,且執行一次. 能夠在靜態代碼塊中對靜態成員變量進行初始化. 3   //先於非靜態代碼塊和構造器執行. 4     static{ 5         System.out.println("靜態代碼塊"); 6     }   8. 所謂類的單態設計模式,就是採起必定的方法保證在整個的軟件系統中,對某個類只能存在一個對象實例.   8.1 不能再類的外部經過 new 關鍵字的方式建立新的實例: 構造器私有化.   8.2 在類的內部建立實例.   8.3 爲了讓類的外部可以訪問到類的內部建立的實例,該實例必須使用 static 修飾.   8.4 不能容許在類的外部修改內部建立的實例的引用. SingleInstance.instance = null;        須要把該屬性用 private 修飾.   8.5 爲了讓外部進行讀,添加對應的 get 方法.      設計模式

二:final安全

  1. 在Java中聲明類、屬性和方法時,可以使用關鍵字final來修飾。   2. final標記的類不能被繼承.提升安全性,提升程序的可讀性。   3. final標記的成員變量必須在聲明的同時或在每一個構造方法中顯式賦值,不然編譯出錯。   4. final標記的變量(成員變量或局部變量)即成爲常量,只能賦值一次。   5. final標記的方法不能被子類重寫,增長安全性。this

三: 接口設計

抽象方法和常量的集合. 實際上接口更是一種規範!   1. 用 interface 來定義。   2. 接口中的全部成員變量都默認是由 public static final 修飾的.在聲明變量時必須直接賦值.      常量標識符的書寫要求: 字母都大寫,多個單詞使用 _ 鏈接.   3. 接口中的全部方法都默認是由public abstract修飾的.接口沒有構造方法.   4. 實現接口使用 implements 關鍵字.若一個類既實現接口,有繼承了父類, 須要把 extends 關鍵字放在前面,      即先繼承父類, 後實現多個接口.一個類能夠實現多個無關的接口;若實現多個接口,使用,分割.   5. 接口也能夠繼承另外一個接口,使用extends關鍵字.對象

相關文章
相關標籤/搜索