1. 程式人生 > >java基礎筆記(面向物件)

java基礎筆記(面向物件)

一、封裝

使用者直接對類內部的屬性進行操作會導致資料的錯誤、混亂或安全性問題。可以通過宣告為private ,再提供get/set 方法進行訪問。

二、過載

在一個類中允許同事存在一個以上同名函式,只要引數個數,引數型別 不同即可。

三、this 關鍵詞

是當前類的一個物件的引用。

四、類的繼承(extends)

子類繼承了父類,就繼承了父類中非私有的屬性和方法。子類中可以使用父類的屬性和方法,也可以建立新的資料和方法。

java 只支援單繼承,不允許多繼承。

– 一個子類只能有一個父類。

– 一個父類可以派生出多個子類。

– 子類不能繼承伺服器的構造方法。

五、訪問控制
在這裡插入圖片描述
六、重寫

子類可以根據需要對從父類繼承來的方法進行改造(方法的重置/重寫),在程式執行時,子類的方法將覆蓋父類的方法。

覆蓋的方法必須和被覆蓋方法具有相同的方法名、引數列表和返回值。

覆蓋方法不能使用比被覆蓋方法更嚴格的訪問許可權。

七、super 關鍵字

是在子類中對父類的引用。

子類的構造器必須呼叫父類的一個構造器。不顯示呼叫,則預設呼叫父類無參的構造器。

super 和 this 不能同時在一個建構函式中出現。

super 和 this 只能作為建構函式的第一行出現。

八、多型

同樣型別的變數,呼叫同樣的方法,卻產生完全不同的行為。

父類指向子類的引用(父類 = new 子類)。父類呼叫方法,呼叫的將是子類重寫的方法。

例子:

Person p1 = new Man();

p1.walk(); // 呼叫的是子類重寫的方法。

父類多型的情況下(父類指向子類的引用(父類 = new 子類)),父類不能呼叫父類沒有的方法。可以通過強制型別轉換的方式解決此問題。

例子:

Person p1 = new Man();

Man man = (Man) p1;

父類的物件可以轉換為任何子類的型別,但有可能會發生 型別轉換異常。

只能在有父子類關係的情況下才能強制型別轉換。

九、instanceof 操作符

X instanceof A :檢驗X 是否為類A 的物件,返回值為boolean 型。

要求X 所屬的類與類A 必須是父子類關係。否則編譯錯誤。

十、static 關鍵字

static{} 靜態程式碼塊在類載入時執行,並且只執行一次。

十一、單子(singleton)設計模式

採取一定的方法保證在整個軟體系統中,對某個類智慧存在一個物件例項。並且該類只提供了一個取得其物件例項的方法。

構造器私有化。

在該類內部提供一個私有的靜態例項物件。

提供一個get 方法 供外部使用。

例子:

private JavaTest() {}

private static JavaTest javaTest = new JavaTest();

public static JavaTest getJavaTest() {

return javaTest;

}

十二、final 關鍵字

final 可以修飾類,屬性和方法。表示最終的。

final 修飾的屬性,是最終的屬性 - 屬性值不能被修改,即常量。

屬性必須在初始化,或在非靜態程式碼塊,或在構造器中進行初始化。

final 修飾的方法,是最終的方法 - 該方法不能被修改 - 該方法不能被重寫。

final 修飾的類,是最終的類 - 該類不能被擴充套件 - 該類不能被繼承。

十三、抽象類(abstract)

用於修飾方法 和 類。

abstract 修飾的方法: 沒有方法體,只有方法宣告。

abstract 修飾的類 : 抽象類,不能被例項化。抽象類是用來被繼承的,抽象類的子類必須重寫父類的抽象方法,並提供方法體。

有抽象方法的類一定是抽象類,但抽象類中可以沒有抽象方法。

不能用abstract 修飾私有方法,構造方法,靜態方法。

十四、介面(interface)

介面是抽象方法和常量的定義集合。

介面是一種特殊的抽象類,介面中只能包含常量和方法的定義,而沒有變數和方法的實現。

介面中所有的成員變數預設由public static final 修飾。

介面中所有的方法都預設由public abstract 修飾。介面中沒有構造方法。

實現介面的類必須提供介面中所有方法的具體實現。

介面允許多實現。一個類可以實現多個介面。

介面與實現類之間存在多型性。

介面可以繼承另一個介面。

十五、內部類

在類的內部定義的一個類。相當於一個類的內部成員。

在類的外部可以訪問該類的內部類。

靜態內部類中的方法不能訪問外部類的非靜態物件。

十六、異常

java 中,將程式執行中發生的不正常情況稱為“異常”。

java 中的異常用於處理非預期的情況,如檔案沒找到,網路錯誤,非法引數等。

java 程式執行過程中所發生的異常事件可分為兩類:

Error : JVM 系統內部錯誤、資源耗盡等嚴重情況。

Exception : 其他因程式設計錯誤或偶然的外在因素導致的一般問題。如空指標訪問,試圖讀取不存在的檔案,網路連線中斷。

自定義異常:

public class JavaTest extends RuntimeException {

public JavaTest() {

}

public JavaTest(String msg) {

super(msg);

}

}