PHP オブジェクト指向入門 (1) オブジェクト指向の基礎知識

WBOY
リリース: 2016-06-13 12:21:29
オリジナル
791 人が閲覧しました

1. オブジェクト指向の概念
オブジェクト指向プログラミング (OOP、オブジェクト指向プログラミング) は、コンピューター プログラミング アーキテクチャです。OOP の基本原理は、コンピューター プログラムが単一で構成されることです。 OOP は、サブルーチンとして機能するユニットまたはオブジェクトで構成され、再利用性、柔軟性、拡張性というソフトウェア エンジニアリングの 3 つの目標を達成します。全体的な操作を実装するために、各オブジェクトは情報を受信し、データを処理し、他のオブジェクトに情報を送信できます。オブジェクト指向はソフトウェア開発の分野で常に注目されています。まず第一に、オブジェクト指向は人間の物の見方の一般的なルールと一致しています。第二に、オブジェクト指向の手法を使用することで、システムの各部分がそれぞれの役割を果たし、任務を遂行できるようになります。これにより、プログラマーは、よりシンプルで保守が容易で再利用可能なコードを作成できるようになります。 PHP は真のオブジェクト指向言語ではないという人もいますが、
これは真実です。 PHP はハイブリッド言語であり、OOP または従来の手続き型プログラミングを使用できます。ただし、大規模なプロジェクトの場合は、純粋な OOP を使用して PHP でクラスを宣言し、プロジェクト内でオブジェクト
とクラスのみを使用することもできます。この概念については詳しく説明しません。多くの友人がオブジェクト指向プログラミングから遠ざかる主な理由は、オブジェクト指向プログラミングに触れても理解できないため、学びたくないからです。 。内容全体を読んだ後、読者にコンセプト
を理解してもらいます。
2. クラスとは、オブジェクトとは、クラスとオブジェクトの関係
クラスの概念: クラスは、同じ属性とサービスを持つオブジェクトの集合です。 。これは、このクラスに属するすべてのオブジェクトに対して統一された抽象的な説明を提供します。これには、属性とサービスという 2 つの主要な部分が含まれます。オブジェクト指向プログラミング言語では、クラスは独立したプログラム単位であり、クラス名を持ち、属性の説明とサービスの説明という 2 つの主要な部分を含む必要があります。
オブジェクトの概念: オブジェクトは、システム内の客観的なものを記述するために使用される実体であり、システムを構成する基本単位です。オブジェクトは、プロパティのセットと、プロパティのセットに対して動作するサービスのセットで構成されます。より抽象的な観点から見ると、オブジェクトは、問題ドメインまたは実装ドメイン内の何かを抽象化したもので、保存する必要がある情報と、そのオブジェクトがシステム内で果たす役割を反映しています。オブジェクトは、一連の属性とカプセル化です。これらのプロパティで動作する一連のサービスのセット。客観世界はオブジェクト
とオブジェクト間のつながりで構成されます。
クラスとオブジェクトの関係は、型と鋳物の関係に似ており、クラスのインスタンス化の結果がオブジェクトであり、オブジェクトの型を抽象化したものがクラスです。クラスは、同じ特性 (プロパティ) と同じ動作 (メソッド) を持つオブジェクトのグループを記述します。
上記はおそらくオブジェクト指向の定義です。中関村に行って組み立て済みの PC を購入したいと考えている方に、その概念を混乱させないでください。到着したら最初のステップですか?
設置エンジニアがあなたと一緒に座って、あなたが提供した情報に基づいて設置構成リストを作成しますか? この構成リストは単なるクラスの一部にすぎません。紙ですが、購入したい PC の情報が記録されています。たとえば、
この構成リストで 10 台のマシンを購入すると、これらの 10 台のマシンはすべてこの構成リストに従って構成されます。 1 つのタイプ、または 1 つのカテゴリに属します。では、オブジェクトとは何でしょうか? クラスのインスタンス化の結果がオブジェクトです。この
構成シートを使用して構成 (インスタンス化) されたマシンは、10 台のマシン、10 個のオブジェクトを操作できるエンティティです。各マシンは独立しています。これは、マシンの 1 つで実行されたアクションは他の 9 台のマシンには影響しません。ただし、クラスを変更するときは、If there is one or を追加します。アクセサリが 1 つ減ると、インストールされている 9 台のマシンがすべて変更されます。これがクラスとオブジェクトの関係です (クラスのインスタンス化の結果はオブジェクトです)。

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

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



コードをコピー

コード class person{

//以下は person のメンバー属性です

var $name; person
var $sex; //人の性別
var $age; //人の年齢
//以下はその人のメンバーメソッド
functionsay(){
//これは人は話すことができます
echo "この人は話しています";
} function run(){
//この人はどのように歩くことができます
echo "この人は歩いています";
}
? >


上記はクラスの宣言であり、属性とメソッドに関して宣言されていますが、メンバーの属性には初期値を与えないのが最善です。
を宣言するとき、そうするためです。 person クラスは、将来オブジェクトをインスタンス化するために使用できる説明情報です。たとえば、10 人の person オブジェクトがインスタンス化される場合、
の名前、性別、年齢が表示されます。
したがって、ここではメンバーのプロパティに初期値を割り当てるのではなく、各オブジェクトに個別に値を割り当てることが最善です。

同じメソッドを使用して、属性とメソッドを使用してエンティティを記述することができれば、
それをクラスとして定義し、オブジェクトをインスタンス化できます。
クラスの理解を強化するために、形状クラスをもう 1 つ作成してみましょう。
まず、それを分析して 2 つの側面から考えてみましょう。 . 分析、長方形の性質は何ですか?長方形
の機能は何ですか?



コードをコピー

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


class Rectangle
{
//長方形のプロパティ
長方形の長さ;
長方形の幅;
//長方形の周囲
🎜>長方形の面積;
}

コードスニペット

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

class Rect{
var $kuan;
var $gao;
function zhouChang(){
rectangle;
} function mianJi(){
長方形の面積を計算します;
}
?> これを使用すると、複数の四角形オブジェクトを作成するクラス。各四角形。各オブジェクトには独自の長さと幅があり、独自の
周囲長と面積を計算できます。
クラス宣言は以上です! !

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート