封装|学习笔记

简介: 快速学习封装

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

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


封装

 

主要内容:

一、目标

二、概念

三、小结

 

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

 

一、目标

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

 

二、概念

1.封装

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

(1)数据

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

(2)数据的操作

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

(3)捆绑到一起

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

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

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

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

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

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

示例:

封装类并使用

image.png

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

 

三、小结

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

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

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

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

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

相关文章
|
SQL 运维 安全
闲鱼交易实时资损防控体系
聊一聊资损防控体系和闲鱼实践
6447 0
闲鱼交易实时资损防控体系
|
Java 关系型数据库 MySQL
mac,linux环境的基础工具安装【jdk,tomcat】
mac,linux环境的基础工具安装【jdk,tomcat】
248 1
|
Java 数据挖掘 数据库
封装的理解
封装的理解
205 0
|
存储 安全 芯片
封装之打线简介
介绍封装打线的原理,常用材料的优缺点,关键部件,wire bonding 过程,主要参数,线形,线长和主要测试方法。
13185 3
封装之打线简介
|
监控 网络协议 Docker
|
存储 监控 开发工具
如何查看崩溃日志
如何查看崩溃日志
194 1
|
前端开发 JavaScript 中间件
不四:产品工程师的修炼之路
我是不四,毕业后一直在阿里和蚂蚁工作,不四是我在阿里的花名,社区中一般以另一个花名 “死马” 出现。每一个人的成长轨迹都不一样,一路上遇到的机遇也各不相同,这次分享也仅站在一个普通工程师的角度来分享我的成长经历和贯穿其中的一些个人习惯。
不四:产品工程师的修炼之路
|
机器学习/深度学习 人工智能 JavaScript
来用 Node.js 做首诗吧!
月明三象服,凄凉對夕暉。妙静尋世夜,里感仗履遊。
|
机器学习/深度学习 人工智能 前端开发
使用 Node.js 将图片中的苹果变成橘子
图片风格转换在一些相机 App 或者照片编辑 App 中有比较多的应用,可以对图片进行各种转换。Pipcook 已经支持图片风格迁移模型,可以实现很多有趣的图片风格转换。
使用 Node.js 将图片中的苹果变成橘子
|
存储 程序员 开发者
计算机的组成 | 手把手教你入门Python之五
要实现计算机编程,首先需要明确计算机的组成。计算机主要分为硬件和软件两部分,而我们写代码,主要就是实现软件层面的功能。
计算机的组成 | 手把手教你入门Python之五