PHP物件導向的三大特徵 封裝 繼承 多型

2021-09-26 22:00:40 字數 1249 閱讀 2881

封裝

封裝事把物件中的成員屬性和成員方法,加上訪問修飾符,使其盡可能隱藏物件的內部細節,以達到對成員的訪問控制(是訪問的控制,而不是拒絕訪問)

3種訪問修飾符

public(公有的 預設)

private(私有的)

protected(受保護的)

只要在宣告成員屬性或成員方法的時候,使用private關鍵字修飾,就實現了對成員的私有封裝,封裝後的成員在外部是不能直接訪問的,只能在物件的內部方法中使用$this來訪問

魔術方法

__set() 代替通用的set賦值方法。在直接設定私有屬性時呼叫(該方法需要兩個引數)

__get() 代替通用的get賦值方法。在直接訪問私有成員屬性的時候自動呼叫(該方法需要乙個引數)

__isset()是在使用isset()方法判斷乙個私有屬性是否存在時自動呼叫__isset()魔術方法(引數是屬性名稱)

__unset()是在使用unset()方法,刪除乙個私有屬性的時候,自動呼叫__unset()魔術方法(引數是屬性名稱)

這四個魔術方法只對類中的私有後者是受保護的成員屬性有效

魔術方法前的修飾詞可以是公有的、私有的、不影響呼叫。

繼承1.把兩個類或者多個類中的相同部分可以提出來–>父類(基類)子類(派生類)

2.對於php來說是單繼承的

只能繼承乙個父類,但是乙個父類可以有多個子類

1.子類使用extends繼承父類,子類可以將父類中的所有內容都繼承過來

2.private 是私有的,只能自己用,別人不能用.包括子類也不能用

3.protected 受保護的許可權,只能是自己和自己的子類可以使用,不能在除了自己和子類的外邊使用

4,public 是公開的許可權,所有都可以使用,自己、子類、類外都可以使用

多型繼承中的重寫(覆蓋)—在子類中可以寫和父類同名的方法

在子類中定義的與父類中同名的屬性是對父類屬性的重寫(覆蓋)

在子類中定義的與父類中同名的方法是對父類方法的重寫(覆蓋)

在子類中訪問父類的方法

類名::成員

parent::成員 (使用parent::訪問父類中被覆蓋的方法)

重要:只要是子類的構造方法,去覆蓋父類的構造方法,一定要在子類構造方法的最上邊呼叫一下父類被覆蓋的構造方法。重寫(覆蓋)的時候許可權問題:子類只能大於或者等於父親的許可權,不能變小私有的不能覆蓋,二十完全當作自己全新的。

物件導向三大特徵 封裝

一 封裝 1 程式的問題 無法保證資料的安全性,同時也無法保證資料的有效性。二 封裝的要求 1 private 私有的,被private修飾的內容只能在類的內部使用public 公開的 2 為私有的屬性提供公開的get set方法。a為屬性賦值 set方法 public void set屬性名 資料...

物件導向的三大特徵 封裝

封裝 encapsulation 通俗的講就是呼叫方僅知道被呼叫方能做什麼,怎麼做的不知道,封裝是物件導向模組化的基礎。通過封裝將物件執行所需的方法和資料封裝在程式物件中,隱藏物件的屬性和實現細節。當這個物件發生有bug時,僅需修改物件內部的方法,不會擴散到程式其它部分。示例 在 程式中在會員生日時...

物件導向三大特徵之封裝

上半句 下半句。三流的書籍和部落格只會告訴你上半句,因為它們的作者自己也不知道下半句,而讓我們接近真理,走的更遠的是下半句。並且下半句往往非常簡單。上半句就是一些半吊子挖出的天坑,就算下半句非常簡單。因為上半句的誤導產生的阻礙,讓無數人很多年也接觸不到講述真理的下半句。時刻警醒 我們要學習的是講述真...