深入PHP面向对象、模式与实践---PHP和对象

1.PHP4中,我们可以在子类中覆盖并访问父类的方法,然而还是有不足:1.把对象赋值给变量,传递对象到函数,或从方法返回对象,结果都会创建对象的副本,即不是按引用来传递;

2.有一个被规划在PHP6中的特性,已经从PHP5.3中的到了支持:命名空间。通过命名空间创建类和函数的命名作用域,在扩展系统或者包含类库时,你就可以在不同的类库中使用名称相同的类,而不会产生冲突

3.对象可以被说成是类的‘实例’,它是由类定义的数据类型

4.在PHP4和PHP5(直到PHP5.1)中,直接输出一个对象,得到的是包含对象ID的字符串,PHP5.2开始不再支持这个功能,除非在对象中定义了__toString()方法

5.在面向对象开发中,“专注特定任务,忽略外界上下文”是一个重要的设计原则

6.为了解决“没有强制要求参数类型”这个问题,PHP5引入了类的类型提示。要增加一个方法参数的类型提示,之需要简单地将类名放在需要约束的方法参数之前,如

public function write(ShopProduct $shopProduct){
   //        
}

现在write()方法只接受包含ShopProduct类对象的参数

7.继承是从一个基类得到一个或多个派生类的机制。子类可以增加父类之外的新功能,因此子类也被称为父类的扩展

8.由于派生类没有定义构造方法,所以在实例化会自动调用父类的构造方法,且派生可以扩展和修改父类的功能

9.在子类中定义构造方法时,需要传递参数给父类的构造方法,否则可能得到一个构造不完整的对象。要调用父类的方法,首先要找到一个引用类本身的途径:句柄,PHP为此提供了parent关键字,如parent::__construct()

10.每个子类都会在设置自己的属性前调用父类的构造方法。基类现在仅直到自己的数据。子类一般是父类的特例。我们应该避免告诉父类任何关于子类的信息,这是一条经验规则。

11.当客户程序员需要使用类中保存的值时,通常比较好的做法是不要允许直接访问属性,而是提供方法来取得需要的值,这样的方法被称为“访问方法”,也可以称为getter和setter。其好处是可以使用访问方法根据环境过滤属性,

转载于:https://www.cnblogs.com/iamluzhe/p/3143122.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值