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

PHPオブジェクト指向開発学習メモ_PHPチュートリアル

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

オブジェクト指向プログラミング(英語: Object-owned programming、略称: OOP )とは、プログラミングのパラダイムを指し、プログラム開発手法の一つでもあります。オブジェクトはクラスのコレクションを指します。オブジェクトをプログラムの基本単位として取り、プログラムとデータをカプセル化して、ソフトウェアの再利用性、柔軟性、拡張性を向上させます

注:
1. オブジェクトメソッドを定義する場合、先頭に public を記述する必要はありません。デフォルトでは public メソッドですが、記述することを推奨します。

phpオブジェクト指向初日

1. オブジェクト指向とは何ですか?

要素: 抽象化、カプセル化、共有、プログラム構造ではなくオブジェクト構造の強調。

クラスとは何ですか?

これは関数コレクション メニューとして理解でき、クラスを使用してメソッドを生成します。
例: コンピューター
クラス: ディスプレイ/キーボード/ホストのコレクション (カプセル化)
オブジェクト: モニター/キーボード/ホスト...そのうちの 1 つには、独自の機能があります。
プロパティ: コンピューター。
方法: 機能を改善する、映画を見る、ゲームをする、プログラムをする、インターネットをサーフィンする...

2.classを使用してクラスを作成します

メソッドを持つことができるのはクラスだけです。
形式:
クラスメソッド名{
...
}

メンバー属性: カスタム変数 (名前のみ)。

メンバーメソッド: カスタム関数。

3. クラスのメンバー属性とメンバーメソッド

注: メンバーのプロパティを定義するには、var の代わりに public を使用します。

例:

コードは次のとおりですコードをコピーclass MyPc { //クラスを宣言し、メソッド MyPc を定義します。
public $name; // メンバーのプロパティ。
var $price //メンバーのプロパティ
function vod() { //文字列を返す関数を実装するメンバーメソッド。
"テスト" を返します;
}
}

4. 新しい関数オブジェクトを使用してインスタンス化します
形式: 新しいオブジェクト名 (パラメータ)
例 1:

コードは次のとおりですコードをコピー
class MyPc { //クラスを宣言し、メソッド MyPc を定義します。

public $name; // メンバーのプロパティ。
var $price //メンバーのプロパティ
function vod() { //文字列を返す関数を実装するメンバーメソッド。
"テスト" を返します;
}
}

$pc1 = new Mypc() //インスタンス化

; $pc1 -> 名前;

例 2:

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

phpオブジェクト指向2日目


1. 1 つまたは複数のオブジェクトを作成します。
2. オブジェクト内の $this キーワード。
3. オブジェクト __construct() を初期化します
4. デストラクター __destruct()

---------------------------------------------------

1. 1 つまたは複数のオブジェクトを作成する
1 つ以上のオブジェクトを作成するには、new 関数を複数回使用してクラスをインスタンス化するだけです。
例:

クラス MyPc {

var $key;

パブリック $name;

関数 vod() {

「こんにちは」をエコーし​​ます;
}

}

$pc1 = 新しい MyPc();

$pc1->key = "10101010";

echo $pc1->key;

?>


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

クラスMyPc {
パブリック $name;
公開価格;

関数 vod() {
「ムービーを再生」を返します;
}
....
}

$pc1 = 新しい MyPc();
$pc2 = 新しい MyPc();
$pc3 = 新しい MyPc();

2.$オブジェクト内のこのキーワード
$this キーワードは、現在のオブジェクトのオブジェクト プロパティとオブジェクト メソッドにアクセスするために使用されるシステム変数です。
範囲: このカテゴリ内。
例:

コードは次のとおりです コードをコピー
クラスMyPc {
public $name;----------
公開価格 |
                                                                    関数 vod() { |
$this->name;<--------
}
....
$this->vod(); //出力呼び出しは public $name;
....
}
例 2:

コードは次のとおりですコードをコピー
クラス MyPc {
パブリック $name;

関数 vod() {

$this->name を返します。「フューチャーマンをプレイ中」;
}
関数ゲーム() {
$this->vod() を返します。「World of Warcraft の実行」;
}
}

$pc1 = 新しい MyPc();
$pc2 = 新しい MyPc();

