ホームページ > バックエンド開発 > PHPチュートリアル > オブジェクト指向 php 学習ノート、php 学習ノート_PHP チュートリアル

オブジェクト指向 php 学習ノート、php 学習ノート_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:14:46
オリジナル
799 人が閲覧しました

phpの勉強ノート - オブジェクト指向、phpの勉強ノート

public Public: このクラス、サブクラス、外部オブジェクトはすべて呼び出すことができます
protected 保護済み: このクラスのサブクラスは実行可能ですが、外部オブジェクトを呼び出すことはできません
private プライベート: このクラスのみを実行でき、サブクラスと外部オブジェクトを呼び出すことはできません
オブジェクト指向プログラミングの3つの大きな特徴

1) 閉鎖性

閉鎖は情報隠蔽とも言えます。クラスの利用と実装を分離し、外部と接続するインターフェース(メソッド)を限定することです。このクラスを使用する開発者は、このクラスの使用方法を知るだけでよく、このクラスがどのように実装されるかを気にする必要はありません。そうすることで、開発者は他のことに集中できるようになり、同時にプログラム間の相互依存によって生じる不都合も回避できます。

2) 継承

継承とは、派生クラス (サブクラス) が 1 つ以上の基本クラス (親クラス) のプロパティとメソッドを自動的に継承し、新しいプロパティとメソッドをオーバーライドまたは追加できることを意味します。継承によりオブジェクトとクラスの作成が簡素化され、コードの再現性が向上します。継承は単一継承と多重継承に分けられます。PHP は単一継承をサポートします。つまり、サブクラスは親クラスを 1 つだけ持ちます。

3)ポリモーフィズム

ポリモーフィズムとは、同じクラスの異なるオブジェクトが同じメソッドを使用して異なる結果を取得できることを意味します。この手法はポリモーフィズムと呼ばれます。ポリモーフィズムにより、ソフトウェアの柔軟性と再利用性が向上します。

クラスの定義

クラスには、独自の定数、変数 (「プロパティ」と呼ばれる)、関数 (「メソッド」と呼ばれる) を含めることができます。
多くのオブジェクト指向言語と同様、PHP も class キーワードとクラス名を使用してクラスを定義します。クラスの形式は次のとおりです:

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

クラス myobject{
//……
}
?>

定義: 羽の鳥は群れを成し、類似した特性を持つオブジェクトはクラスにグループ化され、これらの類似したオブジェクトが持つ同じプロパティとメソッドが定義されます。クラスは、クラスの定義と呼ばれる類似のオブジェクトの記述であり、そのクラスのオブジェクトの設計図またはプロトタイプです。

クラスのオブジェクトは、クラスのインスタンスと呼ばれます。クラスのインスタンスを作成するには、new キーワードを使用する必要があります。
001ZpQGYty6MeYnSNUh25&690

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

//クラスの定義はキーワード class で始まり、通常、クラス名は各単語の最初の文字が大文字になります
。 クラス NbaPlayer{
public $name = "ジョーダン" // 属性を定義します
; パブリック $height = "198cm";
public $team = "雄牛";
public $playerNumber = "23";

//メソッドを定義する
パブリック関数 run(){
echo "Runningn";
}
パブリック関数 dribblr(){
「ドリブル」をエコーする;
}
パブリック関数 pass(){
echo "通過";
}
}
//クラスからオブジェクトへのインスタンス化
// クラスをオブジェクトにインスタンス化するときは、キーワード new を使用し、その後に new 、その後にクラス名と 1 組のかっこを続けます
$ジョーダン = 新しい NbaPlayer();

//オブジェクト内の属性メンバーには、「->」記号を使用してアクセスできます

echo $jordan->name."n";

// オブジェクト内のメンバー メソッドには、「->」記号を使用してアクセスできます

$ジョーダン->ドリブル();
$jordan->run();
?>

メンバーメソッド

クラス内の関数はメンバーメソッドと呼ばれます。関数とメンバー メソッドの唯一の違いは、関数は独立した関数を実装するのに対し、メンバー メソッドはクラス内の動作を実装し、クラスの一部であることです。

上記の myobject クラスを展開し、それにメンバー メソッドを追加しましょう。コードは次のとおりです。

コードをコピーします コードは次のとおりです:
クラスミオブジェクト{
関数 getobjectname($name){
echo "製品名は次のとおりです: ".$name;
}
}
?>

このメソッドの機能は、メソッドのパラメータを通じて渡される製品名を出力することです。
クラスは抽象的な記述であり、同様の機能を持つオブジェクトの集合です。クラス内のメソッドと変数を使用する場合は、まずそれらをエンティティ、つまりオブジェクトに実装する必要があります。

クラス定数
変数があるので定数も当然あります。定数とは、変化しない量であり、一定の値です。よく知られている定数は pi です。定数を定義するには、次のようなキーワード const を使用します:
ConstPI=3.14159;

コンストラクター

PHP 5 では、開発者がクラス内のコンストラクターとしてメソッドを定義できます。コンストラクターを持つクラスは、新しいオブジェクトが作成されるたびにこのメソッドを呼び出すため、オブジェクトを使用する前に初期化作業を行うのに非常に適しています。

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

//クラスの定義はキーワード class で始まり、通常、クラス名は各単語の最初の文字が大文字になります
。 クラス NbaPlayer{
public $name = "ジョーダン" // 属性を定義します
; パブリック $height = "198cm";
public $team = "雄牛";
public $playerNumber = "23";

// オブジェクトがインスタンス化されるときに自動的に呼び出されるコンストラクター
関数 __construct($name,$height,$weight,$team){
echo "これは NbaPlayer コンストラクターです";
$this->name = $name;
//$this は PHP の疑似変数で、オブジェクト自体を表します。 $this->
を通じてオブジェクトのプロパティとメソッドにアクセスできます。 $this->height = $height;
$this->weight = $weight;
$this->team = $team;
}

//メソッドを定義する
パブリック関数 run(){
echo "Runningn";
}
パブリック関数 dribblr(){
「ドリブル」をエコーする;
}
パブリック関数 pass(){
echo "通過";
}
}
//クラスからオブジェクトへのインスタンス化
// クラスをオブジェクトにインスタンス化するときは、キーワード new を使用し、その後に new、その後にクラス名と括弧のペアを続けます
$jordan = 新しい NbaPlayer("ジョーダン","198cm","98kg","ブル");

//オブジェクト内の属性メンバーには、「->」記号を使用してアクセスできます

echo $jordan->name."n";

// オブジェクト内のメンバー メソッドには、「->」記号を使用してアクセスできます

$ジョーダン->ドリブル();
$jordan->run();

// new でオブジェクトをインスタンス化するたびに、クラス名の後のパラメーター リストを使用してコンストラクターが呼び出されます

$james = new NbaPlayer("ジェームズ","203cm","120kg","ヒート")
echo $james->name."n";
?>

デストラクター

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

//クラスの定義はキーワード class で始まり、通常、クラス名は各単語の最初の文字が大文字になります
。 クラス NbaPlayer{
public $name = "ジョーダン" // 属性を定義します
; パブリック $height = "198cm";
public $team = "雄牛";
public $playerNumber = "23";

//コンストラクター、オブジェクトがインスタンス化されるときに自動的に呼び出されます
関数 __construct($name,$height,$weight,$team){
echo "これは NbaPlayer コンストラクターです";
$this->name = $name;
//$this は PHP の疑似変数で、オブジェクト自体を表します。 $this->
を通じてオブジェクトのプロパティとメソッドにアクセスできます。 $this->height = $height;
$this->weight = $weight;
$this->team = $team;
}

//プログラム実行の最後にデストラクターが自動的に呼び出されます
// デストラクターは通常、プログラムで使用されるリソースをクリーンアップするために使用されます。たとえば、プログラムがプリンターを使用する場合、プリンターのリソースはデストラクターで解放できます
関数 __destruct(){
echo "破壊中".$this->name."n";
}

//メソッドを定義
パブリック関数 run(){
echo "Runningn";
}
パブリック関数 dribblr(){
「ドリブル」をエコーする;
}
パブリック関数 pass(){
echo "通過";
}
}
//クラスからオブジェクトへのインスタンス化
// クラスをオブジェクトにインスタンス化するときは、キーワード new を使用し、その後に new、その後にクラス名と括弧のペアを続けます
$jordan = 新しい NbaPlayer("ジョーダン","198cm","98kg","ブル");
// オブジェクト内の属性メンバーには、「->」記号を使用してアクセスできます
echo $jordan->name."n";

