ホームページ  >  記事  >  php教程  >  PHP のオブジェクト指向オブジェクトに関する知識ポイントのまとめ

PHP のオブジェクト指向オブジェクトに関する知識ポイントのまとめ

WBOY
WBOYオリジナル
2016-09-11 11:19:39887ブラウズ

オブジェクト指向

すべてがオブジェクトである 問題を構成するトランザクションをそれぞれのオブジェクトに分解する オブジェクトを確立する目的は、ジョブを完了することではなく、問題を解決する際の特定のトランザクションの動作を記述することです。人間の思考習慣とコードの再利用性の高さ。
_____________________________________________________________________

クラスの概念

カテゴリー
は、同じセマンティック定義を持つオブジェクトのコレクション (同じプロパティとメソッドを持つ集合体) である抽象概念であり、特定のクラスを使用することは現実的ではなく、インスタンス化することしかできません。車を例に挙げると、車の設計図がクラスであり、車がオブジェクトです。デザインの焦点はクラスの作成です
実生活におけるクラスの概念
すべてがオブジェクトです。私たちが使用する特定のコンピューターがオブジェクトである場合、そのコンピューターはクラスです。あなたが子供を迎えに行くために幼稚園に行きますが、子供を迎えに行きたいと言うと、彼らは絶対にあなたに迎えに来ません(彼らがあなたのことを知っていて、あなたの子供が誰であるかを知っていない限り)あなたはあなたの子供に名前を付けなければなりません。あなたの子供は特定のターゲットであり、子供はクラス
です。
クラス名書き込み仕様
クラス名の最初の文字を大文字にします。クラスはファイル内で定義され、ファイル名として .class.php で終わります。
_____________________________________________________________________
オブジェクト
オブジェクトハンドル
さまざまなオブジェクトを区別するために使用されます。オブジェクトが作成されると、メモリ内に記憶領域が取得され、その記憶領域のアドレスがオブジェクトの識別子またはハンドルになります
プロパティ
クラスで定義された変数はメンバー属性であり、オブジェクトの静的特性のデータを記述するために使用されます。人の名前、性別、頭文字の小文字など
方法
クラスで定義される関数は、オブジェクトの動的特性の動作動作を記述するために使用されるメンバー メソッドです。メソッド名は大文字と小文字が区別されず、重複した名前を持つことはできず、最初の文字は小文字です
オブジェクトのライフサイクル
作成後、ライフサイクルが開始され、プログラムが終了するか、プログラマーがオブジェクトをクリアすると、PHP は自動的にオブジェクトを破棄します。
オブジェクトのライフサイクル

1 プログラムの実行が完了すると、PHP はリサイクルメカニズムを実行し、メモリ内のオブジェクトを削除します
2 すべて削除
オブジェクトが参照された後、そのオブジェクトはゴミとなり、リサイクルメカニズムによって自動的にゴミが削除されます
オブジェクト生成の手順

1 コンテンツ内にオブジェクト用のスペースを作成する

2 構築メソッドを実行します
3 オブジェクトの参照アドレスを返す
オブジェクトのメモリ分散:

1 オブジェクト参照は「スタック メモリ」に配置されます (スタックには固定コンテンツが格納されます)

2 オブジェクトは「ヒープ メモリ」に配置されます (ヒープには変数の内容が保存されます)
3 静的メンバーは、ヒープ メモリ内のすべてのオブジェクトで共有できるように、最初のロード時に配置される「データ領域」に配置されます
4 コード領域に関数とメソッドを配置します


オブジェクト指向の機能