$pc1->name = "コンピューター No. 1";

$pc2->name = "コンピューター No. 2";
echo $pc1->vod() . "
";
echo $pc2->game() . "
";
?>


3.オブジェクト__construct()を初期化します

初期化は、メンバー属性の初期値を事前に予約することと同じです。

形式:

クラス MyPc {
関数 __construct() {
初期化操作
}
}

例:

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

4. デストラクター __destruct()
オブジェクトが解放されたときに自動的に呼び出すことができるメソッドはデストラクターと呼ばれ、ガベージ コレクション メカニズムとしても理解できます。
ルール: 後入れ先出し、最初にインスタンス化してから解放、最後にインスタンス化して呼び出し、最初に解放。
最後に呼ばれます。

例:

クラスMyPc {

パブリック $name;

function __construct($name = "") { //初期化。

$this->name = $name; //初期化内容の4行目の$name = ""を$thisで取得した3行目のpublic $nameに代入します。
}

関数 vod() {

$this->name を返します。「フューチャーマンをプレイ中」;
}
関数ゲーム() {

$this->vod() を返します。「World of Warcraft の実行」;
}

}

$pc1 = new MyPc("コンピュータ1号"); //ここで初期化が行われます。
$pc2 = 新しい MyPc("コンピューター 2 号");

echo $pc1->vod() "
";

echo $pc2->game() . "
";
?>

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

クラスMyPc {
パブリック $name;

関数 __construct($name = "") {
$this->name = $name;
}

関数 vod() {
$this->name を返します。「フューチャーマンをプレイ中」;
}

関数ゲーム() {
$this->vod() を返します。「World of Warcraft の実行」;
}

function __destruct() { //後入れ先出し。
echo "
ガベージコレクションメカニズム:" . $this->name . "
";
}

}
$pc1 = 新しい MyPc("コンピューター 1 号");
$pc2 = 新しい MyPc("コンピューター 2 号");

echo $pc1->vod() "
";
// $pc1 = null; //特別なニーズが実行された直後にメモリを再利用したい場合は、ここで null を使用できます。
echo $pc2->game() . "
";
?>

phpオブジェクト指向3日目


クラスのカプセル化とアプリケーション

1. カプセル化のキーワード: パブリック、保護、プライベート。
2. 関連関数: __set()、__get() をカプセル化します。

-------------------------------------------------

1. カプセル化のキーワード: パブリック、保護、プライベート
カプセル化とは、保護とセキュリティを実現するために、関連する属性と動作を非表示にすることです。

カプセル化されたキーワード
Public: グローバルであり、クラス内外のサブクラスからアクセスできることを示します。
protected: 保護されていて、このクラス、サブクラス、または親クラスでのみアクセスできることを示します。
private: プライベートを意味し、このクラス内でのみ使用できます。 [重要: このキーワードを使用すると、このクラス内でのみ呼び出すことができるプライベート プロパティまたはメソッドが呼び出されます。これは、もう 1 つのプロセスと出発点のように感じられます。詳細については例 2 を参照してください]

パブリックで保護されたプライベート
総合 1 0 0
継承クラス 1 1 0
このカテゴリー 1 1 1

例:

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

クラス MyPc {
public $name //パブリックプロパティ
protected $price //保護された属性

プライベート関数 vod() { //プライベート属性
$this->名前;
}

}
?>

例 2:

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

クラスMyPc {
プライベート $name;
function __construct($name = "") {
$this->name = $name;を返します
}
プライベート関数 open() {
$this->name を返します。 "---電源を入れて起動します";
}
パブリック関数 ok() {
$this->open() "---OK";
を返します。 }
}
$pc = 新しい MyPc("マイ コンピューター");
echo $pc->ok();
?>


パッケージ化関連関数: __set()、__get() 機能: プライベート属性またはメソッドを操作します。
__set(): 現在のクラスのカプセル化されたプライベート プロパティまたはプライベート メソッドを取得し、再実行または値を割り当てます。
形式: __set($n,$v)

__get(): 現在のクラスのカプセル化された属性またはメソッドを取得し (間接アクセスにより裸の出力が防止されます)、それらをパブリック属性に変換します。

__get/__set インスタンス:

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

