PHPのクラスとオブジェクトの関係

angryTom
リリース: 2023-04-07 09:00:01
オリジナル
3671 人が閲覧しました

PHPのクラスとオブジェクトの関係

オブジェクト指向 (OO) はソフトウェア開発手法の 1 つです。オブジェクト指向の概念とアプリケーションは、プログラミングやソフトウェア開発を超え、データベース システム、インタラクティブ インターフェイス、アプリケーション構造、アプリケーション プラットフォーム、分散システム、ネットワーク管理構造、CAD テクノロジー、人工知能などの分野に拡大しました。ここでは、PHP におけるクラスとオブジェクトの関係について紹介します。

推奨チュートリアル: PHP ビデオ チュートリアル

##1. クラスとオブジェクトの関係

クラスの実体化結果がオブジェクトであり、オブジェクトを抽象化したものがクラスです。開発プロセスでは、通常、最初にクラスを抽象化(想像)し、次にそのクラスを使用してオブジェクトを作成します(空想の内容を実現します)。プログラムでは、抽象 (ファンタジー) クラスの代わりに (ファンタジー) オブジェクトを直接使用します。

#2. オブジェクト指向とプロセス指向

#1. プロセス指向とは

このプロセスは、人が洗濯、料理、すべてを自分で解決するようなものです。

2. オブジェクト指向とは

オブジェクト指向とは、人がにはオブジェクトがあり、対象者に洗濯と料理をするように頼みます。

3. クラスを抽象化する方法

class 类名{
     成员属性:
        姓名、性别、年龄、身高、体重
     成员方法:
        说话、走路、学习、吃饭、开车
   }
ログイン後にコピー
すべてのクラスは、メンバー属性とメンバー メソッドという 2 つの側面から宣言されます。クラスのすべてのメンバーであるため、属性はメンバー属性とも呼ばれ、メソッドはメンバー メソッドとも呼ばれます


#1. メンバー属性 -->特性

オブジェクト内で変数を直接宣言することをメンバ属性と呼びます。クラス内で複数のメンバ変数を宣言できます。つまり、オブジェクト内に複数のメンバ属性が存在できます。 ##2. メンバー メソッド -->関数

class Person{
    var $name;    //声明第一个成员属性,用于储存人的名字
    var age;      //声明第一个成员属性,用于储存人的年龄
    var $sex;     //声明第一个成员属性,用于储存人的性别
  }
ログイン後にコピー

オブジェクトは、関連するプロパティとメソッドをまとめて整理します。メンバー属性とメンバー メソッドはどちらもオプションであり、メンバー属性のみを指定することも、メンバー メソッドのみを指定することも、メンバーを指定しないこともできます。

4. オブジェクトのインスタンス化

クラスは複数のオブジェクトを宣言でき、オブジェクトがメンバー プロパティやメンバー メソッドにアクセスできるようになります

class Person{
    var $name;    //声明第一个成员属性,用于储存人的名字
    var $age;      //声明第一个成员属性,用于储存人的年龄
    var $sex;     //声明第一个成员属性,用于储存人的性别
    function say(){   //声明第一个方法
        echo '人在说话';   //定义人说话的功能
    }
    function run(){   //声明第二个方法
        echo '人在跑步';   //定义人跑步的功能
    }
    function eat(){   //声明第三个方法
        echo '人在吃饭';   //定义人吃饭的功能
    }
}
ログイン後にコピー

5. 特別なオブジェクト参照 "$this"

上記の例では、オブジェクトをインスタンス化してから値を割り当てます。メンバーのプロパティにアクセスし、メンバーのメソッドにアクセスします。 $this は現在のオブジェクトを表すメンバー メソッドでも使用できます。 メンバー メソッドが呼び出される前のオブジェクトは誰ですか? $this は誰を表しますか?

