面向对象的程序设计(英语:Object-oriented programming,缩写:OOP)
1、类 :定义了一类事物的抽象特点。
2、对象:是类的实例。
3、创建对象:
对象名字 = new 类名();
4、成员变量:定义在内部的变量,在类被实例化为对象后,该变量即可称为的属性。
5、成员函数:定义在内部,可用于访问对象的数据。(行为:run、read..)
//自定义 汽车类
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定义构造函数)
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),也称为方法的重写。
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);
?>
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();
?>
问题:请编写一个计算器类。
描述:类中有两个成员变量表示操作数,通过类的构造方法可以为成员变量赋值。当调用“加法”成员方法时返回两个操作数相加的结果。同理,再实现“减法”、“乘法”和“除法”。
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"
";
$num->subtraction();
echo"
";
$num->multiplication();
echo"
";
$num->division();
?>
php面向对象