クラスMyPc {
プライベート $name;
パブリック関数 __construct($name = "") {
$this->name = $name;を返します
}

パブリック関数 __get($name) {
$this->name を返します。 "__get";
}
public function __set($n, $v) { //$n はオブジェクト属性 $name に対応し、$v は最後から 3 番目の行 __set に対応します。
$this-> $n = $v;
}
プライベート関数 open() {
$this->name を返します。 "---電源を入れて起動します";
}
パブリック関数 ok() {
$this->open() "---OK";
を返します。 }
}
$pc = 新しい MyPc("マイ コンピューター");
$pc->name = "__set";
echo $pc->name;
?>

クラスの継承と応用

1. キーワードを継承: 拡張します。
2. PHP 継承ルール。
3. 基本クラスのメソッドのオーバーロードと基本クラスのメソッドへのアクセス。

------------------------------------------------

1. キーワードを継承: 拡張する
PHP クラスの継承は、継承されたクラス (基本クラス) を共有するクラスとして理解できます。
注: PHP は単一継承です。

2.フォーマット

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

クラスMyPc {
...
}

クラスホームはMyPcを拡張します{
...
}

3. 基本クラスのメソッドのオーバーロードと基本クラスのメソッドへのアクセス
形式: 基本クラス名::元の基本クラスのメソッド名

4.例
継承:

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

クラスルート{
パブリック関数 print1() {
"Root_print" を返します;
}
}

クラスの息子はルートを拡張します {
パブリック関数 print2() {
"Son_print" を返します;
}
}

$p = 新しい息子();
echo $p->print1();
?>

リロード:
基本クラスのメソッドを派生クラスで拡張する必要がある場合は、オーバーロード関数を使用できます

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

クラスルート{
パブリック関数 print1() {
"Root_print" を返します;
}
}

クラスの息子はルートを拡張します {
パブリック関数 print1() {
ルート :: print1() を返します。 "
Son_print";
}
}

$p = 新しい息子();
echo $p->print1();
?>


抽象メソッドとクラス

実際、これが当たり前だということも理解できます。クラスの先頭で抽象クラスとメソッドを定義し、後続のクラスでその抽象クラスを継承すると、後続の派生クラスのメソッドの名前が強制的に標準化されます (抽象メソッドの名前にすぎません)。抽象クラスで定義されているため、自分で追加することもできますが、主に変更することはできません)。

1. 抽象的なキーワード: 抽象的。
2. 抽象メソッドと抽象クラスの定義。
3. 抽象クラスとメソッドを使用するための規則。

---------------------------------------------------

1. 抽象的なキーワード: 抽象的な
抽象化とは、正確には説明できないが、特定の概念や名前があることを意味します。

2. 抽象メソッドと抽象クラスの定義
少なくとも 1 つの抽象メソッドを持つクラスは、抽象クラスと呼ばれます。
したがって、抽象クラスを定義する場合は、最初に抽象メソッドを定義します。
形式:
抽象クラス class1 {

抽象関数 fun1();

...
}
注: 1. クラスには少なくとも 1 つの抽象メソッドが存在します。 ;2. 抽象メソッドには {} を含めることはできません。 ;3. 抽象メソッドの前に抽象を追加する必要があります。

3. 抽象クラスとメソッドの使用規則
抽象クラスの機能:
1. インスタンス化することはできず、継承のみが可能です。
2. 継承された派生クラスでは、すべての抽象メソッドをインスタンス化する前にオーバーロードする必要があります。
形式 (インスタンス化できません):
抽象クラス cl1 {

抽象関数 fun1();

...
}

フォーマット (インスタンス化可能):
クラス cl2 は cl1 を拡張します {

function fun1() { //抽象メソッドをオーバーロードします
}
...
}

------------------------------------------------- --
例:

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

抽象クラス ChouXiang {
抽象関数 fun1();

}

クラス PaiShengLei は ChouXiang を拡張します {
public function fun1() { //オーバーロード
エコー「テスト」;
}
}

$p = 新しいパイシェンレイ();
$p->fun1();
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632644.html技術記事オブジェクト指向プログラミング(英語: Object-owned programming、略称: OOP )とは、プログラミングのパラダイムおよびプログラム開発手法のことを指します。オブジェクトはクラスのコレクションを参照します...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート