封装|学习笔记

简介: 快速学习封装

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

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


封装

 

主要内容:

一、目标

二、概念

三、小结

 

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

 

一、目标

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

 

二、概念

1.封装

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

(1)数据

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

(2)数据的操作

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

(3)捆绑到一起

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

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

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

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

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

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

示例:

封装类并使用

image.png

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

 

三、小结

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

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

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

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

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

相关文章
|
11月前
|
存储 Cloud Native 安全
C++ 封装成库
C++ 封装成库
|
Java 数据挖掘 数据库
封装的理解
封装的理解
93 0
|
1月前
|
数据安全/隐私保护 C语言 C++
C++(七)封装
本文档详细介绍了C++封装的概念及其应用。封装通过权限控制对外提供接口并隐藏内部数据,增强代码的安全性和可维护性。文档首先解释了`class`中的权限修饰符(`public`、`private`、`protected`)的作用,并通过示例展示了如何使用封装实现栈结构。接着介绍了构造器和析构器的使用方法,包括初始化列表的引入以及它们在内存管理和对象生命周期中的重要性。最后,通过分文件编程的方式展示了如何将类定义和实现分离,提高代码的模块化和复用性。
|
4月前
什么是封装?为什么是要封装?
什么是封装?为什么是要封装?
68 0
|
5月前
|
安全 C#
C#封装详解
C#封装详解
45 0
|
测试技术 C++
c++学习之mystring的简单封装
c++学习之mystring的简单封装
114 0
|
存储 安全 芯片
封装之打线简介
介绍封装打线的原理,常用材料的优缺点,关键部件,wire bonding 过程,主要参数,线形,线长和主要测试方法。
11125 3
封装之打线简介
封装
封装性是java面向对象的特征之一
|
安全 小程序 Scala
封装|学习笔记
快速学习封装。
下一篇
无影云桌面