开发者学堂课程【PHP 进阶教程-由浅入深掌握面向对象开发-第二阶段:封装】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/712/detail/12687
封装
主要内容:
一、目标
二、概念
三、小结
接下来学习面向对象三大特性之一的封装,之前其实也讲解了封装一个类的步骤,那么封装在其他层次的含义及更深刻的意义将在本节进行学习了解。
一、目标
理解封装的概念,掌握这种封装的核心理论,并且能够利用封装性来支持面向对象编程。
二、概念
1.封装
字面意思就是将内容装到某个容器中,并进行密封保存。在面向对象思想中,封装指将数据和对数据的操作捆绑到一起,形成对外界的隐蔽,同时对外提供可以操作的接口。
(1)数据
即要操作的数据,在面向对象的具体体现就是类成员属性(属性和静态属性)和类常量,这些都是在类的内部定义的用来保存数据的。
(2)数据的操作
即数据加工过程,在面向对象的具体体现就是方法,内部定义业务逻辑对数据进行加工处理。
(3)捆绑到一起
即使用类结构{ }将属性、类常量和方法存放到一起,成为一个整体
在使用一个类的时候,并不在乎内部如何定义,这种是对外界的隐蔽,一旦全部被隐蔽,这个类将失去作用,故必须要提供可操作的接口。
(4)对外提供可操作的接口
即提供可以供外部访问的类成员(通常是方法)
通常的方法及属性都可以,并且通常是公共(public)的,将这种提供给外部,让外部可以调用方法,从而实现数据的获取及加工,叫做提供给对外的操作接口。
若将整体独立,将需要操作的数据属性以及数据的加工方法封装到一个类里面,形成对外界的隐蔽,外界并不知道内部是如何实现的,但是对外面提供一些公有的东西,让外部可以对内部进行操作,从而实现某些功能,这个过程就是一个封装的概念。
示例:
封装类并使用
比如说封装的一个特性,捆绑内容到一起,形成对外界的隐蔽,使用一个大括号,里面具有数据、属性、常量、及静态的属性等。数据的加工虽然非常的简陋,将它包起来形成一个整体,就是一个独立的类。类定义好了之后,不是立刻使用,而是之后需要使用的时候,再把文件加载进去,此时对于使用者而言,这个类是一个隐蔽的、内部代码未知的,但是可以通过公有的方法对外界提供可操作这种类的内部调用,而并不在乎里面是如何。这就是封装的一个特性,也就是说,形成类的一个过程就叫做封装,因为这是理论性的内容,做一个大概了解。了解好之后,对实际开发的支撑肯定是很有帮助的。
三、小结
1、封装是从对象实体抽象形成类的过程
比如说形成一个人类,一定是先发现人的一些特性,之后将这些特性吸收出来,变成能够描述人的文字,并放到一起,有名字、年龄、眼睛等,能够做饭、能够睡觉,还能够打豆豆。将这些封装放到一起,只要是某一生物能够满足这些条件,就认为这就是人。所以就是这样一个过程。
2、封装的目的是让使用者只知道类能做什么,而不知道怎么做的
提供一个类使用的时候,只告诉有一个方法能够取到钱,只管调用这个方法去取钱,至于里面的钱是如何存储,某种来源并不需要担心也不需要关心,这就是封装的目的。
3、封装特性也明确了类与对象的职责:类负责处理业务逻辑,对象只要调用业务逻辑实现具体操作。
封装所做的一件事情,明确职责,清楚状况,这就是封装。