物件導向(五)

2022-08-13 08:45:14 字數 1378 閱讀 6962

物件的複製(轉殖)clone(預設為淺轉殖)

淺轉殖:只能轉殖物件的!非物件!非資源!資料

深轉殖:對乙個物件進行完全轉殖;想要實現需要深轉殖需要對物件使用魔術方法「_clone()」,並且在裡面實現,認為複製淺轉殖複製不了資料

物件遍歷

物件也可以使用foreach進行遍歷,

注意:1.只能遍歷屬性

2.只能遍歷看得到的屬性

舉個例子:

php內建標準類

這個類內部沒有任何屬性,但是可以使用這個類的屬性--不存在的屬性。

資料轉化為物件

轉換基本語法:  

物件轉換為物件:沒有變化;

陣列轉換為物件:陣列的鍵名當做屬性名,值為對應的值;

通常數字下標對應屬性並不方便操作( -> ),所以通常就適合純數字下標的陣列。   

null轉換為物件(空物件);

其他標量資料轉換為物件:屬性名為固定的「scalar」,值為該變數的值。

型別約束

許多語言中,型別約束是語法上的要求,在定義乙個變數時,必須指定型別,並且以後也只能儲存該型別資料(強型別語言)

php屬於弱型別語言,特點是變數無需指定型別,而且在其後也可以儲存任何型別。

注意:在php的較新語法中,在某些特定場合,針對某些特定型別,也可以進行語法約束;

特定場合:函式(或者方法)的形參變數

特定型別:物件型別(類名)、介面型別(介面名)、陣列型別(array)、函式型別(callable);

function f1 (類名 $p1); 要求該引數只能使用該類的物件;

function f1 (介面名 $p1);要求改引數只能舒勇實現該介面的物件;

function f1 (array $q1);要求改引數只能使用陣列;

function f1 (callable $q1);要求改引數只能是乙個函式或者方法,此時稱之為**函式或**函式。

Java物件導向(五)

類間關係 1.1 this與super 繼承關係圖 當子類建立物件後,該子類物件本身可以使用this來指代,該物件當助的父類物件空間可以使用super指代。public class person public person string name,int age getters和setters省略 ...

php物件導向程式設計五

1.抽象關鍵字 abstract 抽象就是無法確切的說明,單又有一定的概念或者名稱,在php中宣告乙個抽象類或者方法我們需要使用 abstract關鍵字。2.抽象方法和抽象類的定義 乙個類中至少有乙個方法是抽象的,我們稱之為抽象類。所以如果定義抽象類首先定義抽象方法。abstract class m...

Java物件導向專題(五)

修飾符內部類 區域性內部類 匿名內部類 其實就是資料夾 舉例 方案1 按功能分 方案2 按模組分 package 包名 多級分包用 分開 乙個檔案中,下列語句包含的數量 package 只能有乙個 import 可以有多個 class 可以有多個,但建議乙個 本類同乙個包下 子類和無關類 不同包下 ...