Java基本概念和使用原則

接口Interface
1. 接口中的成員變量默認都是public、static、final類型的,必須被顯式初始化
2. 接口中的方法默認都是public、abstract類型的。
3. 接口中只能包含public、static、final類型的成員變量和public、abstract類型的成員方法。
4. 接口沒有構造方法,不能被實例化,在接口中定義構造方法是非法的。
5. 一個接口不能實現另一個接口,但它可以繼承多個其他接口。
interface C extends A, B{} // A和B都是接口
6. 當類實現某個接口時,它必須實現接口中所有的抽象方法,否則這個類必須被定義爲抽象類。
7. 接口中沒有方法體




訪問控制修飾符
四種訪問級別:public、protected、默認、private
private只能在同一個類中訪問
默認,只能在同一個類,同一個包中訪問
protected,可以在統一各類,同一個包,子類(子類可以不在同一個包中)訪問
public,不限制訪問
類可用修飾符: abstract、public、final
構造方法:public、protected、private
局部變量:僅僅final




abstract修飾符
1. 抽象類中可以沒有抽象方法,但包含了抽象方法的類必須被定義爲抽象類。
2. 沒有抽象構造方法,沒有抽象靜態方法。 static 和 abstract不能連用
3. 抽象類中可以有非抽象的構造方法,創建子類的實例時可能會調用這些構造方法。
4. 抽象類及抽象方法不能被final修飾符修飾。final和abstract 不能連用,同樣private和abstract不能連用。
5. 抽象類不能被實例化。因爲抽象類可能含有沒有方法體的抽象方法




final修飾符
final具有;不可改變的;含義,它可以修飾非抽象類,非抽象成員方法和變量
1. 用final修飾的類不能被繼承,沒有子類。
2. 用final修飾的方法不能被子類的方法覆蓋。
3. 用final修飾的變量表示常量,只能被賦一次值,必須被顯式初始化。
4. private修飾的方法默認爲是final方法,因而不能被子類的方法覆蓋。




static修飾符
1. 靜態變量在內存中只有一個拷貝,在類的所有實例中共享。
2. 在靜態方法中不能直接訪問實例方法和實例變量。
3. 在靜態方法中不能使用this和super關鍵字。
4. 靜態方法不能被abstract修飾
5. 靜態方法和靜態變量都可以通過類名直接被訪問。
6. 當類被加載時,靜態代碼塊只被執行一次。類中不同的靜態代碼塊按它們在類中出現的順序被依次執行
public static void main(String args[]) {} 程序入口方法,可以被final修飾。




super關鍵字
1. 在類的構造方法中,通過super語句調用這個類的父類的構造方法。
在構造方法中,super語句必須作爲構造方法的第一條語句。
2. 在子類中訪問父類的被屏蔽的方法和屬性
3. 只能在構造方法或實例方法內使用super關鍵字。 super關鍵字與類的特定實例相關




方法覆蓋(方法重寫)
1. 方法的參數簽名和返回值類型必須相同,訪問控制修飾符可以不同,但是子類方法不能縮小父類方法的訪問權限。
2. 子類方法拋出的異常必須和父類方法拋出的異常相同,或者是父類方法拋出的異常類的子類。
3. 父類的靜態方法是不能被子類覆蓋爲非靜態方法。
父類的非靜態方法不能被子類覆蓋爲靜態方法。
4. 子類可以定義與父類的靜態方法同名的靜態方法,以便在子類中隱藏父類的靜態方法。區別:運行時,JVM把靜態方法和所屬的類綁定,而把實例方法和所屬的實例綁定。
5. 父類的私有方法不能被覆蓋
6. 父類的非抽象方法可以被覆蓋爲抽象方法




方法重(chong)載
1. 在一個類中不允許兩個方法名相同,並且參數簽名也完全相同的方法。
2. 類的同一種功能,可能有多種實現,到底採用哪種實現方式,取決於調用者給定的參數。
3. 對於類的方法(包括從父類中繼承的方法),如果有兩個方法的方法名相同,但參數不一致,那麼可以說,一個方法是另一個方法的重載方法。




多態
1. 對於一個引用類型的變量,Java編譯器按照它聲明的類型來處理。
Base base = new Sub();
base.subMethod(); // 編譯出錯,Base基類,Sub子類,編譯器認爲base是Base類型的引用變量,Base類沒有subMethod()方法。這樣子,就必須使用強制轉換。(Sub)(base).subMethod();
2. 對於一個引用類型的變量,運行時JVM按照它實際引用的對象來處理。
Base base = new Base();
Sub sub = (Sub)base; // 編譯通過,但是運行時拋出ClassCastException
在運行時,子類的引用類型變量可以轉換爲父類的引用類型,而相反的過程卻不可以。
假定可以,即上邊兩行代碼運行正常,那麼sub.subMethod(); 執行時,JVM將找不到subMethod。sub實際引用的是Base類的實例。
3. 在運行時環境中,通過引用類型變量來訪問所引用對象的方法和屬性時,JVM採用以下的綁定規則。
①實例方法與引用變量實際引用的對象的方法綁定,即動態綁定。
②靜態方法與引用變量所聲明的類型的方法綁定,即靜態綁定。 編譯階段即綁定完成。
③成員變量(靜態變量和實例變量) 與引用類型所聲明的類型的成員變量綁定。靜態綁定。










1、 接口修飾符:public
2、 類修飾符:訪問控制符非訪問控制符兩種
訪問控制符:公共類修飾符 public
非訪問控制符:抽象類修飾符 abstract ;終類修飾符 final
1、公共類修飾符public: Java 語言類
訪問控制符: public 即公共每 Java 程序主類都必須 public 類作公共工具供其類程序使用應定義 public 類
2 、抽象類修飾符abstract:凡用 abstract 修飾符修飾類稱抽象類所謂抽象類指種類沒具體象種概念類類 Java 語言 abstract 類
3、終類修飾符final:類能類用修飾符 final 說明終類定義 final 類通些固定作用、用完某種標準功能類
4、類缺省訪問控制符:類沒訪問控制符說明具缺省訪問控制符特性類能同包類訪問或引用訪問特性稱包訪問性
3、屬性控制修飾符:訪問控制符非訪問控制符兩類
訪問控制符 4 種:公共訪問控制符: public ;私訪問控制符: private ;保護訪問控制符: protected ;私保護訪問控制符: private protected
非訪問控制符 4 種:靜態域修飾符: static ;終域修飾符: final ;易失 ( 共享 ) 域修飾符: volatile ;暫性域修飾符: transient
1、公共訪問控制符 public :用 public 修飾域稱公共域公共域屬於公共類則所其類所引用由於 public 修飾符降低運行安全性數據封裝性所般應減少 public 域使用
2、私訪問控制符 private : 用 private 修飾員變量 ( 域 ) 能該類自身所訪問能任何其類 ( 包括類 ) 所引用
3、保護訪問控制符 protected :用 protected 修飾員變量三種類所引用:①該類自身;②與同包其類;③其包該類類使用修飾符 protected 主要作用允許其包類訪問父類特定屬性
4、私保護訪問控制符 private protected :用修飾符 private protected 修飾員變量該類本身或該類類兩種類訪問引用
5、靜態域修飾符 static :用 static 修飾員變量僅屬於類變量屬於任何具體象靜態員變量值保存類內存區域公共存儲單元保存某象內存區間任何類象訪問取都相同數據;任何類象修改 , 都同內存單元進行操作
6、終域修飾符 final :終域修飾符 final 用定義符號量類域 ( 員變量 ) 修飾符 final 說明則取值程序整執行程都變
7、易失 ( 共享 ) 域修飾符 volatile :易失 ( 共享 ) 域修飾符 volatile 用說明員變量能幾線程所控制修改說程序運行程員變量能其程序影響或改變取值使用要注意種員變量取值變化通 volatile 用修飾接受外部輸入域
8、暫性域修飾符 transient :暫性域修飾符 transient 用定義暫性變量其特點:用修飾符 transient 限定暫性變量指定 Java 虛擬機認定該暫性變量屬於永久狀態實現同象存檔功能否則類所變量都象永久狀態部存儲象必須同保存些變量
4、控制修飾符:訪問控制符非訪問控制符兩類
訪問控制符 4 種:公共訪問控制符: public ;私訪問控制符: private ;保護訪問控制符: protected ;私保護訪問控制符: private protected
非訪問控制符 5 種:抽象控制符: abstract ;靜態控制符: static ;終控制符: final ;本控制符: native ;同步控制符: synchronized
1、抽象控制符 abstract :用修飾符 abstract 修飾稱抽象抽象種僅沒體操作實現種
2、靜態控制符 static :用修飾符 static 修飾稱靜態靜態屬於整類類;使用 static 修飾、限定屬於某具體類象 由於 static 屬於整類所能操縱處理屬於某象員變量能處理屬於整類員變量即 static 能處理 static 域
3、終控制符 final :用修飾符 final 修飾稱終終功能內部語句能更改即終能重載固定所具功能操作防止前類類父類關鍵錯誤定義保證程序安全性確性所 private 修飾符限定私及所包含 final 類 ( 終類 ) 都認終
4、本控制符 native :用修飾符 native 修飾稱本提高程序運行速度需要用其高級語言書寫程序體該定義本用修飾符 native 修飾;
5、同步控制符 synchronized :該修飾符主要用於線程共存程序協調同步



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章