第67+68讲 php面向对象编程 this 以及构造方法

来源:互联网 发布:网络交友的利与弊50字 编辑:程序博客网 时间:2024/06/04 00:43

this

系统会给每个对象分配this,代表当前对象,与java中this表示一致。(同时涉及构造方法)
- 1、this2this,表示的就是谁的对象地址;
- 3、$this不能在类外部使用。

<?php    class BaseClass{        public function __construct(){            echo "---> BaseClass"."<br/>";        }    }    class Person extends BaseClass{        public $name;        public $age;        public function __construct($iname,$iage){            parent::__construct();//如果当前类继承字父类,父类的构造方法如果想执行必须被显示调用            $this->name = $iname;            $this->age=$iage;            echo "我是构造方法";        }        //php5里边 类名构造方法和 __construct 构造方法可以同时存在但是默认只生效一个        public function Person(){        }        //已经定义了构造方法不能多个定义只能保留一个        //public function __construct(){}//这个需要注释掉了        public function showInfo(){            echo "<br/>";            echo "方法:".$this->name."<br/>".$this->age;        }    }    $p1 = new Person("武松","30岁");    $p1->showInfo();?>

image

假设 代码中没有写构造方法,那么系统默认会有一个,如果自身再次定义了之后那么默认的构造方法就没有了。

类的构造方法:

  1. 构造方法和类名相同(php4),在php5中可以是类名,也可以是__construct()
  2. 构造方法没有返回值
  3. 构造方法主要完成对对象的初始化,并不是创建对象本身
  4. 在创建对象后,系统自动调用构造方法
  5. 一个类有且只有一个构造方法,在php5后虽然类名构造方法和__construct()可以同时存在,但是实际上也是仅仅能使用其中一个。
  6. 如果没有给类自定义构造方法,当前类则使用默认构造方法。
  7. 如果给当前类定义了构造方法,则该类的默认构造方法被覆盖。
  8. 构造方法的默认修饰符是public。
原创粉丝点击