ホームページ >バックエンド開発 >PHPチュートリアル >PHPオブジェクト指向ガイド(1) オブジェクト指向の基礎知識_PHPチュートリアル

PHPオブジェクト指向ガイド(1) オブジェクト指向の基礎知識_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:44:04743ブラウズ

1. オブジェクト指向の概念 オブジェクト指向プログラミング (OOP、オブジェクト指向プログラミング) は、コンピューター プログラミング アーキテクチャです。OOP の基本原理は、コンピューター プログラムが 1 つのユニットとして機能するということです。サブルーチン OOP はオブジェクトで構成され、再利用性、柔軟性、拡張性というソフトウェア エンジニアリングの 3 つの目標を達成します。全体的な操作を実現するために、各オブジェクトは情報を受信し、データを処理し、他のオブジェクトに情報を送信できます。オブジェクト指向はソフトウェア開発の分野で常に注目されています。まず第一に、オブジェクト指向は人間の物の見方の一般的なルールと一致しています。第二に、オブジェクト指向の手法を使用することで、システムの各部分がそれぞれの役割を果たし、任務を遂行できるようになります。これにより、プログラマーは、よりシンプルで保守が容易で再利用可能なコードを作成できるようになります。 PHP は真のオブジェクト指向言語ではないという人もいますが、
これは本当です。 PHP はハイブリッド言語であり、OOP または従来の手続き型プログラミングを使用できます。ただし、大規模なプロジェクトの場合は、純粋な OOP を使用して PHP でクラスを宣言し、プロジェクト内でオブジェクトとクラスのみを使用する必要がある場合があります。この概念については詳しく説明しません。多くの友人がオブジェクト指向プログラミングから遠ざかる主な理由は、オブジェクト指向の概念に触れても理解できないためです。それを学びたいです。内容全体を読んだ後、読者にコンセプトを理解してもらいます。

2. クラスとは、オブジェクトとは、クラスとオブジェクトの関係

クラスの概念: クラスは、同じ属性とサービスを持つオブジェクトのコレクションです。これは、このクラスに属するすべてのオブジェクトに対して統一された抽象的な説明を提供します。これには、属性とサービスという 2 つの主要な部分が含まれます。オブジェクト指向プログラミング言語では、クラスは独立したプログラム単位であり、クラス名を持ち、属性の説明とサービスの説明という 2 つの主要な部分を含む必要があります。 オブジェクトの概念: オブジェクトは、システム内の客観的なものを記述するために使用される実体であり、システムを構成する基本単位です。オブジェクトは、プロパティのセットと、プロパティのセットに対して動作するサービスのセットで構成されます。より抽象的な観点から見ると、オブジェクトは、問題ドメインまたは実装ドメイン内の何かを抽象化したもので、そのオブジェクトが保存する必要がある情報と、それがシステム内で果たす役割を反映しています。これらに対する属性と権限のセットです。プロパティは、それら上で動作する一連のサービスをカプセル化します。客観的な世界は、オブジェクト とオブジェクト間のつながりで構成されます。
クラスとオブジェクトの関係は、型と鋳物の関係に似ています。クラスのインスタンス化の結果がオブジェクトであり、オブジェクトの型を抽象化したものがクラスです。クラスは、同じ特性 (プロパティ) と同じ動作 (メソッド) を持つオブジェクトのグループを記述します。
おそらく、あなたはオブジェクト指向に慣れていないかもしれませんが、中関村に行って組み立て済みの PC を購入したいと考えている場合に、その概念に混乱しないでください。最初のステップは何ですか? 設置エンジニアがあなたと一緒に座って、あなたが提供した情報に基づいて設置構成リストを作成しますか? この構成リストは単なる紙にすぎません。たとえば、この構成リストを使用して 10 台のマシンを購入した場合、これらの 10 台のマシンはすべてこの構成リストに従って構成されているため、これらの 10 台のマシンは同じタイプになります。も同じタイプと言えます。では、オブジェクトとは何でしょうか? この構成シートを使用して構成 (インスタンス化) されたマシンはオブジェクトであり、10 台のマシン、10 個のオブジェクトを操作できます。各マシンは独立しています。これは、いずれかのマシンで実行されたアクションは他の 9 台のマシンには影響しません。ただし、クラスを変更する場合は、アクセサリが 1 つ欠落している場合に追加します。インストールされている 9 台のマシンすべてが変更されます。これがクラスとオブジェクトの関係です (クラスのインスタンス化の結果はオブジェクトです)。

3. オブジェクト指向プログラミングとは何ですか?

彼のコンセプトは言うまでもありませんが、コンピューター教室を建てたい場合は、まず N 台のコンピューター、N 個のテーブル、N 個の椅子、ホワイトボード、プロジェクターなどを備えた部屋を用意する必要があります。先ほど述べたように、これらは何ですか?このコンピューター教室の単位は、これらの個々の物理的なオブジェクトであると言えます。では、これは何と関係があるのでしょうか。オブジェクト指向?システム プログラムの開発は、コンピュータ教室を構築するのと似ています。このシステムは、情報を受信し、データを処理し、他のオブジェクトに送信することができる、複数のオブジェクトで構成されます。メッセージやその他のやり取り。
4. クラスを抽象化するには?
上で述べたように、オブジェクト指向プログラムの単位はオブジェクトですが、オブジェクトはクラスによってインスタンス化されるため、最初に行う必要があるのはクラスを宣言する方法です。基礎をマスターすればプログラミング文法の定義ルールは作れるのですが、何が難しいのでしょうか?プロジェクトで使用するクラスとオブジェクトの数、クラスを定義する場所、定義するクラスの種類、このクラスによってインスタンス化されるオブジェクトの数、クラス内に属性がいくつあるか、メソッドがいくつあるか、など、読者は実際の開発における実践的な問題を分析、設計、要約する必要があります。
クラスの定義:
class クラス名 {
}
キーワード class の後に必要なクラス名と中括弧のペアを使用します。これにより、クラスの構造が定義されます。クラスの構造が内部にある限り、コードですが、そこには何が書かれているのでしょうか?何を書けばいいでしょうか?完全なクラスを作成するにはどうすればよいですか?上で述べたように、クラスを使用する目的は、それを使用するためのオブジェクトにすることです。これには、上で説明したインストール構成シートと同様に、インストール構成シートに何が書かれているかを知る必要があります。機械について何かありますか?たとえば、ある人がターゲットです。自分の好きな人をどのようにリーダーに推薦しますか?もちろん、詳細であればあるほど良いです:
まず、その人の名前、性別、年齢、身長、体重、電話番号、自宅の住所などを紹介します。
次に、この人が何ができるか、運転ができるか、英語を話せるか、コンピュータが使えるかなどを紹介しなければなりません。あなたがもっと紹介する限り、他の人はこの人物についてもっと知るでしょう。これが私たちの人物の説明です。私たちが説明するために使用するすべてのオブジェクトは、できる限り似ています。クラスの作成は、定義の観点から 2 つの部分に分かれています。1 つ目は静的記述であり、2 つ目は動的記述です。上で見たように、静的記述
は人の名前です。 、性別、年齢、身長、体重、電話番号、自宅住所など。
ダイナミックとは、この人間オブジェクトの機能です。たとえば、この人は車を運転できます、英語を話せます、コンピューターを使用できます、などです。プログラムに抽象化すると、関数とメソッドは同じです。 。したがって、すべてのクラスは属性とメソッドという観点から記述されます。属性はこのクラスのメンバー属性とも呼ばれ、メソッドはこのクラスのメンバー メソッドとも呼ばれます。
クラスの人 {
メンバーの属性: 名前、性別、年齢、身長、体重、電話番号、自宅の住所
メンバーの方法: 車を運転できる、英語を話せる、コンピューターを使用できる
}
属性:
クラス定義のキーワードを使用する「var」は変数の宣言、つまりクラスの属性を作成するために使用されますが、メンバ属性の宣言時に初期値を与えることができますが、クラス宣言時にメンバ属性に初期値を与える必要はありません。たとえば、「Zhang San」という名前を割り当てる場合、このクラス インスタンスを使用して数十人を作成すると、この数十人は Zhang San と呼ばれるようになるため、メンバーの初期値を与えるだけで済みます。インスタンスからオブジェクトが作成された後の属性。
例: var $somevar;
メソッド(メンバー関数):
クラス定義で関数を宣言することで、クラスのメソッドが作成されます。
例: function somefun (パラメータリスト)
{ ... ... }
コードスニペット



コードをコピー

コードは次のとおりです:


class Person{ //以下は人間のメンバー属性ですvar $name; //その人の名前var $sex; //その人の年齢//以下はその人のメンバーメソッドです

function ){
// この人の話し方
echo "この人は話している";
} function run(){
// この人の歩き方
echo "この人は歩いている";
} ?>


上記はクラスの宣言であり、属性とメソッドの観点から宣言されたクラスですが、
を宣言する際にメンバーの属性に初期値を与えないことをお勧めします。説明情報であり、将来オブジェクトをインスタンス化するときに使用されます。たとえば、10 人の個人オブジェクトがインスタンス化された場合、これらの 10 人はそれぞれ異なる名前、性別、年齢を持つことになります
したがって、イニシャルを割り当てないことが最善です。ここではメンバー属性に値を割り当てていますが、値は各オブジェクトに個別に割り当てられます。
同じメソッドを使用して、属性とメソッドを使用してエンティティを記述できる限り、必要なクラスを作成できます。
それをクラスとして定義し、オブジェクトをインスタンス化します。
クラスの理解を強化するために、別のクラス、形状クラスを作成しましょう。形状の範囲が少し広いので、
長方形を作成して、最初に分析し、長方形の 2 つの側面から考えてみましょう。属性とは何ですか。 ?長方形の機能は何ですか?


コードをコピーします

コードは次のとおりです:


class Rectangle
{
//長方形の属性
長方形の幅;
//長方形の周囲
長方形の面積;


コードスニペット


コードをコピーします
コードは次のとおりです: class Rect{
var $kuan;
function zhouChang(){
長方形の周囲を計算します。 mianJi(){
長方形の面積を計算します
}
}
?>


このクラスを使用して複数の長方形オブジェクトを作成する場合、各長方形オブジェクトは独自の長さと幅を見つけることができます。自分自身の境界と領域。
クラス宣言は以上です! !


http://www.bkjia.com/PHPjc/320659.html

www.bkjia.com

tru​​e

技術記事 1. オブジェクト指向プログラミング (オブジェクト指向プログラミング、OOP、オブジェクト指向プログラミング) の概念は、コンピューター プログラミング アーキテクチャです。OOP の基本原理の 1 つは、コンピューター プログラム...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。