温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

面向对象的封装

发布时间:2020-07-11 11:21:38 来源:网络 阅读:552 作者:方花 栏目:web开发

面向对象的封装

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继承AC继承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

判断前面的这个对象是否是后面这个类的实例

祖辈关系都行



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI