封装,是为了把属于同一类事物的共性(包括属性与方法)归到一个类中方便使用。

1、 概念:封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他部分只有通过包裹在数据外面的被授权的操作来与这个抽象数据类型交流与交互。也就是说,用户无需知道对象内部方法的实现细节,但可以根据对象提供的外部接口(对象名和参数)访问该对象。

2、 好处:(1)实现了专业的分工。将能实现某一特定功能的代码封装成一个独立的实体后,各程序员可以在需要的时候调用,从而实现了专业的分工。(2)隐藏信息,实现细节。通过控制访问权限可以将可以将不想让客户端程序员看到的信息隐藏起来,如某客户的银行的密码需要保密,只能对该客户开发权限。

而我们在设置变量的属性时,我们通常会对数据进行封装,这样就可以增加了数据访问限制,增加了程序可维护性。而实现方法就是:用private去修饰一个变量,然后再用setter方法去设置该变量的值,然后在用getter方法去调用该变量的值。

对象的封装性,

private的只有对象自己才可以访问,其他任何对象不行,包括它的子类和父类。安全性高,其他对象只能通过它的public方法,set,get来获取或设置原对象的private属性。而public其他对象可以访问,安全性就不高了。

set和get 方法提供了类与外部的接口。在大型软件中这是很有必要的,它有利于代码的维护。

setter和geter的用法相关推荐

  1. QBC CriteriaQuery用法

    Criteria查询(Criteria Query),这种查询方式把查询条件封装为一个Criteria对象.在实际应用中,使用Session的createCriteria()方法构建一个org.hib ...

  2. 【干货分享】一篇文章帮你搞定前端高频面试题

    前言 如今前端技术日新月异.对于前端开发人员来说,不仅需要掌握最新的前沿技术,还需要保持对基础知识的熟练掌握.而面试则是进入优秀企业的必经之路.在面试中,高频面试题的掌握是获得成功的关键.本文将为大家 ...

  3. Struts2框架的基本使用

    前面已经介绍过了MVC思想,Struts2是一个优秀的MVC框架,大大降低了各个层之间的耦合度,具有很好的扩展性.从本篇开始我们学习Struts2的基本用法,本篇主要包括以下内容: Struts2的下 ...

  4. 详细介绍Vue的数据响应式

    Vue.js的核心包括一套"响应式系统"."响应式",是指当数据改变后,Vue会通知到使用该数据的代码.例如,视图渲染中使用了数据,数据改变后,视图也会自动更新 ...

  5. 盘点 IDEA2020.3 那些炫酷的插件,超级好用的那种

    作者 | sunnylovecmc 来源 | https://blog.csdn.net/sunny243788557/article/details/106011723 这里补充一下常用的插件, 非 ...

  6. 【开发工具】盘点IDEA那些超级实用插件

    今天给大家分享IDEA那些超级实用插件,欢迎收藏! 1.日晒主题 Solarized Themes 推荐指数:☆☆☆☆☆ 推荐理由:日晒主题本身是为vim定制的.后来移植到ide 非常酷!配色非常耐看 ...

  7. OC----内存管理

    任何继承了NSObject的对象,都需要内存管理, 但是对基本数据类型无效(不需要释放) 原理: 每个对象内部都保存了一个与之相关联的整数,称为引用计数器 当使用alloc.new或者copy创建一个 ...

  8. Intellij IDEA常用的牛逼插件的总结

     阅读本文约需要6分钟  大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了下Java中过滤器和拦截器的区别的相关知识,今天跟大 ...

  9. Findbugs修改总结

    一.常修改项 1.IS2_INCONSISTENT_SYNC    多线程错误 - 不一致的同步 get,set方法上加synchronized 2.EI_EXPOSE_REP2    恶意代码漏洞 ...

最新文章

  1. 1803无法升级到2004_Win10再度误伤“友军”:升级五月更新后OneDrive同步报错
  2. DEDECMS模块插件制作举例-模块生成向导
  3. Ruby:字符集和编码学习总结
  4. 常用JavaScript函数 31 - 46(自我总结)
  5. .net 中debug 微软内部代码
  6. JS_typeof()函数返回类型总结
  7. 18.Hermite插值
  8. xpath提取招标网站的项目编号
  9. 每天一个linux命令——cat
  10. Python+KinectV2——PyKinect
  11. iOS上传IPA时提示导入此构建版本时出错-errors occurred in the app thinning process
  12. 之前总结的今天给大分享一下iOS
  13. 奋斗的青春,无悔的时光
  14. 几个可以提高工作效率的Python内置小工具
  15. 图像灰度直方图匹配(直方图规定化,Histogram Matching)实验
  16. 我们可以从挑战者灾难中学到什么关于网络安全的知识?一切。
  17. 深度解析什么是色散补偿器?它有什么作用?
  18. 造价师考试可以用计算机,造价工程师考试带计算器
  19. 1-IMU参数解析以及选择
  20. 【Reference reading】用19F标记的BPA-果糖复合物在C6老鼠胶质瘤模型的19F MRI和19F MRS来优化硼中子捕获治疗(BNCT)

热门文章

  1. DevExpress ChartControl ToolTipPointPattern和ToolTipSeriesPattern
  2. 中年男女霸占厕所激情 小伙内急敲门被打破头
  3. Keil C51补丁
  4. 【并查集,Bfs】汽车拉力比赛
  5. 2022-2028年全球精密减速机齿轮行业收入年复合增长率CAGR为 6.1%
  6. 3d渲染时显示计算机渲染过程,【技巧分享】如何解决3d渲染时出现错误
  7. 预见2022 | 客户体验的3大最新趋势
  8. java中有关hashset_java中HashSet详解
  9. MATLAB 设置legend加标题
  10. Qt/C++开发经验小技巧131-140