今天我们学习了PHP面向对象,它和面向过程一样都是一种编程思想。但不同的是面向过程着重于做什么;面向对象着重于谁去做。
- 面向对象三大特性
- 封装性:将敏感的数据保护起来不被外界访问(将一个功能的方方面面封装成一个整体,即类)。
- 继承性:为了实现功能的升级(原来有的功能在子类进行完善)和扩展(原本没有的功能在子类进行增加)。
- 多态性:允许不同类的对象对同一消息作出不同的响应(方法重写)。
拓展:权限修饰符
- public(公共):在任何地方都可以访问,主要包括类外、本类和子类
- private(私有):只能在本类中被访问,在类外和子类中都无权访问
- protected(受保护的):只能在本类和子类中被访问,类外不能访问
下面举一个小例子:
<?php
/**
* 学生类
*/
class Student
{
//这是学生的4个属性
public $no;
public $name;
public $sex;
public $age;
//学生的方法
public function study()
{
echo '学生在学习';
}
}
//实例化对象
$stu1 = new Student();
//给属性赋值
$stu1->no = '1835050418;
$stu1->name = "乔金瑞";
$stu1->sex = '女';
$stu1->age = 18;
//执行方法
$stu1->study();
小总结:
★class是声明类的关键字,直接跟大括号{},类由属性和方法构成。ClassName是类的名称,命名方式和变量一样,但是不加$符号,习惯‘驼峰式’命名。
★new 是实例化对象的关键字,一个类可以创建千千万万个对象,每个对象都占用内存。
★访问对象中的属性和方法,要使用符号->。访问属性时,属性名称的$不用添加。
- 构造方法和析构方法
▲当使用new关键字创建对象时,第一个自动调用的方法就是构造方法: __construct() 权限可以自己指定,可带参也可不带。作用是对象初始化,比如:给对象属性赋值,连接数据库对象
▲对象销毁前自动调用的方法就是析构方法:__destruct() 必须为public,不带任何参数。作用是垃圾回收,释放内存释放资源(网页执行完毕后调用析构方法载删除对象)。也可以手动销毁对象,如:unset()手动删除 (先调用析构方法删除对象,输出最后一行代码)
<?php
/**
* 学生类
*/
class Student
{
//这是学生的4个属性
private $no;
private $name;
private $sex;
private $age;
//构造方法
function __construct($no,$name,$sex,$age)
{
$this->no = $no;
$this->name = $name;
$this->sex = $sex;
$this->age = $age;
}
//自我介绍
public function say(){
printf("自我介绍:我叫%s,年龄:%d",$this->name,$this->age);
}
//析构方法
function __destruct()
{
echo '正在执行析构方法 ';
}
}
//实例化对象
$stu1 = new Student(1835050418,'乔金瑞','女',18);
$stu1->say();
提示:
$this : 表示当前对象,只有在类的方法中,当访问成员变量(属性)或自己的方法时,才会用到$this。