オブジェクト指向プログラミング(英語: Object-owned programming、略称: OOP )とは、プログラミングのパラダイムを指し、プログラム開発手法の一つでもあります。オブジェクトはクラスのコレクションを指します。オブジェクトをプログラムの基本単位として取り、プログラムとデータをカプセル化して、ソフトウェアの再利用性、柔軟性、拡張性を向上させます
注:
1. オブジェクトメソッドを定義する場合、先頭に public を記述する必要はありません。デフォルトでは public メソッドですが、記述することを推奨します。
phpオブジェクト指向初日
1. オブジェクト指向とは何ですか?
要素: 抽象化、カプセル化、共有、プログラム構造ではなくオブジェクト構造の強調。
これは関数コレクション メニューとして理解でき、クラスを使用してメソッドを生成します。
例: コンピューター
クラス: ディスプレイ/キーボード/ホストのコレクション (カプセル化)
オブジェクト: モニター/キーボード/ホスト...そのうちの 1 つには、独自の機能があります。
プロパティ: コンピューター。
方法: 機能を改善する、映画を見る、ゲームをする、プログラムをする、インターネットをサーフィンする...
2.classを使用してクラスを作成します
メソッドを持つことができるのはクラスだけです。
形式:
クラスメソッド名{
...
}
メンバーメソッド: カスタム関数。
3. クラスのメンバー属性とメンバーメソッド
注: メンバーのプロパティを定義するには、var の代わりに public を使用します。
コードをコピー | |
public $name; // メンバーのプロパティ。 var $price //メンバーのプロパティ function vod() { //文字列を返す関数を実装するメンバーメソッド。 "テスト" を返します; } } |
4. 新しい関数オブジェクトを使用してインスタンス化します
形式: 新しいオブジェクト名 (パラメータ)
例 1:
コードをコピー | |
class MyPc { //クラスを宣言し、メソッド MyPc を定義します。
public $name; // メンバーのプロパティ。 ;
$pc1 -> 名前; |
例 2:
コードをコピー | |
クラス MyPc { var $key;
パブリック $name;
「こんにちは」をエコーします; $pc1 = 新しい MyPc();
$pc1->key = "10101010";
?>
|
コードは次のとおりです | コードをコピー |
クラスMyPc { 関数 vod() { $pc1 = 新しい MyPc();
|
2.$オブジェクト内のこのキーワード
$this キーワードは、現在のオブジェクトのオブジェクト プロパティとオブジェクト メソッドにアクセスするために使用されるシステム変数です。
範囲: このカテゴリ内。
例:
コードは次のとおりです | コードをコピー |
クラスMyPc { public $name;---------- 公開価格 | 関数 vod() { | $this->name;<-------- } .... $this->vod(); //出力呼び出しは public $name; .... } |
コードをコピー | |
クラス MyPc { パブリック $name; 関数 vod() {
$this->name を返します。「フューチャーマンをプレイ中」;
$pc1 = 新しい MyPc();
$pc2->name = "コンピューター No. 2";
|
初期化は、メンバー属性の初期値を事前に予約することと同じです。
クラス MyPc {
関数 __construct() {
初期化操作
}
}
コードをコピー | |
クラスMyPc {
パブリック $name;
$this->name = $name; //初期化内容の4行目の$name = ""を$thisで取得した3行目のpublic $nameに代入します。
$this->name を返します。「フューチャーマンをプレイ中」;
$this->vod() を返します。「World of Warcraft の実行」;
$pc1 = new MyPc("コンピュータ1号"); //ここで初期化が行われます。 ";
echo $pc2->game() . " |
コードは次のとおりです | コードをコピー |
クラスMyPc { 関数 __construct($name = "") { 関数 vod() { 関数ゲーム() { function __destruct() { //後入れ先出し。 } echo $pc1->vod() " |
phpオブジェクト指向3日目
クラスのカプセル化とアプリケーション
1. カプセル化のキーワード: パブリック、保護、プライベート。
2. 関連関数: __set()、__get() をカプセル化します。
-------------------------------------------------
1. カプセル化のキーワード: パブリック、保護、プライベート
カプセル化とは、保護とセキュリティを実現するために、関連する属性と動作を非表示にすることです。
カプセル化されたキーワード
Public: グローバルであり、クラス内外のサブクラスからアクセスできることを示します。
protected: 保護されていて、このクラス、サブクラス、または親クラスでのみアクセスできることを示します。
private: プライベートを意味し、このクラス内でのみ使用できます。 [重要: このキーワードを使用すると、このクラス内でのみ呼び出すことができるプライベート プロパティまたはメソッドが呼び出されます。これは、もう 1 つのプロセスと出発点のように感じられます。詳細については例 2 を参照してください]
パブリックで保護されたプライベート
総合 1 0 0
継承クラス 1 1 0
このカテゴリー 1 1 1
例:
コードは次のとおりです | コードをコピー |
クラス MyPc { プライベート関数 vod() { //プライベート属性 |
例 2:
コードは次のとおりです | コードをコピー |
クラスMyPc {
|
パッケージ化関連関数: __set()、__get() 機能: プライベート属性またはメソッドを操作します。
__set(): 現在のクラスのカプセル化されたプライベート プロパティまたはプライベート メソッドを取得し、再実行または値を割り当てます。
形式: __set($n,$v)
__get(): 現在のクラスのカプセル化された属性またはメソッドを取得し (間接アクセスにより裸の出力が防止されます)、それらをパブリック属性に変換します。
__get/__set インスタンス:
コードは次のとおりです | コードをコピー |
クラスMyPc { パブリック関数 __get($name) { |
クラスの継承と応用
1. キーワードを継承: 拡張します。
2. PHP 継承ルール。
3. 基本クラスのメソッドのオーバーロードと基本クラスのメソッドへのアクセス。
------------------------------------------------
1. キーワードを継承: 拡張する
PHP クラスの継承は、継承されたクラス (基本クラス) を共有するクラスとして理解できます。
注: PHP は単一継承です。
2.フォーマット
コードは次のとおりです | コードをコピー |
クラスMyPc { クラスホームはMyPcを拡張します{ |
3. 基本クラスのメソッドのオーバーロードと基本クラスのメソッドへのアクセス
形式: 基本クラス名::元の基本クラスのメソッド名
4.例
継承:
コードは次のとおりです | コードをコピー |
クラスルート{ クラスの息子はルートを拡張します { $p = 新しい息子(); |
リロード:
基本クラスのメソッドを派生クラスで拡張する必要がある場合は、オーバーロード関数を使用できます
コードは次のとおりです | コードをコピー |
クラスルート{ クラスの息子はルートを拡張します { $p = 新しい息子();
|
抽象メソッドとクラス
実際、これが当たり前だということも理解できます。クラスの先頭で抽象クラスとメソッドを定義し、後続のクラスでその抽象クラスを継承すると、後続の派生クラスのメソッドの名前が強制的に標準化されます (抽象メソッドの名前にすぎません)。抽象クラスで定義されているため、自分で追加することもできますが、主に変更することはできません)。
1. 抽象的なキーワード: 抽象的。
2. 抽象メソッドと抽象クラスの定義。
3. 抽象クラスとメソッドを使用するための規則。
---------------------------------------------------
1. 抽象的なキーワード: 抽象的な
抽象化とは、正確には説明できないが、特定の概念や名前があることを意味します。
2. 抽象メソッドと抽象クラスの定義
少なくとも 1 つの抽象メソッドを持つクラスは、抽象クラスと呼ばれます。
したがって、抽象クラスを定義する場合は、最初に抽象メソッドを定義します。
形式:
抽象クラス class1 {
抽象関数 fun1();
...
}
注: 1. クラスには少なくとも 1 つの抽象メソッドが存在します。 ;2. 抽象メソッドには {} を含めることはできません。 ;3. 抽象メソッドの前に抽象を追加する必要があります。
3. 抽象クラスとメソッドの使用規則
抽象クラスの機能:
1. インスタンス化することはできず、継承のみが可能です。
2. 継承された派生クラスでは、すべての抽象メソッドをインスタンス化する前にオーバーロードする必要があります。
形式 (インスタンス化できません):
抽象クラス cl1 {
抽象関数 fun1();
...
}
フォーマット (インスタンス化可能):
クラス cl2 は cl1 を拡張します {
function fun1() { //抽象メソッドをオーバーロードします
}
...
}
------------------------------------------------- --
例:
コードは次のとおりです | コードをコピー |
抽象クラス ChouXiang { } クラス PaiShengLei は ChouXiang を拡張します { $p = 新しいパイシェンレイ(); |