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

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

Dec 19, 2016 pm 01:41 PM
php オブジェクト指向

  1. オブジェクト指向プログラミングの概念
    オブジェクト指向プログラミング (OOP、オブジェクト指向プログラミング) は、コンピューター プログラミング アーキテクチャです。OOP の基本原理は、コンピューター プログラムが機能する単一のユニットで構成されるということです。 OOP はサブルーチンとしてオブジェクトで構成され、再利用性、柔軟性、拡張性というソフトウェア エンジニアリングの 3 つの目標を達成します。全体的な操作を実現するために、各オブジェクトは情報を受信し、データを処理し、他のオブジェクトに情報を送信できます。オブジェクト指向はソフトウェア開発の分野で常に注目されています。まず第一に、オブジェクト指向は人間の物の見方の一般的なルールと一致しています。第二に、オブジェクト指向の手法を使用することで、システムの各部分がそれぞれの役割を果たし、任務を遂行できるようになります。これにより、プログラマーは、よりシンプルで保守が容易で再利用可能なコードを作成できるようになります。 PHP は真のオブジェクト指向言語ではないという人もいますが、
    これは本当です。 PHP はハイブリッド言語であり、OOP または従来の手続き型プログラミングを使用できます。ただし、大規模なプロジェクトの場合は、純粋な OOP を使用して PHP でクラスを宣言し、プロジェクト内でオブジェクトとクラスのみを使用する必要がある場合があります。この概念については詳しく説明しません。なぜなら、多くの友人がオブジェクト指向プログラミングから遠ざかる主な理由は、オブジェクト指向の概念に触れても理解できないからです。もうそれを学ぶために。内容全体を読んだ後、読者にコンセプトを理解してもらいます。
    2. クラスとは、オブジェクトとは、およびクラスとオブジェクトの関係
    クラスの概念: クラスは、同じ属性とサービスを持つオブジェクトのコレクションです。これは、このクラスに属するすべてのオブジェクトに対して統一された抽象的な説明を提供します。これには、プロパティとサービスという 2 つの主要な部分が含まれます。オブジェクト指向プログラミング言語では、クラスは独立したプログラム単位であり、クラス名を持ち、属性の説明とサービスの説明という 2 つの主要な部分を含む必要があります。
    オブジェクトの概念: オブジェクトは、システム内の客観的なものを記述するために使用される実体であり、システムを構成する基本単位です。オブジェクトは、プロパティのセットと、プロパティのセットに対して動作するサービスのセットで構成されます。より抽象的な観点から見ると、オブジェクトは、問題ドメインまたは実装ドメイン内の何かを抽象化したもので、保存する必要がある情報と、そのオブジェクトがシステム内で果たす役割を反映しています。それは、属性と許可されたオブジェクトのセットです。これらのプロパティは、それら上で動作する一連のサービスをカプセル化します。客観的な世界は、オブジェクト
    とオブジェクト間のつながりで構成されます。
    クラスとオブジェクトの関係は、型と鋳物の関係に似ています。クラスのインスタンス化の結果がオブジェクトであり、オブジェクトの型を抽象化したものがクラスです。クラスは、同じ特性 (プロパティ) と同じ動作 (メソッド) を持つオブジェクトのグループを記述します。
    上記はおそらくオブジェクト指向の定義です。中関村に行って組み立て済みの PC を購入したい場合の例を説明します。最初のステップは何ですか?
    設置エンジニアがあなたと一緒に座って、あなたが提供した情報に基づいて設置構成リストを作成しますか? この構成リストは単なる紙に過ぎませんが、たとえば、この構成リストを使用して 10 台のマシンを購入した場合、これらの 10 台のマシンはすべてこの構成リストに従って構成されているため、これらの 10 台のマシンは同じタイプになります。同じタイプとも言えます。では、オブジェクトとは何でしょうか? この構成シートを使用して構成 (インスタンス化) されたマシンはオブジェクトであり、10 台のマシン、10 個のオブジェクトを操作できます。各マシンは独立しています。これは、いずれかのマシンで実行されたアクションは他の 9 台のマシンには影響しません。ただし、クラスを変更する場合は、アクセサリが 1 つ欠落している場合に追加します。これは、クラスとオブジェクトの関係です (クラスのインスタンス化の結果はオブジェクトです)。
    3.オブジェクト指向プログラミングとは何ですか?
    彼のコンセプトは言うまでもありませんが、コンピューター教室を建てたい場合は、まず N 台のコンピューター、N 個のテーブル、N 個の椅子、ホワイトボード、プロジェクターなどを備えた部屋を用意する必要があります。先ほど述べたように、これらは何ですか? 、このコンピュータ教室の単位は、これらの個々の物理的なオブジェクトであると言えます。つまり、私たちはこのコンピュータ教室を構成していると言えます。 -指向?システム プログラムの開発は、コンピュータ教室を構築するのと似ています。このシステムでは、各独立した機能モジュールをクラスに抽象化し、複数のオブジェクトで構成されます。オブジェクトの送信およびその他のインタラクション。
    4. クラスを抽象化するには?
    上で紹介したように、オブジェクト指向プログラムの単位はオブジェクトですが、オブジェクトはクラスによってインスタンス化されるので、最初にクラスを宣言するだけで済み、クラスを作るのは簡単です。基本的なプログラム構文定義をマスターしながら
    正しいルールに従って行うことができますが、何が難しいのでしょうか?プロジェクトで使用するクラスとオブジェクトの数、クラスを定義する場所、定義するクラスの種類、このクラスによってインスタンス化されるオブジェクトの数、クラス内に属性がいくつあるか、メソッドがいくつあるか、など、読者は実際の開発における実践的な問題を分析、設計、要約する必要があります。
    クラスの定義:
    class クラス名 {
    }
    キーワード class の後に希望のクラス名と中括弧のペアを使用して、内部にある限りクラスの構造を定義します。コードですが、そこには何が書かれているのでしょうか?何を書けばいいでしょうか?完全なクラスを作成するにはどうすればよいですか?前述したように、クラスを使用する目的は、使用するオブジェクトをインスタンス化することです。これには、前述のインストール構成シートと同様に、インストール構成シートに何が書かれているかを知る必要があります。機械について?たとえば、ある人がターゲットです。自分の好きな人をどのようにリーダーに推薦しますか?もちろん、詳細であればあるほど良いです:
    まず、その人の名前、性別、年齢、身長、体重、電話番号、自宅の住所などを紹介します。
    次に、この人が何ができるか、運転ができるか、英語を話せるか、コンピュータが使えるかなどを紹介しなければなりません。あなたがより多くを紹介する限り、他の人はこの人物についてもっと知るでしょう。これが私たちの人物の説明です。上で述べた人物の説明から、私たちが説明するものはすべて似ていることがわかります。クラスの作成は、定義の観点から 2 つの部分に分かれています。1 つ目は静的記述であり、2 つ目は動的記述です。上で見たように、静的記述
    は、人の名前、性別です。 、年齢、身長、体重、電話番号、自宅の住所など。
    ダイナミックとは、この人間オブジェクトの機能です。たとえば、この人は車を運転できます、英語を話せます、コンピューターを使用できます、などです。プログラムに抽象化すると、関数とメソッドは同じです。 。したがって、すべてのクラスは属性とメソッドという観点から記述されます。属性はこのクラスのメンバー属性とも呼ばれ、メソッドはこのクラスのメンバー メソッドとも呼ばれます。
    クラスの人 {
    メンバーの属性: 名前、性別、年齢、身長、体重、電話番号、自宅の住所
    メンバーの方法: 車を運転できる、英語を話せる、コンピューターを使用できる
    }
    属性:
    クラス定義のキーワードを使用する「var」は変数の宣言、つまりクラスの属性を作成するために使用されますが、メンバー属性の宣言時に初期値を与えることができますが、クラス宣言時にメンバー属性に初期値を与える必要はありません。たとえば、「Zhang San」という名前を割り当てる場合、このクラス インスタンスを使用して数十人を作成すると、この数十人は Zhang San と呼ばれるようになるため、メンバーの初期値を与えるだけで済みます。インスタンスからオブジェクトが作成された後の属性。
    例: var $somevar;
    メソッド(メンバー関数):
    クラス定義で関数を宣言することで、クラスのメソッドが作成されます。
    例: function somefun (パラメータリスト)
    { ... ... }
    コードスニペット


    <?php 
    class Person{ 
    //下面是人的成员属性 
    var $name; //人的名字 
    var $sex; //人的性别 
    var $age; //人的年龄 
    //下面是人的成员方法 
    function say(){ 
    //这个人可以说话的方法 
    echo "这个人在说话"; 
    } function run(){ 
    //这个人可以走路的方法 
    echo "这个人在走路"; 
    } 
    } 
    ?>
    ログイン後にコピー

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

    同じメソッドを使用して、エンティティを属性とメソッドで記述できれば、それをクラスとして定義し、オブジェクトをインスタンス化することができます。
  2. クラスの理解を強化するために、形状の範囲をもう少し広げた別のクラスを作成してみましょう。まず、長方形について考えてみましょう。属性は?長方形にはどんな機能があるのでしょうか?
class 矩形 
{ 
//矩形的属性 
矩形的长; 
矩形的宽; 
//矩形的方法 
矩形的周长; 
矩形的面积; 
}
ログイン後にコピー

コード スニペット

<?php 
class Rect{ 
var $kuan; 
var $gao; 
function zhouChang(){ 
计算矩形的周长; 
} function mianJi(){ 
计算矩形的面积; 
} 
} 
?>
ログイン後にコピー

このクラスを使用して複数の長方形オブジェクトを作成する場合、各長方形オブジェクトは独自の長さと幅を持ち、独自の周囲長と面積を計算できます。

上記は PHP オブジェクト指向ガイド (1) オブジェクト指向の基礎知識の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) をご覧ください。



このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles