PHP中类的封装性是怎么体现出来的?
从语言的功能实现角度来讲public、private、protected用来标记属性或者方法在相关类和他们的对象中的访问权限。
在其他方面,它的封装性是怎么体现的呢?
封装性是在构建项目的什么阶段、什么地方、以怎样的方式用来干什么?
应该对封装性建立什么样的认识?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
首先,我们来明确
类是什么
:我们将代码抽象成类。是为了让它能简单,更直观。需要使用这段代码的时候,能一眼就知道该怎么用。该怎么继承来扩展这段代码的功能。
然后,我们
怎么去做到上面的需求
:建立一个类
将代码放到类方法中
声明方法的访问权限,让调用者知道自己能调用哪些方法; 让扩展类知道哪些方法和成员可以被重写。讲他们用不到的方法设为private以隐藏与他们无关的细节。
最终
:我们就成功的将代码的复杂度降低了。
这就是面向对象的用处。
补充:
其实,对于php来说,你如果设置为private,我想调用你这个,我可以去改你的代码的,把你的private改成public我就可以用了。当然,我们忽略这部分,我们设置一个private方法,这个方法比如说是查询学生性别的方法,然后另外一个public的查询学生信息的方法调用这个查询学生性别的方法。但是,我不希望在其他地方可以直接查询学生的性别,我就需要private。
@娃娃脾气 谢谢你。
你的回答让我重新认识了私有的含义--使用一个类的时候可以
直接略过私有方法
。之前只知道有私有方法只能被类自身调用这么一回事,现在来看就是为了告诉使用这个类的人,这些打了私有标记的方法你不能用。同样的一个东西也可以理解成,我们在调用类的时候
只需要关心共有方法和受保护方法
就行了。从我的经验来看,私有的方法一般都是在给公有方法解耦的时候产生的。到这里,回看之前的自己,发现自己钻进了一个牛角尖了,不能调用私有和只能调用公有和受保护这里面只有细微的差别。
那么问题又来了,受保护方法使用的场景是什么呢?
我目前比较习惯的就是写一个类然后将一个功能按照步骤拆分,而且要把方法写的通用一点,这样代码的复用率也会高不少