ホームページ  >  記事  >  バックエンド開発  >  PHP 入門チュートリアル - オブジェクト指向_PHP チュートリアル

PHP 入門チュートリアル - オブジェクト指向_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:16:13860ブラウズ

私の考えでは、オブジェクト指向とはさまざまな 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

コードは次のとおりですコードをコピー

商品に関しては下記の通り設計しております。

インターフェース Product を宣言し、Product から Book インターフェースを継承します。

オンラインで販売される書籍は、最終的に Book インターフェイスを実装する BookOnline クラスになります。

Product.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 = "内部ユーザー";
}
?>

コードは次のとおりです コードをコピー


/*製品関連のカテゴリ*/
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;
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/628660.html技術記事私の考えでは、オブジェクト指向とはさまざまな PHP のクラス、メソッド、関数を指します。ここでオブジェクト指向 PHP の入門チュートリアルを紹介します。興味がある方は参照してください。 最初の状況…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。