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面向对象的主要内容,如果未能解决你的问题,请参考以下文章