抽象性
オブジェクトのクラスに共通する属性とメソッドを抽象化してクラスを形成するこの考え方は抽象的です
カプセル化:
メンバー メソッドとメンバー属性をクラスにカプセル化し、属性とメソッドを非表示にし、メソッド実装の詳細を非表示にし、public protected private Final static を通じてクラス メンバーへのアクセス権を制限します。データは内部的に保護されており、承認されたメンバー メソッドを通じてのみアクセスできます。操作された。メンバーをできるだけカプセル化します
継承の拡張:
クラスを継承させ、別の既存のクラスのメンバー属性とメソッドを持たせることができます。継承されたクラスは親クラスまたは基本クラスと呼ばれ、継承されたクラスはサブクラスと呼ばれます。 extends キーワードは継承関係を実装します
ポリモーフィズム: サブクラスは親クラスを継承し、親クラスのメソッドをオーバーライドすることでポリモーフィズムを実現します
_____________________________________________________________________________
アクセス修飾子 (スコープ記述子)

公開
クラスまたはサブクラスの内部と外部の両方からアクセスでき、最もオープンな権限です
プライベート
定義されたクラスの属性とメソッドはクラス内でアクセスできますが、クラスまたはサブクラスの外からはアクセスできません
保護されています
クラスの属性とメソッドを定義します。クラスまたはサブクラス内ではアクセスできますが、クラス外ではアクセスできません
モジュール設計
強い凝集性 (関数はできる限りクラス内で完了する必要がある)、弱い結合性 (外部呼び出し用に開くメソッドはできるだけ少ない)。例: 会社の営業チームがプロジェクトを受け取り、具体的な作業は社内のプログラマー、デザイナー、サーバー マネージャーに任せて協力して完了させます
_____________________________________________________________________________

静的な静的プロパティと静的メソッド

データ オブジェクトは、クラスにサービスを提供する場合にのみ必要です。つまり、クラスが内部的には利用可能だが外部では利用できない場合にのみ必要です。オブジェクトの作成は非常にリソースを消費するため、メソッドに強力な公開性がある場合、このメソッドを呼び出すためにクラスのインスタンスを再生成する必要はありません。定義されたメソッドまたは変数は、プログラムが初めてロードされるときにメモリ内に常駐し、プログラムの終了時に解放されます。
静的メソッドを非静的メソッドでオーバーライドすることはできず、コンストラクターを静的に宣言することはできません
静的変数:
static で宣言されたメンバー変数は、クラスのパブリック変数であり、クラスのすべてのオブジェクトに対して 1 つのコピーのみが存在します。オブジェクトに。静的変数は、オブジェクトではなくクラスに属し、クラスを通じてどこからでもアクセスでき、クラスの作成時にメモリに保存されます。複数のオブジェクトの場合、静的データ メンバーは 1 か所にのみ保存されるため、メモリを節約できます。静的データ メンバーの値が一度更新される限り、すべてのオブジェクトは同じ更新された値にアクセスすることが保証されます。
静的メソッド:
static で宣言されたメソッドは静的メソッドまたはクラスメソッドです。このメソッドを実行すると、オブジェクト参照は関数に渡されないため、非静的メンバーにはアクセスできず、静的メソッドまたは静的変数のみにアクセスできます。 self staticparentなどのクラスに関するメソッドのみ使用可能です。使用時にオブジェクトを生成せずに実行できます
$この自分::親::
$これ
は現在のオブジェクトへの参照であり、通常はメソッド内に表示され、クラスのメンバー属性を取得したり、クラス
のメンバー メソッドを実行したりするために使用されます。
自分::
現在のクラス self::run() の指定されたメンバー属性または静的メンバー メソッドを取得するために使用される、このクラスへの参照
親::
親クラスへの参照、親クラスのメソッドまたはプロパティの呼び出し。
____________________________________________________________________________

建設方法と破壊方法

コンストラクターメソッド__construct()
オブジェクトの作成時に自動的に実行され、戻り値はありません。PHP4 のコンストラクター メソッドは、オブジェクト属性の初期化作業など、クラスの一部の初期化作業を実行するために使用されます。 PHP5 では、コンストラクター メソッドは __construct() です。利点は、__construct が存在しない場合、クラスと同じ名前のメソッドを検索して自動的に実行することです。
コンストラクターでパラメーターを渡して属性を定義できます。親クラスとサブクラスの両方でコンストラクターが定義されている場合、サブクラスのコンストラクターが実行されます。
デストラクターメソッド__destruct():
メソッドは、オブジェクトがメモリ内で破棄されるときにパラメータなしで自動的に実行されていました
____________________________________________________________________________

