【翻译】Java面向对象编程基本概念——封装
来源:互联网 发布:网络接口转换器怎么用 编辑:程序博客网 时间:2024/05/17 07:53
【翻译】Java面向对象编程基本概念——封装
原文地址:Java Encapsulation and its Relation With Abstraction
大多数开发人员对封装与抽象之间的异同都存在一些疑惑。网络上也有很多相关的博文,但大多数都使我们更加迷茫。今天,就让我们来拨开迷雾见云天。
一、封装简述
将数据和方法打包至一个类型中,并隐藏相关的实现细节通常称之为封装。封装的结果是一个类型既拥有了属性也拥有了行为。本质看,封装包括信息隐藏和实现隐藏。
二、洞察概念
“无论什么变化,将它封装起来”,这已经被引用成为一项著名的设计原则。软件的变化是无处不在的,运行时数据可能发生变化、未来的发布版本中实现可能发生变化。因此,封装既应用于封装数据也应该封装实现。
访问控制或通过隐藏实现细节来为数据或类型设置边界有两个原因:1) 限定使用者什么可用,什么不可用;2) 将实现细节与接口隔离。
如果我们确定使用者只需要给公共的接口发送信息,其他的什么也不用做,那么我们就可以任意修改那些非公有的代码,而不影响使用者的代码。封装可以帮助我们实现上述目标。
三、与抽象的关系
抽象本质是想法,用来帮助我们制定原则。封装是机制,通过机制实现抽象的目的。
从面向对象的分析与设计(OOAD)的角度来看:
+ 抽象更多的是关于一个类可以做什么。【想法】
+ 封装更多的是如何实现一个功能。【实现】
0 0
- 【翻译】Java面向对象编程基本概念——封装
- 【翻译】Java面向对象编程基本概念——多态
- 【翻译】Java面向对象编程基本概念——抽象
- 【翻译】Java 面向对象编程基本概念
- java面向对象编程基本概念
- JavaScript面向对象编程——封装
- Java面向对象——封装
- Java面向对象——封装
- Java面向对象——封装性
- JAVA面向对象——封装
- Java面向对象——封装
- java 面向对象—概念--封装
- 【Java编程】面向对象--继承、封装
- Java面向对象编程之封装(encapsulation)
- 面向对象——基本概念
- 【慕课笔记】PHP面向对象编程——面向对象的基本概念(DAY 1)
- Javascript 面向对象编程(一)——封装
- javascript面向对象编程——构造函数的封装
- 【win32】day03-窗口注册和创建
- 算法竞赛入门经典(第二版)-刘汝佳-第四章 函数与递归 特别困的学生 (特困生)
- 用递归法搜索指定目录下的文件
- Android Http链接和Socket链接区别,面试专用
- CSS选择器【上】
- 【翻译】Java面向对象编程基本概念——封装
- 相位恢复算法(Phase Retrieval)
- C语言的按位与、或、非、异或
- nodejs调用c++dll感想
- Java基础之-代理
- C++ 流控制函数setw()、setfill()、setbase()、setprecision()的使用
- Light OJ 1027 - A Dangerous Maze(求期望)
- xcode编译错误'../lib/DropboxSDK.framework/DropboxSDK' does not contain bitcode.
- Android通用base适配器使用教程(一)