类和对象
类和对象
对象是对客观事物的抽象,类是对对象的抽象。
类是一种抽象的数据类型,其定义为:
class 类名{
//成员变量
//成员方法 }
它们的关系是,对象是类的实例,类是对象的模板。
造对象
$r = new 类名
面向对象的三大特性:封装 继承 多态
·封装
目的:让类更加安全。
方法:不让外界直接访问类成员。
具体做法:
·做法一:
1、成员变为私有:访问修饰符
·public,所有的都可以访问
·private,只有该类可以访问,子类也无法访问
·protected,只有该类和子类才能访问
2、造成员方法来操作变量
·做法二:
1、使用类里提供的__get()和__set()方法
·构造函数:
在造对象时,对成员变量进行初始化
1、执行时间特殊,造对象的时候就自动执行
2、写法特殊,__construct()
2、继承:子类可以继承父类的一切
关键字:extends
特点:单继承:一个子类只能有一个父类,一个父类可以派生多个子类。
方法重写:子类里建一个和父类重名的方法,会将父类方法覆盖;如果不想覆盖而是扩展使用的是 parent::Say();
3、多态:当父类引用指向子类实例,由于子类对父类的方法重写,所以父类引用在调用该方法的时候表象出来的不同就是多态。
条件:1、必须继承;2、子类必须对父类方法重写;3、父类的引用指向子类的实例
·静态 关键字:static
普通对象是属于对象的;静态对象是属于类的;普通方法里可以调用静态成员;静态方法里不能调用普通成员用类的名字调用:ren::say();;self::say();self代表自身的类调用静态变量
·抽象类 关键字:abstract
抽象类不能实例化,可以被继承
·接口 关键字:interface,不加class关键字
接口里面有成员方法,但是没有函数体
实现接口使用的关键字:implements 不是 extends
子类必须实现接口的所有方法
·析构函数
写法特殊:__destruct 执行特殊:在对象销毁的时候执行,自动调用
作用:在对象销毁之前,将内存释放,连接关闭等等
·__tostring()方法
调用对象时自动调用,把对象变成字符串输出
·克隆 关键字:clone
·加载类,引用类
关于根路径:php里/代表根路径,是指该文件所在的磁盘比如:D:/
html里/代表根路径,是指服务器文件夹:www
a.include("/wamp/www/0607/ren.class.php");
b.include "ren.class.php";
c.require ("ren.class.php");
d.require "ren.class.php";
e.require_once ("ren.class.php");
f.require_once "ren.class.php";