我們來聊聊物件導向吧 一

2022-05-13 01:26:22 字數 2156 閱讀 7227

前言:什麼是物件導向,對於初學者其實就是個噩夢,但是其實物件導向,也不可怕,我個人理解是:變數把具有一定作用的資料存起來,以便後面使用,而函式則是將經常使用的功能封裝起來以便後面使用,而物件導向的思想其實把擁有重複使用的變數和函式組裝起來的一種思想,分隔成一小塊塊的**,以便管理和日後的維護.繼承:子類繼承父類,子類也同時擁有了父類的功能

封裝:把有相同特性的**斷封裝在一起

多型:即重寫父類的方法

在我初學物件導向的時候,我也覺得特別難,因為很多書,都拿諸如汽車是乙個類,而我的賓士則是乙個物件這樣例子來舉例,剛開始也是很懵,究竟什麼是物件導向?

其實我的理解是這樣的, 物件導向也是脫離不了面向過程的一種思維,舉個栗子吧:比如我有乙個需求,想吃早餐

那麼如果我用面向過程的話:我要做早餐(燒水->下面->放鹽等等的操作,其中的每乙個環節都是緊緊相扣的)

如果我用物件導向就是在美團等等的外賣軟體下單就好了,(而美團等的軟體把做早餐的功能封裝起來了,方便我們去用),這樣的思想就是物件導向的思想

定義類的關鍵字: class 類名

要想使用類裡面的成員則需要: 物件 = new 類名() ; 

類屬性(相當於面向過程的變數)->分兩種:普通類屬性,靜態類屬性

類成員分類(包括3類):   類方法(相當於面向過程的函式)->分兩種:普通類方法,靜態類方法

類常量(相當於面向過程的常量)->只有它自己一種

靜態成員屬性:  public static $height=1.78;

非靜態成員屬性:  public $name='zhangsan';

靜態成員方法:  public static function()

非靜態成員方法:   public function()

類常量:  const area = '廣東'

靜態的呼叫方法:  類名::靜態成員 

非靜態:   物件->非靜態成員

類常量:  類名::類常量

類的內部呼叫:

內部呼叫非靜態屬性: $this->

屬性名內部呼叫靜態屬性: 類名::$

屬性名

內部呼叫非靜態方法: $this->

方法名()

內部呼叫靜態方法 : 類名::方法名()

內部呼叫類常量:  類名::常量名

類的外部呼叫:

外部呼叫非靜態屬性: 物件->屬性名

外部呼叫靜態屬性: 類名::$屬性名

外部呼叫非靜態方法: 物件->方法名()

外部呼叫靜態方法 : 類名::方法名()

外部呼叫類常量:  類名::常量名

物件如果使用"=="等於比較,那麼將只會比較物件中的資料內容,只要內容一致就是true,不會比較所處的空間是否相同;物件如果使用"==="全等於進行比較,那麼不僅會比較物件中的資料內容,還要比較所處的空間是否是同乙個物件空間,如果內容一致但是空間不一樣,那麼也將返回false。

用selt能夠替換本類類名例如:class:area === self::area

public function __construct([形參列表])

這個方法會在建立物件時候自動呼叫常用於初始化一些資料,php不負責定義只負責呼叫

public function __destruct([形參列表])

這個方法會在物件銷毀時候自動呼叫常用於銷毀資料,php不負責定義只負責呼叫

之所以物件的值傳遞和物件的引用傳遞效果是一樣的,是因為無論是物件的值傳遞還是物件的引用傳遞,最終大家指向的都是同乙個物件空間,所以無論改變哪乙個,另外乙個也都會受到影響。

新物件 = clone 物件

__clone方法會在轉殖乙個新的物件時候建立

又是一年跳槽季,我們來聊聊面試吧

剛過完年,由於部門有同事離職,而且今年的工作規劃任務量更大,難度也公升級了,因此找 商推一些效能測試的同學來面試。前後看了有一百多份簡歷,篩選了二十幾份通知面試。這裡,針對面試過程中發生的一些事以及個人之前的面試經驗,再來聊聊面試吧,這次,從面試官的角度來說。之前也寫了幾篇關於面試的部落格,下面是傳...

我們聊聊快排吧

最近一直在看 程式設計珠璣 第二版這一本書,裡面的東西真的很實用,以前也看過不少講解快排的書,但是在程式設計珠璣上看到的講解是我見過最好理解,也是最詳細的,從效率和空間以及實現等各個方面都做了詳細說明,並比較了幾種變形的快排的效率,所以在這把我看到的內容寫出來記錄,留著以後忘了的時候看。1.1.插入...

我們來聊聊技術債務

技術債務 技術債務 是開發團隊在設計或架構選型時,從短期效應的角度選擇了乙個易於實現的方案。但從長遠來看,這種方案會帶來更消極的影響,亦即開發團隊所欠的債務。簡單的說就是為了快速地解決問題,而採取的不規範的方案。比如 開發工程師將某個判斷條件寫死 測試工程師未進行深入自動化測試 架構師運用了乙個即將...