面向对象的封装
面向对象的封装
private 私有的 私有的属性不能直接在外面访问
在金秀等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都做网站、网站制作 网站设计制作按需规划网站,公司网站建设,企业网站建设,品牌网站建设,全网营销推广,成都外贸网站建设,金秀网站建设费用合理。
protected 受保护的 受保护的属性 不能直接在外面访问
__set($key,$value) $key--->没有权限赋值的属性名 $value 没有权限赋值的属性值
给一个没有权限访问的属性赋值的时候自动调用
__get($key) $key----->没有权限访问的属性名
访问一个没有权限的属性的时候自动调用
public | protected | private | |
自己 | Y | Y | Y |
家族 | Y | Y | N |
外部 | Y | N | N |
面向对象的封装
//public 自己 家族 外部 都可以访问
//protected 自己 家族 可以访问
//private 只有自己可以访问
三、魔术方法(自动调用)
__construct() 在使用new关键字得到对象的是自动调用
__destruct() 在对象销毁的时候 自动调用
__get() 在访问一个没有权限的属性的时候自动调用
__set()在没有权限赋值的时候自动调用
__isset() 在没有权限使用isset函数判断属性的时候自动调用
__unset() 在没有权限使用unset函数销毁属性的时候自动调用
面向对象的继承
一、目标:
清除重复代码
二、实现:
1. 将重复代码提取出来
2. 建立联系 extends关键字 词义是扩展 用于继承
三、什么是父类 和子类
被继承的类 成为父类(基类)
继承其他类的类 成为 子类 (派生类)
四、继承的特性(重点重点)
a) php只支持单继承 只能有一个爹
b) php可以被多个继承 一个爹可以有多个儿子
c) php支持多层继承 可以有祖孙关系
B继承A,C继承B,那么C里面就有ABC三个类里面的所有内容
d) 子类会拥有父类中的所有内容但是有部分内容无法访问(封装)
五、属性继承(重写 重构)
1. 子类里面的属性会覆盖父类中的同名属性
2. 访问属性的时候一定是最终结果(被子类覆盖的结果,除了私有的)
3. 权限只能扩大 不能缩小
父类 | 子类 |
public | public |
protected | public protected |
private | public protected private |
六、方法继承(重写 重构)
1. 子类里面的方法会覆盖父类中的同名方法
2. 访问方法的时候一定是最终的结果(被子类覆盖之后的结果 除了私有的)
3. 重写的时候 参数结构(参数个数 和参数是否有默认值)建议保持一致
4. 权限只能扩大 不能缩小
父类 | 子类 |
public | public |
protected | public protected |
private | public protected private |
5. 可以调用父类中的方法 需要使用范围操作符
:: A::say() parent::say()
parent 代表的是父类
要求: 重写构造方法的时候 务必在第一行调用父类中的构造方法
七、关键字
1. final (最终的)(掌握)
final 可以修饰类和方法
被修饰的类不能被继承
被修饰的方法不能重写
2. static
a) 可以修饰属性和方法 不能修饰类
b) 静态成员需要使用范围操作符来访问 A::$name 如果你访问的是静态属性一定要加上$A::say()
c) 静态的成员方法里面不能出现非静态内容 $this 和非静态成员
d) 静态方法里面只能使用静态属性
3. const
可以在类里面定义常量
值保留类里面的属性默认值特性
类里面定义的常量 需要使用范围操作符类访问
A::DB B::DB
4. define
不能在类里面定义常量
5. 运算符 instanceof
判断前面的这个对象是否是后面这个类的实例
祖辈关系都行
标题名称:面向对象的封装
文章路径:http://azwzsj.com/article/ghpshe.html