私の考えでは、オブジェクト指向とはさまざまな PHP のクラス、メソッド、関数を意味します。興味のある学生は、PHP オブジェクト指向の入門チュートリアルを紹介します。
最初のケース: サブクラスがコンストラクターを定義していない場合、デフォルトでコンストラクターが継承されます。
2 番目のケース: サブクラスでコンストラクターが定義されている場合、それは継承されません。
4.x の場合、親クラスがサブクラスと同じ名前の関数を定義した場合、それはサブクラスのコンストラクターとみなされます。
コードは次のとおりです
| コードをコピー
|
クラスA
{
関数A()
{
echo "私は A. n のコンストラクターです";
}
関数B()
{
echo "私はクラス A の B という名前の通常の関数です。 n";
echo "私は A. n のコンストラクターではありません";
}
}
クラス B は A を拡張します
{
関数C()
{
echo "私は通常の関数です。 n";
}
}
//php4 は B() を呼び出します
$b = 新しい B;
|
上記のコードは php5 で A を呼び出しますが、B() は呼び出しません
PHP オブジェクト指向: インターフェイスの例
オンライン販売システムを設計しており、ユーザー部分は次のように設計されています:
ユーザーを NormalUser、VipUser、InnerUser の 3 つのタイプに分類します。
ユーザーのさまざまな割引に基づいて、ユーザーが購入した製品の価格を計算する必要があります。
また、将来の拡張やメンテナンスのためにスペースを確保する必要があります。
ユーザー部分は最初にインターフェイス User を宣言し、ユーザーはすべて User の実装です。
user.php
コードは次のとおりです
| コードをコピー
|
/*
* ユーザーインターフェースを定義します。
* およびサブクラス NormalUser、VipUser、InnerUser
*/
// ユーザー インターフェイスは 3 つの抽象メソッドを定義します。
インターフェース ユーザー{
パブリック関数 getName();
パブリック関数 setName($_name);
パブリック関数 getDiscount();
}
抽象クラス AbstractUser は User{ を実装します
プライベート $name = "" //名前 ;
protected $discount = 0 //割引 ;
protected $grade = "" //レベル ;
パブリック関数 __construct($_name){
$this->setName($_name);
}
パブリック関数 getName(){
$this->name; を返します
}
パブリック関数 setName($_name){
$this->name = $_name;
}
パブリック関数 getDiscount(){
$this->割引を返す;
}
パブリック関数 getGrade(){
$this->grade; を返す
}
}
class NormalUser extends AbstractUser {
保護された $discount = 1.0;
protected $grade = "通常ユーザー";
}
クラス VipUser は AbstractUser を拡張します {
保護された $discount = 0.8;
protected $grade = "VipUser";
}
クラス InnerUser extends AbstractUser {
保護された $discount = 0.7;
protected $grade = "内部ユーザー";
}
?>
|
商品に関しては下記の通り設計しております。
インターフェース Product を宣言し、Product から Book インターフェースを継承します。
オンラインで販売される書籍は、最終的に Book インターフェイスを実装する BookOnline クラスになります。
Product.php
コードは次のとおりです |
コードをコピー |
/*製品関連のカテゴリ*/
Interface Product{//製品インターフェイスを定義します
パブリック関数 getProductName();
パブリック関数 getProductPrice();
}
インターフェイス Book extends Product { // 本は製品のカテゴリです
パブリック関数 getAuthor();
}
class BookOnline は Book{ // 書籍クラスを定義します。
private $productName // 製品名
private $productPrice // 商品価格
プライベート $author //著者
パブリック関数 __construct($_bookName){
$this->productName = $_bookName;
//関連する初期化コードをここに配置します。
//データベースに関連付けられたコード
}
パブリック関数 getProductName(){
$this->製品名を返します;
}
パブリック関数 getProductPrice(){
//ここでデータベースから価格を読み取ります。
//価格が100元であると仮定します。
$this->製品価格 = 100;
$this->productPrice; を返す
}
パブリック関数 getAuthor(){
//データベースから値を取得します
$this->author; を返す
}
}
?>
|
決済に関しては、独立した決済クラスを使用し、静的メソッドを使用して計算を行います。商品決済。パラメータの型に注意してください。
コードは次のとおりです |
コードをコピー |
include_once("User.php");
include_once("Product.php");
//その製品を買うのにいくらかかりましたか?
クラス ProductSettle{
public static function FinalPrice(ユーザー $_user,製品 $_product,$number = 1){
$price = $_user->getDiscount() * $_product->getProductPrice() * $number;
$price を返します;
}
}
?>
|
以下は実装例です。自分で分析することもできます。
コードは次のとおりです |
コードをコピー |
include_once("./class/User.php");
include_once("./class/Product.php");
include_once("./class/ProductSettle.php");
$数値 = 10;
$book = new BookOnline("デザイン モード");
$user = new NormalUser("トム");
$price = ProductSettle::finalPrice($user,$book,$number);
$str = "こんにちは、親愛なるユーザー " . $user->getName() " ";
$str .= "あなたのレベルは ". $user->getGrade() .", ";
$str .= "あなたの割引は " . $user->getDiscount() " ";
$str .= "$number 本を購入 " ". $book->getProductName() ;
$str .= "》価格は $price
";
エコー $str;
$user = 新しい vipUser("トム");
$price = ProductSettle::finalPrice($user,$book,$number);
$str = "こんにちは、親愛なるユーザー " . $user->getName() " ";
$str .= "あなたのレベルは ". $user->getGrade() .", ";
$str .= "あなたの割引は " . $user->getDiscount() " ";
$str .= "$number 本を購入 " ". $book->getProductName() ;
$str .= "》価格は $price
";
エコー $str;
$user = 新しい InnerUser("Tom");
$price = ProductSettle::finalPrice($user,$book,$number);
$str = "こんにちは、親愛なるユーザー " . $user->getName() " ";
$str .= "あなたのレベルは ". $user->getGrade() .", ";
$str .= "あなたの割引は " . $user->getDiscount() " ";
$str .= "$number 本を購入 " ". $book->getProductName() ;
$str .= "》価格は $price
";
エコー $str;
?>
|
http://www.bkjia.com/PHPjc/628660.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/628660.html技術記事私の考えでは、オブジェクト指向とはさまざまな PHP のクラス、メソッド、関数を指します。ここでオブジェクト指向 PHP の入門チュートリアルを紹介します。興味がある方は参照してください。 最初の状況…