当前位置: 首页 > news >正文

【Java基础面试十四】、 封装的目的是什么,为什么要有封装?

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。

面试官: 封装的目的是什么,为什么要有封装?

参考答案:

封装是面向对象编程语言对客观世界的模拟,在客观世界里,对象的状态信息都被隐藏在对象内部,外界无法直接操作和修改。对一个类或对象实现良好的封装,可以实现以下目的:

  • 隐藏类的实现细节;

  • 让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对成员变量的不合理访问;

  • 可进行数据检查,从而有利于保证对象信息的完整性;

  • 便于修改,提高代码的可维护性。

扩展阅读

为了实现良好的封装,需要从两个方面考虑:

  • 将对象的成员变量和实现细节隐藏起来,不允许外部直接访问;

  • 把方法暴露出来,让方法来控制对这些成员变量进行安全的访问和操作。

封装实际上有两个方面的含义:把该隐藏的隐藏起来,把该暴露的暴露出来。这两个方面都需要通过使用Java提供的访问控制符来实现。

http://www.lryc.cn/news/196239.html

相关文章:

  • 阿里云2023年双十一优惠活动整理
  • HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
  • lenovo联想笔记本ThinkPad系列T15p或P15v Gen3(21DA,21DB,21D8,21D9)原厂Win11系统镜像
  • 【SpringBoot】拦截器(Interceptor)的使用
  • CS鱼饵制作
  • 问题记录1 json解析问题
  • std::move以及右值引用等
  • 分享一个比对图片是否一致的小工具(来源: github)
  • 编写AA程序需要做以下几个步骤:
  • jmeter接口测试使用rsa加密解密算法
  • IDEA通过Docker插件部署SpringBoot项目
  • 微查系统,一站式查询,让您的查询更加便捷
  • C++stack和queue模拟实现以及deque的介绍
  • WPF ListView 鼠标点击,移动改变背景色不启作用
  • Maven Dependency 机制
  • CustomShapes/自定义形状, CustomCurves/自定义曲线, AnimateableData/数据变化动画 的使用
  • 软件测试用例设计方法-因果图法
  • 水库大坝安全监测是什么和主要作用?
  • 极品三国新手攻略之进阶篇
  • windows应用程序告警:帐户名与安全标识间无任何映射完成
  • 自定义jenkins镜像提示FontConfiguration.head错误
  • 《软件方法》2023版第1章(10)应用UML的建模工作流-大图
  • The given SOAPAction http__xxxxx_xx does not match an operation
  • 【java零基础入门到就业】第二天:jdk的下载安装和第一个HelloWorld程序
  • C++数据结构X篇_15_求二叉树叶子数与高度(递归方法)
  • MySQL锁学习笔记
  • 如何将前后端分离项目部署到本地的Docker Desktop容器运行并且访问
  • 前端开发中的try...catch
  • 数据加密中,采用密钥管理系统相比加密机的好处
  • Elasticsearch:什么是大语言模型 (LLMs)?