面向对象第四天

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象第四天相关的知识,希望对你有一定的参考价值。

第四天 常见关键字和魔术方法
========================================================================
1. final 关键字
    修饰类 和 方法
    被修饰的类不能被继承
    被修饰的方法 不能被重写
作用
    ① 真理性
    ② 安全性

2. static 静态
    回顾 静态变量
    修饰成员属性和方法 3p依然有效
格式:
    public static $param;

    public static function funName()
    {

    }

访问静态属性
在类的外部
    类名::$属性名 //不需要实例化。直接用类名访问
在类的内部
    类名::$属性名\self::$属性名
访问静态方法
  在类的外部
      $obj->funName()\类名::funName()
  在类的内部
      $this->funName()\类名::funName()\self::funName()
特点注意:
    ① 静态方法中不能出现非静态属性调用 $this
    ② 在老版本php 中如果一个方法中 没有出现非静态调用则默认为静态方法(了解)

3. 单态 (单例)设计模式
    一个类只能被实例化一次

4. const 常量
    const 定义常量
    在类的外部访问
    className::常量名
在类的内部访问
    self::常量名 \ className::常量名
作用:
    给方法或函数定义参数
便于记忆

5. instanceof
    $obj instanceof 类名
      判断对象是否时类或其子类的实例化

6. 克隆对象
__clone(){}
    当对象被clone 关键字克隆出另一个对象时调用
      如果有属性为对象,则需要在__clone(){}中再次克隆属性,以完成完整的克隆操作

7. __toString()
    当用echo print 对象当作字符串string来输出打印时自动调用
作用:
    类的说明信息输出

8. __call() 和 __callStatic()
    当访问方法或静态方法不存在时自动调用
      第一个参数:调用方法名
    第二个参数:传入方法的参数集合数组
作用:
404

9. __invoke() (没啥用)
    在对象当作方法或函数调用时触发

10. 自动加载类的函数
    如果脚本中实例化对象时 类文件不存在 则自动触发__autoload函数
    将类名传入方法
    先判断指定位置是否存在类文件 如果存在 require 不存在 die

11. 对象串行化(序列化)
    $str = seralizie($obj)
      自动触发
         __sleep()
            {
          return array(‘name‘,‘age‘。。。) //返回想保存的属性值数组
          }

    用文件或数据库或缓存存储obj 字符串

    $objStr = unserialize($str);
  __wakeup(){}

12. 类型约束
    array 和 class

13. stdClass
    系统空类

以上是关于面向对象第四天的主要内容,如果未能解决你的问题,请参考以下文章

python学习-第四天补充-面向对象

Day09_面向对象第四天

C#第四天

第四天 PYTHON 函数

《Python编程从入门到实践》——学习python的第十四天

python实训第四天