合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
面向对象 ====== 代码健壮和复用,面向对象的编程方法 面向过程 VS 面向对象 什么是类 -- 类是具有相同属性和服务的一组对象的集合比如说人,书,轮船,车都属于类,他为属于该类的对象做了一个统一的抽象描述,在编程的语言中类是一个单独的程序,它应该有一个类名包括属性的说明和服务两个部分。 什么是对象 -- 对象是系统中描述客观事件的一个实体,他是构成系统的一个基本单位。*数据与代码都被捆绑在一个实体当中*,一个对象由一组属性和对这组属性进行操作的一组行为组成。 class classname [可选属性]{ public $property [=value];… //用public声明一个公共标识 然后给予一个变量 变量也可以赋值 function functionname ( args ){ //类的方法里的成员函数 代码} … //类的方法(成员函数) } 生成对象(类的实例化): $对象名=new classname( ); 构造函数是在类中起到初始化的作用 构造函数的生成方法与其他函数一样只是其名称必须是__construct(). 语法格式:function __construct(参数){ 。。。。。。。。 } 范例: class Person{ public $name; public $sex; public $age; function __construct($name,$sex,$age){ echo "我是构造函数<br>"; $this->name=$name; $this->sex=$sex; $this->age=$age; } 访问类型 public 公共的(公共修饰符) 类内部与类外部都可以访问的 private 私有的(私有修饰符) 只能在类内部访问 protected 受保护的(保护成员修饰符) 子类可以访问 类外部不可以访问 oop的三个重要特性 封装,继承,多态 封装性:封装性就是把对象的属性和行为结合成一个独立的单位。 封装一个类需要两步 第一步是私有化一个类 第二步是用set和get 做出读取赋值的操作 他的好处是:隐藏类的实现细节,可以方便加入逻辑控制性,限制对属性的不合理操作,便于修改增强代码的可维护性。 __get与__set 一般说把类私有话更符合现实的逻辑。 预定义两种函数来进行获取与敷值操作。 __get 获取值通常是域的值 __set 设置值通常是域的值 __call 调用一个对象中不存在的方法时,就会产生错误call()这个方法来处理这种情况。 静态属性和方法 static关键字 来声明静态方法 static静态变量 在类的内部生成一个静态变量 就是能够被所有类的实力化共想 也就是说静态成员则放到了“初始化静态段”,在类第一次被加载的时候放入的,可以让堆内存里面的每个对象所共享 使用方法:self::$静态属性、self::静态方法 static function p(){ echo self::$country; echo self::PI;//访问常量 //echo $this->name;在静态方法中只能操作静态属性 //self::p(); } 外部调用:类::$静态属性、类::静态方法 const关键字:用来生成常量 常量是唯一的不能改变的 惯例常量为大写 const CONSTANT = 'constant value'; 生成一个常量 echo self::CONSTANT;//类内部访问 echo ClassName::CONSTANT;//类外部访问