Java基礎 物件導向

2021-07-04 12:02:34 字數 2378 閱讀 6107

可以拿生活中的例項來理解面向過程與物件導向,例如五子棋。

封裝(encapsulation) 繼承(inheritance) 多型(polymorphism)

1.定義:

隱藏物件的屬性和實現細節,僅對外公開介面,控制在程式中屬性的讀取和修改的訪問級別。
2.封裝途徑4. 好處3.原則4.成員變數和區域性變數:

成員變數:

a)成員變數定義在類中,在整個類中都可以被訪問。

b) 成員變數隨著物件的建立而建立,存在於物件所在的堆記憶體中。

c) 成員變數有預設初始化值。

區域性變數:

a) 區域性變數只定義在區域性範圍內,如:函式內,語句內等。

b) 區域性變數存在於棧記憶體中。

c) 作用的範圍結束,變數空間會自動釋放。

d) 區域性變數沒有預設初始化值。

1.繼承注意:千萬不要為了獲取其他類中的功能,簡化**而繼承。必須是類與類之間有所屬關係才可以繼承。這種所屬關係的表示為is a。

2.繼承的特徵

/*描述:父類方法father有兩個方法:a和b,a方法呼叫b方法

*子類son覆蓋b方法,

*如果子類son呼叫a方法,則顯示是什麼

*/public

class

test1

}class father

void b()

}class son extends father

}

執行結果:

說明:這裡的例子說明了類的覆蓋,son類其實是繼承了father類的a方法,那麼,b方法被覆蓋後,自然呼叫的是覆蓋後的方法。

super的使用和this的使用幾乎一致,且兩者都存在於方法區中。

this表示本來物件的引用。

super表示父類物件的引用。

1、子類覆蓋父類,必須保證子類許可權大於等於父類許可權,才可以覆蓋,否則編譯失敗。

2、靜態只能覆蓋靜態。

3、父類中的私有方法不能被重寫。

小知識點:

過載:只看同名函式的引數列表。

重寫:子父類方法要一模一樣。

初始化順序:為什麼子類一定要訪問父類中的建構函式?

建構函式結論:

多型也叫動態繫結、後期繫結或執行時繫結。

多型有兩種表現形式:過載和覆蓋

1.覆蓋

//多型的體現

public

class

test1

}//父類

class father

//方法b

void b()

}//子類son1

class son1 extends father

}//子類son2

說明:b方法被子類son1和son2覆蓋重寫,子類的不同物件的呼叫體現了不同的使用。

2.過載

標識乙個函式除了函式名外,還有函式的引數(個數和型別)。也就是說,乙個類中可以有兩個或更多的函式,叫同乙個名字而他們的引數不同。

//加法器,實現整數和小數加法,需要過載方法

public

class

test2

}class math

//加法方法傳參為double型

void add(double a, double b)

}

結果:

方法的過載和類的方法覆蓋組成了多型。

Java基礎 物件導向

1.理解物件導向 強調的是功能行為 將功能封裝進物件,強調具備了功能的物件。1.1 物件導向的好處 先要去找具有所需的功能的物件來用。如果該物件不存在,那麼建立乙個具有所需功能的物件。這樣簡化開發並提高復用。1.2 物件導向開發,設計,特徵 開發的過程 其實就是不斷的建立物件,使用物件,指揮物件做事...

java基礎 物件導向

面向過程的思想 一步一步去實現,而具體的每一步都需要我們去實現和操作,這些步驟相互協作完成我們的需求 面向思想 將步驟和功能進行封裝,用的時候,找對應的類 物件導向不關注過程 物件導向就相當於指揮者 面向過程相當於員工 物件導向是基於面向過程 特點 是一種更符合人們思考習慣的思想。可以將複雜的事情簡...

Java物件導向基礎

把具有共同特點和行為的東西封裝成乙個個物件。例項化類 建立物件 使用物件的屬性或方法。物件儲存在jvm的堆記憶體中,物件的識別符號 引用值儲存在棧記憶體 儲存了物件在堆記憶體中的位址。class的許可權修飾符只可以用public和default public class classname 成員方法...