1、封装,即保留有限的外部接口(interface),隐藏具体实施细节。

2、封装在生活中很常见。比如下面是一个充电电筒:

一个用户即使不看说明书,也可以猜到这个电筒的操作: 开关和充电。这个电筒用一个塑料壳将用户不需要接触的内部细节隐藏起来,只保留了两个接口,开关和电插头。使用这两个接口,用户足以使用该产品在设计中想要实现的功能。如果所有的细节都同时暴露给用户,那么用户会对产品感到不知所措 (比如下面不加壳的遥控器)。因此,封装提高了产品的易用性。

如果产品不封装,电筒或者遥控器的许多细节会暴露在用户面前: 电池、电路、密封的橡胶等等。尽管这可以让用户更自由的对产品实施操作,比如直接给电池放电,取出一个LED灯等等。然而,用户往往要承担更大的损坏产品的风险。因此,封装提高了产品的安全性。

3、一个Java软件产品与一个日常产品相同。一个对象内部可以有许多成员(数据成员和方法)。有一些数据成员和方法只是内部使用。这时,我们会希望有一个给对象“加壳”的机制,从而封装对象。这样,用户可以比较容易学习和使用外部的接口,而不必接触内部成员。

4、Java通过三个关键字来控制对象的成员的外部可见性(visibility): public, private, protected实现封装性。

  • public: 该成员外部可见,即该成员为接口的一部分
  • private: 该成员外部不可见,只能用于内部使用,无法从外部访问。

转载于:https://www.cnblogs.com/cornucopia2015/p/4813542.html

理解Java的封装与接口相关推荐

  1. 理解Java对象序列化——Serializable接口

    概述:当一个类实现了Serializable接口(该接口仅为标记接口,不包含任何方法定义),表示该类可以序列化.序列化的目的是将一个实现了Serializable接口的对象转换成一个字节序列,可以. ...

  2. java中抽象接口_一篇文章让你彻底理解java中抽象类和接口

    相信大家都有这种感觉:抽象类与接口这两者有太多相似的地方,又有太多不同的地方.往往这二者可以让初学者摸不着头脑,无论是在实际编程的时候,还是在面试的时候,抽象类与接口都显得格外重要!希望看完这篇博客文 ...

  3. 一篇文章让你彻底理解java中抽象类和接口

    相信大家都有这种感觉:抽象类与接口这两者有太多相似的地方,又有太多不同的地方.往往这二者可以让初学者摸不着头脑,无论是在实际编程的时候,还是在面试的时候,抽象类与接口都显得格外重要!希望看完这篇博客文 ...

  4. java接口深入理解,深入理解Java接口

    从java接口是什么到为什么,理解java接口,主要解决三个问题 1.java接口是什么 2.java接口为什么 3.java接口怎么用 java接口是什么 接口是方法的抽象,通过接口规定类需要实现那 ...

  5. java 接口和虚构_深入理解Java的接口和抽象类

    深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...

  6. java 接口是抽象类吗_我是如何理解Java抽象类和接口的

    在面试中我们经常被问到:Java中抽象类和接口的区别是什么?然后,我们就大说一通抽象类可以有方法,接口不能有实际的方法啦;一个类只能继承一个抽象类,却可以继承多个接口啦,balabala一大堆,就好像 ...

  7. 理解java接口和抽象类

    参考文档: http://www.cnblogs.com/dolphin0520/p/3811437.html http://baike.baidu.com/link?url=Nlcx_RJXI6t7 ...

  8. java封装继承多态的理解_用最傻瓜式的方法理解Java中的封装、继承和多态

    说到java中面向对象的封装.继承和多态,很多人会说这么简单这么入门的东西一直讲干嘛,虽然是基础,但是我们要明白,所有东西都是要在基础上发展的,没有基础就去学其他的,那么你肯定是很容易失败的,那么应该 ...

  9. java画板抽象类_深入理解Java抽象类与接口

    基于抽象类与接口有太多相似之处且均体现着oop的抽象性,本文从以下几点谈谈对这两者的理解. 1.抽象类 2.接口 3.各自优缺点以及应用举例. 1.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象 ...

最新文章

  1. ArXiv 2020 | 抖音“变身漫画”滤镜背后的技术,难道来自这篇论文?
  2. vs增量链接、清单文件
  3. 一个“Internal”牵扯出的代码泄露,阿里云独家回应
  4. HoughLines 函数
  5. java工程师考试题目_成功拿到Offer,Java工程师笔试题及答案!
  6. Quartus prime16.0 与modelsim ae 联调
  7. python爬取天气预报源代码_python抓取天气并分析 实例源码
  8. 宁波python学习_python学习第二十天
  9. 游戏巨头齐聚 Unite Shanghai 2019,揭秘爆款游戏制作精彩亮点!
  10. 高效程序员的45个习惯の欲速则不达
  11. HDU 2222 Keywords Search(AC自动机)题解
  12. 6月8日 论文书写——公式
  13. 计算机组成原理 王道考研2021 第一章:计算机组成原理概述 -- 计算机硬件的基本组成、认识各个硬件部分
  14. 程序猿必备的数电知识,快来看看你掌握多少!(建议收藏)
  15. 校园邮箱免费激活idea教程
  16. 我的世界空岛服务器修改地形,我的世界空岛制作教程 特别地形制作
  17. idea translation翻译插件报-TKK错误
  18. VS2017操做sql server数据库
  19. redis setIfAbsent和 setnx 的区别与使用
  20. GCP/临床试验基础知识集锦

热门文章

  1. 事务,视图及索引!!!
  2. Git 什么时候用什么指令
  3. java collections读书笔记(4) stack
  4. 生活随笔:态度需要端正
  5. 1808: FJ的字符串
  6. 简单子串查找--strstr的使用(ZCMU1108)
  7. 阿里云函数计算 FC再次荣获最受观众喜爱奖
  8. 从 Android 到 Java:如何从不同视角解决问题?
  9. 【计算机视觉】究竟谁能解决可解释性 AI?
  10. 《阿里巴巴Java开发规约》插件使用详细指南