オブジェクト最終定数

  1. <span class="com">//类里面的方法不能修改</span>
  2. <span class="com">//类不能被继承</span>
  3. <span class="pln"> <span class="kwd">final<span class="pln"> <span class="kwd">class<span class="pln"> souji <span class="pun">{</span></span></span></span></span></span>
  4. <span class="pln"> <span class="kwd">final<span class="pln"> <span class="kwd">public<span class="pln"> $pinpai<span class="pun">;<span class="pln"> <span class="com">//报错</span></span></span></span></span></span></span></span>
  5. <span class="pln"> <span class="kwd">final<span class="pln"> <span class="kwd">function<span class="pln"> congdian<span class="pun">()<span class="pln"> <span class="pun">{<span class="pln"> <span class="com">//无效</span></span></span></span></span></span></span></span></span></span>
  6. <span class="pln"> echo $this<span class="pun">-><span class="pln">pinpai <span class="pun">.<span class="pln"> <span class="str">"手机通过10v电压来充电"<span class="pun">;</span></span></span></span></span></span></span>
  7. <span class="pln"> <span class="pun">}</span></span>
  8. <span class="pln"> <span class="kwd">public<span class="pln"> <span class="kwd">function<span class="pln"> kaijidonghua<span class="pun">()<span class="pln"> <span class="pun">{</span></span></span></span></span></span></span></span>
  9. <span class="pln"> echo <span class="str">"<<< 没有开机动画 >>>>"<span class="pun">;</span></span></span>
  10. <span class="pln"> <span class="pun">}</span></span>
  11. <span class="pun">}</span>
  12. <span class="kwd">class<span class="pln"> moto <span class="kwd">extends<span class="pln"> souji <span class="pun">{</span></span></span></span></span>
  13. <span class="pln"> <span class="kwd">public<span class="pln"> <span class="kwd">function<span class="pln"> __construct<span class="pun">()<span class="pln"> <span class="pun">{</span></span></span></span></span></span></span></span>
  14. <span class="pln"> <span class="com">// $this->pinpai = "摩托罗拉";</span></span>
  15. <span class="pln"> $this<span class="pun">-><span class="pln">congdian<span class="pun">();</span></span></span></span>
  16. <span class="pln"> <span class="pun">}</span></span>
  17. <span class="pln"> <span class="kwd">public<span class="pln"> <span class="kwd">function<span class="pln"> kaijidonghua<span class="pun">()<span class="pln"> <span class="pun">{</span></span></span></span></span></span></span></span>
  18. <span class="pln"> echo <span class="str">"摩托罗拉商标"<span class="pun">;</span></span></span>
  19. <span class="pln"> <span class="pun">}</span></span>
  20. <span class="pun">}</span>
  21. <span class="pln">$li <span class="pun">=<span class="pln"> <span class="kwd">new<span class="pln"> moto<span class="pun">();</span></span></span></span></span></span>
  22. $li <span class="pln">$li<span class="pun">-><span class="pln">kaijidonghua<span class="pun">();</span></span></span></span>= 新しい moto
  23. ();
  24. $li->カイジドンファ
  25. ();
  26. <span class="com">//定义常量</span>
  27. <span class="pln">define<span class="pun">(<span class="str">"WEBNAME"<span class="pun">,<span class="pln"> <span class="str">"文豆"<span class="pun">);</span></span></span></span></span></span></span>
  28. <span class="kwd">function<span class="pln"> aa<span class="pun">(){</span></span></span>
  29. <span class="pln"> echo WEBNAME<span class="pun">.<span class="str">"专注PHPWEB开发"<span class="pun">;</span></span></span></span>
  30. <span class="pun">}</span>
  31. <span class="pln">aa<span class="pun">();</span></span>
  32. //定义常量
  33. <span class="kwd">class<span class="pln"> caiwu<span class="pun">{</span></span></span>
  34. <span class="pln"> <span class="kwd">const<span class="pln"> suilv<span class="pun">=<span class="lit">0.05<span class="pun">;</span></span></span></span></span></span>define
  35. ("WEBNAME"
  36. , "文豆"<span class="pln"> <span class="kwd">function<span class="pln"> __construct<span class="pun">(){</span></span></span></span>);
  37. <span class="pln"> echo WEBNAME<span class="pun">;</span></span>
  38. <span class="pln"> <span class="pun">}</span></span>
  39. <span class="pln"> <span class="kwd">function<span class="pln"> kaigonzi<span class="pun">(<span class="pln">$xingming<span class="pun">,<span class="pln">$gongzi<span class="pun">){</span></span></span></span></span></span></span></span>
  40. 関数 aa<span class="pln"> $gongzi <span class="pun">=<span class="pln"> $gongzi<span class="pun">-<span class="pln">$gongzi<span class="pun">*<span class="kwd">self<span class="pun">::<span class="pln">suilv<span class="pun">;</span></span></span></span></span></span></span></span></span></span>(){
  41. <span class="pln"> <span class="kwd">return<span class="pln"> $xingming<span class="pun">.<span class="str">"的工资是:"<span class="pun">.<span class="pln">$gongzi<span class="pun">.<span class="str">"元"<span class="pun">;</span></span></span></span></span></span></span></span></span></span>
  42. echo WEBNAME
  43. ."专注PHPWEB开発行"<span class="pln"> <span class="pun">}</span></span>;
  44. <span class="pun">🎜🎜 🎜🎜🎜}🎜🎜🎜 🎜🎜<span class="pln">aa🎜();🎜🎜🎜🎜 🎜🎜🎜🎜 🎜🎜🎜🎜 🎜🎜<span class="kwd">クラス<span class="pln"> caiwu🎜{🎜🎜🎜🎜🎜 🎜🎜<span class="pln"> <span class="kwd">const<span class="pln"> suilv🎜=<span class="lit">0.05🎜;🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜<span class="pln"> <span class="kwd">関数<span class="pln"> __construct🎜(){🎜🎜🎜🎜🎜🎜 🎜🎜<span class="pln"> echo WEBNAME🎜;🎜🎜🎜🎜 🎜🎜<span class="pln"> 🎜}🎜🎜🎜🎜 🎜🎜<span class="pln"> <span class="kwd">関数<span class="pln"> kaigonzi🎜(<span class="pln">$xingming🎜,<span class="pln"> $gongzi🎜){🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜<span class="pln"> $gongzi 🎜=<span class="pln"> $gongzi🎜-<span class="pln">$gongzi🎜*<span class="kwd">self🎜:: <span class="pln">スイルブ🎜;🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜<span class="pln"> <span class="kwd">return<span class="pln"> $xingming🎜.<span class="str">"的工资是:"🎜.<span class="pln">$gongzi🎜.<span class="str">"元"🎜;🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜 🎜🎜<span class="pln"> 🎜}🎜🎜🎜🎜 🎜🎜🎜}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
  45. <span class="com">/*员工类*/<code class="language-php"><span class="com">/*员工类*/</span>
  46. <span class="kwd">class<span class="pln"> yuangong<span class="pun">{</span></span></span><span class="kwd">クラス<span class="pln"> 元宮<span class="pun">{</span></span></span>
  47. <span class="pln"> <span class="kwd">private<span class="pln"> $xingming<span class="pun">;<span class="com">//姓名</span></span></span></span></span>
  48. <span class="pln"> <span class="kwd">private<span class="pln"> $gongzisu<span class="pun">;<span class="com">//工资数</span></span></span></span></span><span class="pln"> <span class="kwd">private<span class="pln"> $xingming<span class="pun">;<span>//姓名</span></span></span></span></span>
  49. <span class="pln"> <span class="kwd">function<span class="pln"> __construct<span class="pun">(<span class="pln">$xingming<span class="pun">,<span class="pln">$gongzisu<span class="pun">){</span></span></span></span></span></span></span></span>
  50. <span class="pln"> $this<span class="pun">-><span class="pln">xingming <span class="pun">=<span class="pln"> $xingming<span class="pun">;</span></span></span></span></span></span>
  51. <span class="pln"> <span class="kwd">private<span class="pln"> $gongzisu<span class="pun">;<span>//工资数<code class="language-php"><span class="pln"> $this<span class="pun">-><span class="pln">gongzisu <span class="pun">=<span class="pln"> $gongzisu<span class="pun">;</span></span></span></span></span></span>
  52. <span class="pln"> <span class="pun">}</span></span>
  53. <span class="pln"> <span class="kwd">function<span class="pln"> kaizi<span class="pun">(){</span></span></span></span>
  54. <span class="pln"> <span class="kwd">関数<span class="pln"> __construct<span class="pun">(<span class="pln">$xingming<span class="pun">,<span class="pln">$gongzisu<span class="pun">){<li class="L9"><code class="language-php"><span class="pln"> $caiwu <span class="pun">=<span class="pln"> <span class="kwd">new<span class="pln"> caiwu<span class="pun">();</span></span></span></span></span></span>
  55. <span class="pln"> <span class="kwd">return<span class="pln"> $caiwu<span class="pun">-><span class="pln">kaigonzi<span class="pun">(<span class="pln">$this<span class="pun">-><span class="pln">xingming<span class="pun">,<span class="pln"> $this<span class="pun">-><span class="pln">gongzisu<span class="pun">);</span></span></span></span></span></span></span></span></span></span></span></span></span></span>
  56. <span class="pln"> <span class="pun">}</span></span>
  57. <span class="pun">}</span><span class="pln"> $this<span class="pun">-><span class="pln">xingming <span class="pun">= <span class="pln"> $xingming<span class="pun">;</span></span></span></span></span></span>
  58. <span class="pln">$lisi <span class="pun">=<span class="pln"> <span class="kwd">new<span class="pln"> yuangong<span class="pun">(<span class="str">"李四"<span class="pun">,<span class="pln"> <span class="str">"6000"<span class="pun">);</span></span></span></span></span></span></span></span></span></span></span>
  59. <span class="pln">echo $lisi<span class="pun">-><span class="pln">kaizi<span class="pun">();</span></span></span></span>
$this->ゴンジス= $gongzisu;
<span class="pln"> <span class="pun">}</span></span>
<span class="pln"> <span class="kwd">function<span class="pln"> kaizi<span class="pun">(){</span></span></span></span>
🎜🎜🎜 🎜<span class="pln"> $caiwu <span class="pun">=<span class="pln"> <span class="kwd">new<span class="pln"> 彩烏<span class="pun">();🎜🎜🎜🎜🎜🎜🎜🎜 🎜<code class=" language-php"><span class="pln"> <span class="kwd">return<span class="pln"> $caiwu<span class="pun">->kaigonzi<span class="pun">(<span class="pln">$this<span class="pun">-><span class="pln">xingming<span class="pun">,<span class="pln"> $this<span class="pun">-><span class="pln">ゴンジス<span class="pun">);🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜<code class=" language-php"><span class="pln"> <span class="pun">}🎜🎜🎜🎜 🎜<code class=" language-php"><span class="pun">}🎜🎜🎜 🎜<code class=" language-php"><span class="pln">$lisi <span class="pun">=<span class="pln"> <span class="kwd">新しい<span> 元宮<span class="pun">(<span class="str">"李四"<span class="pun">,<span class="pln"> <span class="str"> ">"6000"<span class="pun">);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜<code class=" language-php"><span class="pln">エコー $lisi<span class="pun">-><span class="pln">kaizi<span class="pun"> ();🎜🎜🎜🎜🎜🎜 🎜🎜 🎜 🎜 🎜 🎜 🎜 🎜 🎜 🎜 🎜 🎜 🎜 🎜🎜🎜🎜 🎜🎜</span></span></span></span>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。