PHP類與對象使用---技巧總結

public(公有):公有類可以在任何地方被訪問;

protected(受保護):受保護的類成員則可以被其自身及其子類和父類訪問;

private(私有):只能被自身的類訪問。


1、類常量const :類中始終保持不變的值定義為常量,且定義和使用常量的時候不需要使用 $ 符號

注意:常量的值必須是一個定值,不能是變量,類屬性,數學運算的結果或函數調用。

2、自 PHP 5.3.0 起,可以用一個變量來動態調用類。但該變量的值不能為關鍵字(如selfparentstatic)。

3、范圍解析操作符(也可稱作 Paamayim Nekudotayim)或者更簡單地說是一對冒號,可以用于訪問?靜態?成員,類常量,還可以用于覆蓋類中的屬性和方法。

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


4、PHP 5 支持抽象類和抽象方法。定義為抽象的類不能被實例化。任何一個類,如果它里面至少有一個方法是被聲明為抽象的,那么這個類就必須被聲明為抽象的。被定義為抽象的方法只是聲明了其調用方式(參數),不能定義其具體的功能實現。


abstract?class ? ? AbstractClass

{

? ? ? ? ? ?//?強制要求子類定義這些方法

? ? ? ? ? ? abstract ? ?protected ? ?functiongetValue();

? ? ? ? ? ? abstract ? ?protected ? ?functionprefixValue($prefix);

? ? ? ? ? ?//?普通方法(非抽象方法)

? ? ? ? ? ? ?public?functionprintOut()?{

? ? ? ? ? ? ? ? ? ? ? ?print$this->getValue()?."\n";

? ? ? ? ? ? ? ? }

}

classConcreteClass1extendsAbstractClass

{

? ? ? ? ? ? ? ? ?protected?functiongetValue()?{

? ? ? ? ? ? ? ? ? return"ConcreteClass1";

}

public?functionprefixValue($prefix)?{

? ? ? ? ? ? ? ?return"{$prefix}ConcreteClass1";

}

}

class ? ?ConcreteClass2 ? ? ? ? ?extends ? ? ? ? ? ? AbstractClass

{

public?functiongetValue()?{

return"ConcreteClass2";

}

public?functionprefixValue($prefix)?{

return"{$prefix}ConcreteClass2";

}

}

$class1=?newConcreteClass1;

$class1->printOut();

echo$class1->prefixValue('FOO_')?."\n";

$class2=?newConcreteClass2;

$class2->printOut();

echo$class2->prefixValue('FOO_')?."\n";

?>

////答案

ConcreteClass1

FOO_ConcreteClass1

ConcreteClass2

FOO_ConcreteClass2


5、使用接口(interface),可以指定某個類必須實現哪些方法,但不需要定義這些方法的具體內容。

接口是通過interface關鍵字來定義的,就像定義一個標準的類一樣,但其中定義所有的方法都是空的。

接口中定義的所有方法都必須是公有,這是接口的特性。

要實現一個接口,使用implements操作符。類中必須實現接口中定義的所有方法,否則會報一個致命錯誤。類可以實現多個接口,用逗號來分隔多個接口的名稱。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 接口/抽象類意義規范、擴展、回調為其子類提供一個公共的類型 封裝子類中得重復內容 定義抽象方法,子類雖然有不同的實...
    MigrationUK閱讀 2,187評論 1 28
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,740評論 18 399
  • 傳送門 解讀阿里Java開發手冊(v1.1.1) - 異常日志 前言 阿里Java開發手冊談不上圣經,但確實是大量...
    kelgon閱讀 4,374評論 4 50
  • 一:java概述:1,JDK:Java Development Kit,java的開發和運行環境,java的開發工...
    ZaneInTheSun閱讀 2,686評論 0 11