class Person{
    var $name;    //声明第一个成员属性,用于储存人的名字
    var $age;      //声明第一个成员属性,用于储存人的年龄
    var $sex;     //声明第一个成员属性,用于储存人的性别
    function say(){   //声明第一个方法
        echo '人在说话';   //定义人说话的功能
    }
    function run(){   //声明第二个方法
        echo '人在跑步';   //定义人跑步的功能
    }
    function eat(){   //声明第三个方法
        echo '人在吃饭';   //定义人吃饭的功能
    }
}
// 实例化对象
$sqyy = new Person();
//成员属性赋值
$sqyy -> name = "伊川";
$sqyy -> sex = "男";
$sqyy -> age = 26;
//访问对象中的成员方法
$sqyy->eat();
ログイン後にコピー

6. 構築方法と破棄方法

## 1. 構築方法# 構築方法は、オブジェクトが作成された後、最初に自動的に作成されるオブジェクトです。呼び出されたメソッドはオブジェクトを初期化し、オブジェクトのインスタンス化に new キーワードが使用されると自動的にトリガーされます。

class Person{
    var $name;   
     function info(){     
        $this ->name = "SQYY";
    }
  }
ログイン後にコピー

実行結果

2. 破棄メソッド

PHPのクラスとオブジェクトの関係 オブジェクトは自動的に、その前の最後のオブジェクトになります。 destroy 呼び出しメソッドは、最初に受信変数を作成し、次にそれを破棄します

<?php
    class Person{
        //下面是声明人的成员属性,都是没有初始值的,在创建对象时,使用构造方法赋给初始值
        var $name;   //定义人的名字
        var $sex;    //定义人的性别
        var $age;    //定义人的年龄
        
        function __construct($name="SQYY",$sex="男",$age=1){
            $this -> name = $name;  //在创建对象时,使用传入的参数$name为成员属性 $this->name赋初值
            $this -> sex = $sex;    //在创建对象时,使用传入的参数$sex为成员属性 $this->sex赋初值
            $this -> age = $age;    //在创建对象时,使用传入的参数$sex为成员属性 $this->age赋初值
        }
    
        //下面声明人的成员方法
        function say(){
            echo "我的名字:" .$this ->name. " ,性别:" .$this -> sex ."  年龄" .$this ->age. "。<br>";
        }
    }
    
    $person1 = new Person();                   //创建对象$person1时会自动执行构造方法,默认传参
    $person2 = new Person(&#39;张三&#39;);             //创建对象$person2时会自动执行构造方法,传入第一个参数,其他默认传参
    $person3 = new Person(&#39;李四&#39;,&#39;男&#39;);        //创建对象$person3时会自动执行构造方法,传入前两个参数,其他默认传参
    $person4 = new Person(&#39;王五&#39;,&#39;女&#39;,&#39;20&#39;);   //创建对象$person4时会自动执行构造方法,传入所有参数
    
    $person1 ->say();
    $person2 ->say();
    $person3 ->say();
    $person4 ->say();
?>
ログイン後にコピー

実行結果

変数を参照しない場合、オブジェクトは破棄後に作成されます。

<?php 
    header(&#39;Content-type:text/html;charset=utf-8&#39;);
    // 定义一个汽车的类
    class car{
        // 成员属性
        public $name;
        public $color;

        //构造方法
        public function __construct($name,$color){
            $this->name = $name;
            $this->color = $color;
            echo "你创建了".$this->name.&#39;<br>&#39;;
        }

        // 析构方法
        public function __destruct(){
            echo "你销毁了".$this->name.&#39;<br>&#39;;
        }
    }

    // 实例化对象
    $hanma = new car(&#39;悍马&#39;,&#39;粉色&#39;,&#39;H2&#39;);
    $bmw = new car(&#39;宝马&#39;,&#39;红色&#39;,&#39;X7&#39;);
    $benchi = new car(&#39;奔驰&#39;,&#39;黑色&#39;,&#39;s600&#39;);

    // unset($bmw);
    $bmw = &#39;1111&#39;;
 ?>
ログイン後にコピー

実行結果

PHPのクラスとオブジェクトの関係

以上がPHPのクラスとオブジェクトの関係の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!