/* * 1. 请实例演绎你对面向对象,类与对象关系的理解? * 2. 请实例演绎oop的封装性是怎么实现的? * 3. 请实例演绎构造函数的作用有哪些? */ class A{ //public protected private 修饰符 分别是公用的 受保护的 保密的 public $name; public $age; public $height; public $like; private $weight = '55'; public function __construct() { $this->weight='65'; } public function make_(){ echo '名字:'.$this->name.'<br>'; echo '年龄:'.$this->age.'<br>'; echo '身高:'.$this->height.'<br>'; echo '喜好:'.$this->like.'<br>'; echo '体重:'.$this->weight.'<br>'; } } //面向对象 就像生产一样 没有这个理念时 以往都是自上而下的堆叠代码一步步实现过程 //当出现面向对象时候 我们会整理代码成为类 形成一道处理这类事务的一个工序 //实例化这个工序形成特定的流水线 把处理事务需要的东西扔给对象 对象运转处理 //类是工厂工序 我们不能直接拿来用 只能通过实例化类形成对象 通过对象去处理调取类的相应方法与属性 $person = new A(); $person->name = 'ych'; $person->height = '165'; $person->age = '26'; $person->like = 'play'; $person->make_(); //oop封装实现 看类A 我定义的$weight外界并不知道有这个属性 也改变不了 但是就是再我实例化的时候 调用方法的时候出来了 //所以的它的封装性 类给我实现事务的入口 我能调用相应的属性或者方法 但是你无法得知整个工序如何实现 无需关心实现过程 也无法调用私密属性和方法 //避免程序之间相互太过依赖 解耦合 //构造函数 初始化类成员 比如类A 原先定义weight 为 55 真正实例化时候初始化了weight 构造函数会优先调用 类似电脑启动初始化的过程