最近学习了Java三大特性中的封装,所以在这里总结一下自己堆封装的理解和简介,给大家做出参考。

什么是封装(Encapsulation):

封装(Encapsulation)是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。

封装的概念:

封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。封装是一种信息隐藏技术。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

封装的作用:

① 对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题,提高了程序的可复用性和可维护性,降低了程序员保持数据与操作内容的负担。

②对象的数据封装特性还可以把对象的私有数据和公共数据分离开,保护了私有数据,减少了可能的模块间干扰,达到降低程序复杂性、提高可控性的目的。

一个对象中实列中将复杂的内部细节全部进行封装,只给我们留下简单的接口,通过接口进行调用和操作。

举例:电源插座/电源开关;

电源插座/开关 就像是已经被封装好的类,插座开关中复杂的线路就好比对象中复杂的变量或属性。

如何进行封装:

在java中通过4种“访问控制符”分别为private、default、protected、public,实现封装。它们说明了面向对象的封装性,所以我们要利用它们尽可能的让访问权限降到最低,从而提高安全性。

1. private 表示私有,只有自己类能访问

2. default表示没有修饰符修饰,只有同一个包的类能访问

3. protected表示可以被同一个包的类以及其他包中的子类访问

4. public表示可以被该项目的所有包中的所有类访问

封装的优点:

1. 提高代码的安全性。

2. 提高代码的复用性。

3. “高内聚”:封装细节,便于修改内部代码,提高可维护性。

4. “低耦合”:简化外部调用,便于调用者使用,便于扩展和协作

java中封装的好处_编程中封装的作用/优点相关推荐

  1. mysql中无穷大如何表示_编程中无穷大常量的设置技巧

    如果问题中各数据的范围明确,那么无穷大的设定不是问题,在不明确的情况下,很多程序员都取0x7fffffff作为无穷大,因为这是32-bit int的最大值.如果这个无穷大只用于一般的比较(比如求最小值 ...

  2. Java基础【之】面向对象编程(封装、继承(extends、方法重写、super)、多态(动态绑定、重载/重写)、代码实现)

    Java基础[之]面向对象编程(封装.继承.多态.代码实现) 1.封装 2.继承 2.1.extends 2.2.方法重写 2.3.super 3.多态 3.1.对象的多态.方法的多态 3.2.动态绑 ...

  3. 吴枫 python小课怎么样_编程中,有哪些好的习惯从一开始就值得坚持?

    电影<喜剧之王>里,周星驰饰演的尹天仇,是一个渴望成为真正的演员,却不断沦为落魄跑龙套的小人物. 即便如此,他对演戏的态度始终认真而可敬.他每天不但锲而不舍寻找演戏机会,还在街坊福利社开了 ...

  4. java xfire指定参数名_Java编程中使用XFire框架调用WebService程序接口

    JAVA调用webservice,当你刚开始接触的时候你会觉得它是一个恶梦,特别是没有一个统一的标准实现,比起.net的那些几步就可以完成的webservice实现,我们看着JAVA的实现真是伤心啊. ...

  5. 编程基础 垃圾回收_编程中的垃圾回收指南

    编程基础 垃圾回收 什么是垃圾回收? (What is Garbage Collection?) In general layman's terms, Garbage collection (GC) ...

  6. JAVA中0xFF代表什么_详解 0xff 的作用

    每次遇到与或位移等运算总会懵圈一次,百度明白了之后就忘了,理解不够深刻,不够明确,工作中也很少写,所以记下 为什么要加上"& 0xFF"? 拆分理解下 0xFF是16进制的 ...

  7. java类的不变约束_设计中的变与不变

    古希腊哲学家巴门尼德认为:"人的思想和言语都有一个载体,如果你在这一时间和另外一个时间想到或者谈到同样一件东西,那就说明这件东西在这段时间内没有变化,如有变化的话,你说的就不是同一件东西.& ...

  8. spring定时器突然不执行了_编程中常常遇到了定时器不工作的问题分析

    我们日常编程中在使用定时器后,发现定时器并没有按照自己的意图去计时,出现了不计时的错误,进而怀疑是否是硬件故障,CPU是否正常等等,浪费了很多的时间去排查,实际上就是由于我们对定时器的特性不了解所造成 ...

  9. 最简单的python语言程序设计_编程中最简单的语言Python,这样学或许更容易

    最近微信小程序上面出了一个跳一跳的小游戏 大家有没有玩呀? 编程中最简单的语言Python,这样学或许更容易 分享之前我还是要推荐下我自己建的Python开发学习群:628979297,群里都是学Py ...

最新文章

  1. 笨办法学python47 原理_41:学会说面向对象
  2. 安卓import android.support.v7.app.AppCompatActivity报错
  3. Ubuntu 虚拟机空间不足增加空间笔记
  4. java默认数组值_数组元素默认的初始值都是什么
  5. JAVA反射系列之Field,java.lang.reflect.Field使用获取方法。
  6. 图例 | Java混合模式分析之火焰图实例
  7. Net平台下的B/S开发框架
  8. 编程珠玑---第二章 啊哈!算法
  9. python列表数据运算_Python基础(2)——数据类型:Numbers、列表、元组、字典、字符串、数据运算...
  10. ADO 动态链接数据库
  11. Web前端的状态管理
  12. 华三服务器监控系统,博世DS7400周界防盗报警系统联动H3C监控系统说明概要
  13. adminLTE的介绍
  14. 2022最新独立版智狐聚合支付V1.0.5.21+聚合支付系统源码
  15. 月薪30K+的电子工程师应具备什么?
  16. 怎么提取pdf文件中的图片
  17. 谷歌驱动的下载和配置
  18. C#调用支付宝转账接口 已调通
  19. 【C语言程序】已知一个长方体的高,通过输入长方体的长和宽,计算出长方体的体积
  20. react -错误 Uncaught TypeError: react_dom_client__WEBPACK_IMPORTED_MODULE_1__.render is not a function

热门文章

  1. 一个REST风格的URI设计方案[Blog Web Services]
  2. C语言课后习题(34)
  3. java 建立一个graphics对象_java – 我应该显式处理Graphics对象吗?
  4. sts版本不同有影响吗_不同型号的手机充电器可以混用吗?会影响电池吗?
  5. C语言实现简单计算器(可以处理小括号)
  6. 深入理解 MySQL—锁、事务与并发控制
  7. 【警惕】大量未修复WebLogic WSAT组件RCE漏洞的主机被挖矿程序攻击
  8. 详解用OpenCV绘制各类几何图形
  9. 三次给你讲清楚Redis之Redis是个啥
  10. 所见即搜,3分钟教你搭建一个服装搜索系统!