zoukankan      html  css  js  c++  java
  • 【代码总结】PHP面向对象之类与对象

    一、类和对象的关系

      类的实体化结果是对象,而对象的抽象就是类。在开发过程中,我们通常都是先抽象(幻想)出一个类,再用该类去创建对象(实现幻想的内容)。在程序中,直接使用的是我们(实现幻想)的对象,而不是抽象(幻想)的类

    二、面向对象和面向过程

    1、什么是面向过程

      面向过程就好比一个人 自己洗衣服、做饭,什么事情都是自己解决

    2、什么是面向对象

      面向对象就是那个人有了对象,让对象去洗衣服、做饭。

    三、如何抽象一个类

    1 class 类名{
    2     成员属性:
    3         姓名、性别、年龄、身高、体重
    4     成员方法:
    5         说话、走路、学习、吃饭、开车
    6 }

    所有的类都是从成员属性和成员方法这两方面去声明,属性和方法都是类中的成员,所以属性又叫做成员属性,方法又叫做成员方法

    1、成员属性  -->特征

      在对象中直接声明变量就称为成员属性,可以在类中声明多个成员变量,即对象中可以有多个成员属性

    class Person{
        var $name;    //声明第一个成员属性,用于储存人的名字
        var age;      //声明第一个成员属性,用于储存人的年龄
        var $sex;     //声明第一个成员属性,用于储存人的性别
    }

    2、成员方法  -->功能

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

    对象就是把相关的属性和方法组织在一起。其中成员属性和成员方法都是可以选的,可以只有成员属性,也可以只有成员方法,也可以没有成员。

    四、实例化对象

    一个类可以声明多个对象,让对象去访问成员属性和成员方法

    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();

    五、特殊的对象引用 "$this"

      上面的示例中,我们是实例化一个对象之后再给成员属性赋值和访问成员方法的。那么 $this也可以在成员方法中使用,代表的是当前的这个对象

    成员方法调用前的对象是谁,$this就代表谁

    class Person{
        var $name;
        function info(){
            $this ->name = "SQYY";
        }

     六、构造方法与析构方法

     1、构造方法

       构造方法是对象创建完成后第一个被对象自动调用的方法,会初始化这个对象,当使用new关键字实例化对象时会自动触发。

    <?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('张三');             //创建对象$person2时会自动执行构造方法,传入第一个参数,其他默认传参
        $person3 = new Person('李四','男');        //创建对象$person3时会自动执行构造方法,传入前两个参数,其他默认传参
        $person4 = new Person('王五','女','20');   //创建对象$person4时会自动执行构造方法,传入所有参数
        
        $person1 ->say();
        $person2 ->say();
        $person3 ->say();
        $person4 ->say();
    ?>

    2、析构方法

      对象在销毁之前最后一个被对象自动调用的方法,先创建 传入变量后销毁

    <?php 
        header('Content-type:text/html;charset=utf-8');
        // 定义一个汽车的类
        class car{
            // 成员属性
            public $name;
            public $color;
    
            //构造方法
            public function __construct($name,$color){
                $this->name = $name;
                $this->color = $color;
                echo "你创建了".$this->name.'<br>';
            }
    
            // 析构方法
            public function __destruct(){
                echo "你销毁了".$this->name.'<br>';
            }
        }
    
        // 实例化对象
        $hanma = new car('悍马','粉色','H2');
        $bmw = new car('宝马','红色','X7');
        $benchi = new car('奔驰','黑色','s600');
    
        // unset($bmw);
        $bmw = '1111';
     ?>

    如果我们不引用变量,创建完对象之后就会销毁。

    <?php 
    
        header('Content-type:text/html;charset=utf-8');
    
        // 定义一个汽车的类
        class car{
            // 成员属性
            public $name;
            public $color;
    
            //构造方法
            public function __construct($name,$color){
                $this->name = $name;
                $this->color = $color;
                echo "你创建了".$this->name.'<br>';
            }
    
            // 析构方法
            public function __destruct(){
                echo "你销毁了".$this->name.'<br>';
            }
        }
    
        // 实例化对象
        new car('悍马','粉色','H2');
        new car('宝马','红色','X7');
        new car('奔驰','黑色','s600');
    
     ?>

  • 相关阅读:
    小批量随机梯度下降
    查询文档
    自动求梯度
    数据操作
    Hadoop 入门
    Matplotlib 二维图像绘制方法
    Pandas 数据处理基础
    NumPy 数值计算基础课程
    关于 Shell 脚本
    语法分析
  • 原文地址:https://www.cnblogs.com/sqyysec/p/6810345.html
Copyright © 2011-2022 走看看