博客列表 >OOP面向对象基本演绎

OOP面向对象基本演绎

橙絮圆
橙絮圆原创
2021年08月14日 13:06:26511浏览

OOP面向对象基本演绎

作业标题:0812 oop编程-2
作业内容:oop基础:请举例实例演绎以下难点 1. 类(对象抽象化的结果)与对象 (类实例化结果) 2. 构造方法 3. 对象成员之间的内部访问 $this 4. private仅限本类中使用 protected本类中,子类中使用 5. 类的自动加载 spl_autoload_register 6. 静态成员的访问 类的引用self:: 7. 类的继承 扩展 父类方法(魔术方法,普通方法)的重写 parent:: 调用父类成员


  • 类(对象抽象化的结果)与对象 (类实例化结果)
    类、对象
  • 构造方法

    1. <?php
    2. class Student{
    3. public $username;
    4. public $hight;
    5. private $age;
    6. protected $gender;
    7. // __construct()魔术方法 构造函数 构造器 类实例化一次就被自动调用一次 __get __set __call __callStatic
    8. public function __construct($username, $hight, $age,$gender){
    9. // 1. 初始化类成员 让类/实例化的状态稳定下来
    10. // 2. 给对象属性进行初始化赋值
    11. // 3.可以给私有成员,受保护的成员初始化赋值
    12. $this->username = $username;
    13. $this->hight = $hight;
    14. $this->age = $age;
    15. $this->gender = $gender;
    16. }
    17. public function run(){
    18. return "姓名:$this->username,身高:$this->hight,年龄:$this->age,$this->gender";
    19. }
    20. }
    21. $test=new Student("张三","170",25,"男");
    22. echo $test->run();
    23. ?>
  • 对象成员之间的内部访问 $this
    this
  • private仅限本类中使用 protected本类中,子类中使用
    private

    protected
  • 类的自动加载 spl_autoload_register
    autoload
    自动加载代码

    1. <?php
    2. spl_autoload_register(function($className){
    3. // 先查看要加载的类
    4. printf('类名:%s<br>',$className);
    5. // 将类命名空间与类所在的路径进行一一映射
    6. // linux / window \
    7. // 解决在linux系统中命名空间失效的问题
    8. $file = __DIR__.'\\controller\\'.str_replace('\\',DIRECTORY_SEPARATOR,$className).'.php';
    9. // echo $file;
    10. if(!(is_file($file) && file_exists($file)))
    11. {
    12. throw new \Exception('文件名不合法或者不存在');
    13. }
    14. require $file;);

    autoload

  • 静态成员的访问 类的引用self::
    static
  • 类的继承 扩展 父类方法(魔术方法,普通方法)的重写 parent:: 调用父类成员
    parent::
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议