php面向对象

Posted wwx09

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php面向对象相关的知识,希望对你有一定的参考价值。

面向对象的程序设计(英语:Object-oriented programming,缩写:OOP)

1、类 :定义了一类事物的抽象特点。
2、对象:是类的实例。

3、创建对象:
      对象名字 = new 类名();
4、成员变量:定义在内部的变量,在类被实例化为对象后,该变量即可称为的属性。

5、成员函数:定义在内部,可用于访问对象的数据。(行为:run、read..)

<?php 
//自定义 汽车类
    class Car{
        //成员变量
        var $name;//名字
        var $color;//颜色
        /*成员函数 */
        function run(){
            echo $this -> color . $this -> name . "在行驶";
        }
    }
    //$m 汽车类 Car产生的对象实例
    $m1 = new Car();
    //给对象变量赋值
    $m1 ->name = "小鹏汽车";
    $m1 ->color = "红色";
    $m1 -> run();

 ?>

构造函数:是一种特殊的函数。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。
( __construct定义构造函数)

<?php
    class stu{
        var $name;
        var $age;
        //构造函数 用来创建对象时初始化对象,即为对象成员变量赋初始值
        function __construct($n,$a){
            $this->name=$n;
            $this->age=$a;
        }

        function read(){
               echo "年龄" .$this->age."的".$this->name."在读书";

        }
    }
    //创建一个 Stu类的 学生对象实例
    $s1 = new stu("李华",20);

    $s1->read();

 ?>

继承:
PHP 使用关键字 extends 来继承一个类,PHP 不支持多继承
class Child(子类) extends Parent(父类) {
         // 代码部分
}

方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。

<?php 
    class Car{
        //成员变量
        var $name;
        var $color;
        /*成员函数 */
        function run(){
            echo $this -> color . $this -> name . "在行驶";
        }
    }
    //定义了Bus继承了Car
    class bus extends Car{
        var $count;
        /*成员函数 */
        //方法重写
        function run(){
            echo "载客量".$this->count . $this -> color . $this -> name . "在行驶";
        }

    }

    //创建一个Bus类的Bus对象
    $bus = new Bus();
    $bus->name = "56路公交车";
    $bus->color = "蓝色";
    $bus->count = "30";
    $bus->run();
    //打印 带有父类的对象
//    var_dump($bus);

 ?>

 

<?php
            class animal{
        //成员变量 属性
        var $name;
        var $color;

        //成员函数 方法
        function run(){
               echo $this->color."的".$this->name."在跑";

        }
    }
    class Dog extends animal{
        var $age;
        //重写 子类 父类
        //方法名一样
        function run(){
            echo "年龄". $this->age. "岁的" .$this->color."的".$this->name."在跑";

        }

    }
    $d = new Dog();
     $d->name = "旺财";
     $d->color = "黄色";
     $d->age = 5;
     $d = new sheep();
     $d->name = "小白";
     $d->color = "白色";
     $d->age = 6;
    $d->run();

?>

问题:请编写一个计算器类

描述:类中有两个成员变量表示操作数,通过类的构造方法可以为成员变量赋值。当调用“加法”成员方法时返回两个操作数相加的结果。同理,再实现“减法”、“乘法”和“除法”。

<?php
         class Calculator{
        var $number1;
        var $number2;

        function addition()//加法
        {
            echo $this->number1."+".$this->number2."=".($this->number1+$this->number2);
        }

        function subtraction()//减法
        {
        echo $this->number1."-".$this->number2."=".($this->number1-$this->number2);
        }

        function multiplication()//乘法
        {
        echo $this->number1."*".$this->number2."=".$this->number1*$this->number2;
        }

        function division()//除法
        {
        echo $this->number1."/".$this->number2."=".$this->number1/$this->number2;
        }
    }


        $num = new Calculator();
        $num->number1 = 100;
        $num->number2 = 20;

        
        var_dump($bus);
        $num->addition();
        echo"<br>";
        $num->subtraction();
          echo"<br>";
        $num->multiplication();
          echo"<br>";
        $num->division();

?>

 









以上是关于php面向对象的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段9——JS中的面向对象编程

php面向对象之一

代码学习PHP面向对象之类与对象

Php 面向对象

php面向对象编程

PHP面向对象接口部分基础代码