封装|学习笔记

简介: 快速学习封装

开发者学堂课程【PHP 进阶教程-由浅入深掌握面向对象开发-第二阶段封装】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/712/detail/12687


封装

 

主要内容:

一、目标

二、概念

三、小结

 

接下来学习面向对象三大特性之一的封装,之前其实也讲解了封装一个类的步骤,那么封装在其他层次的含义及更深刻的意义将在本节进行学习了解。

 

一、目标

理解封装的概念,掌握这种封装的核心理论,并且能够利用封装性来支持面向对象编程。

 

二、概念

1.封装

字面意思就是将内容装到某个容器中,并进行密封保存。在面向对象思想中,封装指将数据和对数据的操作捆绑到一起,形成对外界的隐蔽,同时对外提供可以操作的接口。

(1)数据

即要操作的数据,在面向对象的具体体现就是类成员属性(属性和静态属性)和类常量,这些都是在类的内部定义的用来保存数据的。

(2)数据的操作

即数据加工过程,在面向对象的具体体现就是方法,内部定义业务逻辑对数据进行加工处理。

(3)捆绑到一起

即使用类结构{ }将属性、类常量和方法存放到一起,成为一个整体

在使用一个类的时候,并不在乎内部如何定义,这种是对外界的隐蔽,一旦全部被隐蔽,这个类将失去作用,故必须要提供可操作的接口。

(4)对外提供可操作的接口

即提供可以供外部访问的类成员(通常是方法)

通常的方法及属性都可以,并且通常是公共(public)的,将这种提供给外部,让外部可以调用方法,从而实现数据的获取及加工,叫做提供给对外的操作接口。

若将整体独立,将需要操作的数据属性以及数据的加工方法封装到一个类里面,形成对外界的隐蔽,外界并不知道内部是如何实现的,但是对外面提供一些公有的东西,让外部可以对内部进行操作,从而实现某些功能,这个过程就是一个封装的概念。

示例:

封装类并使用

image.png

比如说封装的一个特性,捆绑内容到一起,形成对外界的隐蔽,使用一个大括号,里面具有数据、属性、常量、及静态的属性等。数据的加工虽然非常的简陋,将它包起来形成一个整体,就是一个独立的类。类定义好了之后,不是立刻使用,而是之后需要使用的时候,再把文件加载进去,此时对于使用者而言,这个类是一个隐蔽的、内部代码未知的,但是可以通过公有的方法对外界提供可操作这种类的内部调用,而并不在乎里面是如何。这就是封装的一个特性,也就是说,形成类的一个过程就叫做封装,因为这是理论性的内容,做一个大概了解。了解好之后,对实际开发的支撑肯定是很有帮助的。

 

三、小结

1、封装是从对象实体抽象形成类的过程

比如说形成一个人类,一定是先发现人的一些特性,之后将这些特性吸收出来,变成能够描述人的文字,并放到一起,有名字、年龄、眼睛等,能够做饭、能够睡觉,还能够打豆豆。将这些封装放到一起,只要是某一生物能够满足这些条件,就认为这就是人。所以就是这样一个过程。
2、封装的目的是让使用者只知道类能做什么,而不知道怎么做的

提供一个类使用的时候,只告诉有一个方法能够取到钱,只管调用这个方法去取钱,至于里面的钱是如何存储,某种来源并不需要担心也不需要关心,这就是封装的目的。

3、封装特性也明确了类与对象的职责:类负责处理业务逻辑,对象只要调用业务逻辑实现具体操作。

封装所做的一件事情,明确职责,清楚状况,这就是封装。

相关文章
|
Java 关系型数据库 MySQL
mac,linux环境的基础工具安装【jdk,tomcat】
mac,linux环境的基础工具安装【jdk,tomcat】
279 1
|
SQL 运维 安全
闲鱼交易实时资损防控体系
聊一聊资损防控体系和闲鱼实践
6617 0
闲鱼交易实时资损防控体系
|
监控 网络协议 Docker
|
存储 监控 开发工具
如何查看崩溃日志
如何查看崩溃日志
235 1
|
网络协议
TCP的长连接和短连接
TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。
17893 1
|
机器学习/深度学习 算法 Python
贝叶斯优化(Bayesian Optimization)深入理解
目前在研究Automated Machine Learning,其中有一个子领域是实现网络超参数自动化搜索,而常见的搜索方法有Grid Search、Random Search以及贝叶斯优化搜索。前两者很好理解,这里不会详细介绍。
5058 0
|
机器学习/深度学习 算法 大数据