// オブジェクト内のメンバー メソッドには、「->」記号を使用してアクセスできます
$ジョーダン->ドリブル();
$jordan->run();

// new でオブジェクトをインスタンス化するたびに、クラス名の後のパラメーター リストを使用してコンストラクターが呼び出されます
$james = new NbaPlayer("ジェームズ","203cm","120kg","ヒート")
echo $james->name."n";

//変数を null に設定すると、デストラクターの呼び出しをトリガーできます
// オブジェクトが使用されなくなったときにデストラクターがトリガーされます
$james = null;
エコー「これからジェームスは使われません。n」
?>

デストラクターは、オブジェクトへのすべての参照が削除されるか、オブジェクトが明示的に破棄されるときに実行されます。

オブジェクトの参照

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

//クラスの定義はキーワード class で始まり、通常、クラス名は各単語の最初の文字が大文字になります
。 クラス NbaPlayer{
public $name = "ジョーダン" // 属性を定義します
; パブリック $height = "198cm";
public $team = "雄牛";
public $playerNumber = "23";

// オブジェクトがインスタンス化されるときに自動的に呼び出されるコンストラクター
関数 __construct($name,$height,$weight,$team){
echo "これは NbaPlayer コンストラクターです";
$this->name = $name;
//$this は PHP の疑似変数で、オブジェクト自体を表します。 $this->
を通じてオブジェクトのプロパティとメソッドにアクセスできます。 $this->height = $height;
$this->weight = $weight;
$this->team = $team;
}

//プログラムの実行終了時にデストラクターが自動的に呼び出されます
// デストラクターは通常、プログラムで使用されるリソースをクリーンアップするために使用されます。たとえば、プログラムがプリンターを使用する場合、プリンターのリソースはデストラクターで解放できます
関数 __destruct(){
echo "破壊中".$this->name."n";
}

//メソッドを定義する
パブリック関数 run(){
echo "Runningn";
}
パブリック関数 dribblr(){
「ドリブル」をエコーする;
}
パブリック関数 pass(){
echo "通過";
}
}
//クラスからオブジェクトへのインスタンス化
// クラスをオブジェクトにインスタンス化するときは、キーワード new を使用し、その後に new 、その後にクラス名と 1 組のかっこを続けます
$jordan = 新しい NbaPlayer("ジョーダン","198cm","98kg","ブル");

//オブジェクト内の属性メンバーには、「->」記号を使用してアクセスできます

echo $jordan->name."n";

// オブジェクト内のメンバー メソッドには、「->」記号を使用してアクセスできます

$ジョーダン->ドリブル();
$jordan->run();

// new でオブジェクトをインスタンス化するたびに、クラス名の後のパラメーター リストを使用してコンストラクターが呼び出されます

$james = new NbaPlayer("ジェームズ","203cm","120kg","ヒート")
echo $james->name."n";

//オブジェクト参照は、オブジェクトのプロパティとメソッドにアクセスするために使用されます。$james、$james1、$james2 はすべてオブジェクトへの参照です

//$james と $james1 はオブジェクトへの 2 つの独立した参照です
//$james2 は $james のシャドウであり、オブジェクトの同じ参照を使用します。null への代入は同じ参照を削除することと同じです
。 $james1 = $james;
$james2 = &$ジェームズ

$james = null;

エコー「これからジェームスは使われません。n」
?>

http://www.bkjia.com/PHPjc/908172.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/908172.html技術記事オブジェクト指向phpの勉強メモ、phpの勉強メモ public Public: このクラス、サブクラス、外部オブジェクトはすべて protected と呼び出すことができます Protected: このクラスのサブクラスは実行可能、外部オブジェクト...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート