PHP 高階知識 物件導向

2021-09-29 03:31:40 字數 2826 閱讀 9094

主要包含的內容:物件導向,設計模式,資料結構與演算法。

物件導向和面向過程均為一種程式設計思想。

面向過程:分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫即可。

物件導向:把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描述某個事物在解決問題的步驟中的行為。

物件導向是相對面向過程的一種程式設計方式。操作的是乙個個的物件,也有自身的優缺點。比如,物件導向在效能上肯定不如面向過程好,畢竟物件導向需要例項化物件,需要消耗cpu和記憶體。但是優點也是很明顯的,畢竟在乙個大型的專案裡,物件導向更易於維護和管理,條理也清晰,是一種重要的程式設計思想。

物件導向的四大特徵:封裝、繼承、多型、抽象

總結來說,如果說封裝和繼承是物件導向的基礎,那麼多型則是物件導向最精髓的理論。掌握多型必先了解介面,只有充分理解介面才能更好地應用多型。

附:面試題答案小結:

物件導向相對於面向過程來說,它從現實世界中客觀存在的事物(即物件)出發來構造軟體系統,並根據這些事物的本質特點,把它抽象地表示為系統中的基本構成單位,更能接近現實事物本來的特性和面貌。

物件導向的優點:

1,一切皆物件,相對於面向過程程式設計而言提高了**的可重用性;

2,物件導向的三個重要特徵:封裝、繼承和多型,提高系統的靈活性與健壯性;

3,物件導向的屬性和方法的可訪問性提高了程式的安全性,資料調取的多樣性。

抽象類與抽象方法

**如下:

<?php

abstract

class

person

//被定義為抽象的方法只是宣告了其呼叫方式(引數),不能定義其具體的功能實現。

abstract

protected

function

hello()

;abstract

protected

function

say();

public

function

show()

}//class

worker

extends

person

public

function

say(

)}

介面inte***ce

使用介面(inte***ce),可以指定某個類必須實現哪些方法,但不需要定義這些方法的具體內容。

介面是通過inte***ce關鍵字來定義的,就像定義乙個標準的類一樣,但是其中定義所有的方法都是空的。

介面中定義的屬性是類常量,定義的所有方法都必須是公有的抽象方法,所以public,abstract不必寫,這是介面的特性。

<?php

inte***ce

person1

inte***ce

person2

class

worker

implements

person1

,person2

public

function()

public

function

hello()

}

implements與 extends區別

1,在類的宣告中,通過關鍵字extends來建立乙個類的子類。乙個類通過關鍵字implements宣告自己使用乙個或多個介面;

extends是繼承某個類,繼承之後可以用父類的方法,也可以重寫父類的方法,implements是實現多個介面,介面的方法一般為空必須重寫才能使用。

2,extends是繼承父類,被繼承的類不是

關鍵字功能

區別1區別2

區別3extends

建立子類,繼承某個父類

可以使用父類的方法,也可以重寫父類的方法

被繼承的類不是宣告為final或者定義為abstract就能繼承,不支援多重繼承

可以實現父類,也可以呼叫父類初始化this.parent(),而且會覆蓋父類定義的變數或函式

implements

宣告自己使用乙個或多個介面

實現多個介面,必須重寫介面的方法才能使用

可以實現多個介面,用逗號分開,比如class a extends b implements c,d,e

實現父類,子類不可以覆蓋父類的方法或變數,即使子類定義與父類相同的變數或者函式,也會被父類取代掉

final關鍵字

php5中新增的乙個關鍵字,如果父類中的方法被宣告為final,則子類無法覆蓋該方法。同樣如果乙個類被宣告為final,則不能被繼承。

注意:屬性不能被定義為final,只有類和方法才能被定義為final。

範圍解析操作符

範圍解析操作符(::)可以用於訪問靜態成員,類常量,還可以用於覆蓋類中的屬性和方法。

self,parent和static這三個特殊的關鍵字是用於在類定義的內部對其屬性或方法進行訪問的。

protected,private與public的區別

public

private

protected

可以在程式中的任何位置(類內、類外)被其他的類和物件呼叫,子類可以繼承和使用父類中所有的公共成員

被private修飾的變數和方法,只能在所在的類的內部被呼叫和修改,不可以在類的外部被訪問,在子類中也不行用protected修飾的類成員,可以在本類和子類中被呼叫,但是在其他地方不能被呼叫

python知識 物件導向程式設計

class person def init self,name self.name name p1 person xiao ming p2 person wang wu 在python中,類通過class關鍵字定義。以person為例,定義乙個person類如下 class person objec...

Python基礎知識 物件導向

物件導向英文單詞 object oriented 簡稱 o o 物件導向的學習 物件導向的語法學習 簡單,靠記憶就行,比較多 物件導向的思想學習 稍微有點難度,主要是前期不太適應 物件導向的優勢 能夠實現良好的程式結構,方便程式的開發和管理維護 效率 執行效率 計算機 物件導向效率不如過程化的快 開...

Java基礎知識 物件導向2

b 構造方法格式特點 b 構造方法注意事項 b 構造方法 構造方法 成員方法 b 給成員變數賦值 c 輸出成員變數值的方式 構造方法,get set 方法,以及乙個顯示所有成員資訊的方法。並測試。b 畫圖演示 舉例 d 可以通過類名呼叫 b 案例演示 b 靜態方法只能訪問靜態的成員變數和靜態的成員方...