学習ポイント:
1. オブジェクト指向とは
2. OOP の主要な概念
4.
多くの言語は本質的にオブジェクト指向 (OOP) であり、PHP がそのような機能を導入するまでに数年かかりました。オブジェクト指向の誕生は、開発パラダイムにおける大きな変化であり、プログラミングの焦点はアプリケーションのロジックからデータに戻ります。言い換えれば、OOP は、プログラミングの手続き的なイベントから、最終的にモデル化される実際のエンティティに焦点を移します。これにより、アプリケーションが私たちの周囲の現実世界に近づきます。
1.オブジェクト指向とは何ですか
プロセス指向
これは、あなたが会社の従業員であるようなもので、今日、社内のコンピューターのバッチを組み立てるタスクを持っています。その後、購入、交渉、会社への輸送、組み立ての開始、ネットワークの配線、マシンのデバッグを開始し、完了します。つまり、プロセス指向
とは、詳細が明確な具体的な実装を意味します。オブジェクト指向
それは、あなたが会社の社長で、従業員にコンピューターのバッチを組み立てるタスクを割り当てるようなものです。完了。言い換えれば、オブジェクト指向は抽象的な実行であり、それは依然として従業員によって実行されます。細かいことは社長が考える必要はありません。この利点は、上級管理職がいる企業では業務を調整できることは明らかですが、上級管理職がいない企業では、特定の機能を実装する一部の従業員だけが混乱して働くことになります。
2. OOP
カプセル化
の特徴は、オブジェクトのプロパティと実装の詳細を隠し、インターフェースのみを外部に公開し、プログラム内のプロパティの読み取りと変更のアクセスレベルを制御します(または、抽象化されたデータと動作を結合します)。つまり、データを操作するためのソース コードとデータを有機的に組み合わせて、データと関数の両方がクラスのメンバーである「クラス」を形成します。
別のクラスを継承したクラスをそのクラスのサブクラスと呼びます。この関係はよく父と子にたとえられます。サブクラスは親クラスの特性を継承します。これらのプロパティは、プロパティとメソッドで構成されます。サブクラスは親クラスの機能を超えた新しい機能を追加できるため、サブクラスは親クラスの「拡張機能」とも呼ばれます。
ポリモーフィック
ポリモーフィズムとは、OOP がクラスが使用されるコンテキストに応じてクラスの性質や動作を再定義または変更できることを意味します。言い換えれば、インターフェイスの複数の異なる実装がポリモーフィズムです。異なるサブクラス オブジェクトを親クラスとして扱うことで、異なるサブクラスのオブジェクト間の差異を保護し、共通のコードを記述し、変化するニーズに適応する共通のプログラミングを作成できます。
3つ。 OOP の主要な概念
クラス (クラス)
クラスはオブジェクトの定義です。これには、名前、メソッド、プロパティ、イベントなど、オブジェクトの動作に関する情報が含まれています。メモリ内に存在しないため、実際にはオブジェクト自体ではありません。クラスを参照するコードが実行されると、クラスの新しいインスタンスであるオブジェクトがメモリ内に作成されます。クラスは 1 つだけですが、このクラスから同じ型の複数のオブジェクトをメモリ内に作成できます。
オブジェクトとは、物、実体、名詞、取得できるものであり、独自のアイデンティティを持つあらゆるものを想像できます。オブジェクトはクラスのインスタンス化です。生きているオブジェクトもあれば、生きていないオブジェクトもあります。
この車、この人、この家、このテーブル、この植物、このチェック、このレインコートのように。一言で言えば、すべてはオブジェクトです。例: クラスはオブジェクトの抽象的な定義です。端的に言えば、オブジェクトがコンピューターの場合、クラスは多数のコンピューターを生成できます。非常に多くのコンピュータを生成できるコンピュータ生産工場と見なされます。
フィールド (フィールド)
フィールドは、クラスの特定の側面を記述するために使用されますが、いくつかの微妙な違いがあるだけで、一般的な PHP 変数と非常によく似ています。
例: コンピューターのブランド、コンピューターのモデル、その他の特性。属性
は、メソッドを通じてフィールドにアクセスして操作する一方で、フィールドを保護することができますが、同時にパブリック フィールドと同様に データへのアクセスも許可します。 例: コンピューターのブランドを取得し、コンピューターのブランドやその他の操作を設定します。
メソッド
メソッドは、クラスの動作を定義するために使用されることを除いて、関数と非常によく似ています。関数と同様に、メソッドは入力パラメータを受け入れ、呼び出し元に値を返すことができます。
例: コンピューターの電源を入れ、テキストを入力し、プログラムを実行します。
4つ。 OOPの作成
クラスの作成:
リーリー
オブジェクト宣言:
<span>$computer</span> = <span>new</span> Computer();
new 标识符是为了在内测中创建一个对象(实例),而Computer()就是那个类所生
成的实例。
$computer 是一个变量,而且又是生成实例的引用。
有时,你可能需要创建多个对象。
<span>$computer2</span> = <span>new</span> Computer();
使用var_dump()函数可以打印变量的相关信息。
字段(成员)的添加:
<span>class</span><span> Computer { </span><span>//</span><span>类的字段(成员)</span> <span>public</span> <span>$_name</span> = '联想120'<span>; </span><span>public</span> <span>$_model</span> = 'LX'<span>; }</span>
1.声明字段:
<span>public</span> <span>$_name</span> = '联想120'
a) public 是修饰符,表示这是一个公共字段,可以通过外部直接访问。
b) $_name 是变量名。
c) '联想120'是变量的值。
2.读取字段
<span>echo</span> <span>$computer</span>->_name;
3.设置字段
<span>$computer</span>->_name = 'IBM110';
方法的创建
<span>class</span><span> Computer { </span><span>//</span><span>类的方法</span> <span>function</span><span> run() { </span><span>echo</span> '我成功的运行了!'<span>; } }</span>
执行方法
<span>$computer</span>->run();
也可以在方法添加一些参数,执行的时候,传入这些参数。
<span>class</span><span> Computer { </span><span>//</span><span>类的方法</span> <span>function</span> run(<span>$_what</span><span>) { </span><span>echo</span> <span>$_what</span> . '成功的运行了!'<span>; } } </span><span>$computer</span> = <span>new</span><span> Computer (); </span><span>$computer</span>->run('电脑');
构造方法
所谓构造方法,也是方法,只不过是一种特殊的方法。而方法名必须和类名一致,
并且不需要像普通方法一样,必须通过调用才能执行,只需要实例化即完成调用过程。
一般来说,构造方法总是在做一些初始化的工作。
<span>class</span><span> Computer { </span><span>//</span><span>构造方法</span> <span>function</span><span> Computer() { </span><span>echo</span> '我是构造方法!'<span>; } } </span><span>new</span> Computer (); <span>//</span><span>这样即完成了调用</span>
在PHP5 我们可以通过__construct 的内置方法来识别构造方法,而不用再需要和
类名相同了。
<span>class</span><span> Computer { </span><span>//</span><span>构造方法</span> <span>function</span><span> __construct() { </span><span>echo</span> '我是构造方法!'<span>; } }</span>
相对应构造方法,还有一种内置的方法是析构方法,它的用途在整个类使用完毕都
执行。一般可用于清理内存中对象(脚本执行完毕的时候会自动清理)。而如果有脚本执
行完毕后并没有清理的,比如数据库数据等,就有必要使用析构方法。
<span>class</span><span> Computer { </span><span>//</span><span>析构方法</span> <span>function</span><span> __destruct() { </span><span>echo</span> '我是析构方法'<span>; } }</span>
注:文章出自李炎恢PHP视频教程,本文仅限交流使用,不得用于商业用途,否则后果自负。