JAVA 面向对象 隐藏和封装

本文介绍了Java中面向对象的封装概念,强调封装作为面向对象三大特性之一的重要性。文章详细阐述了封装的含义,指出封装能隐藏类的内部细节,通过方法控制对成员变量的安全访问。此外,还讲解了Java的访问控制符private、default、protected和public的使用,以实现对成员变量的访问控制。最后,通过Person类的例子说明如何通过合理设置访问控制符实现封装,并提倡在实际编程中遵循良好的封装原则。
摘要由CSDN通过智能技术生成

本页面更新日期: 2016年07月22日

前言

在前面程序中,经常出现通过某个对象直接访问其成员变量的情况.
这可能引起一些潜在问题,比如将某个 Person 的 age 成员变量直接设为 1000.
这在语法上没有任何问题, 但显然违背了当前的自然规律. 人怎么可能活到 1000岁 - - . (就现在的科学来讲)
Java也考虑到了这种情况, 为你提供了 类和对象的成员变量进行封装的方法,来保护成员变量不被恶意修改.

理解封装

封装(Encapsulation)是面向对象的三大特征之一.(另外两个是继承和多态, 以后会讲到)
它指的是将对象的状态信息隐藏在对应内部.
不允许外部程序直接访问对象内部信息.
而是通过该类所提供的方法来实现对内部信息的操作和访问.

封装是面向对象编程语言对客观世界的模拟
在客观世界里, 对象的状态信息都是被隐藏在对象内部.
外界无法直接操作和修改.
就如刚刚说的 Person 对象的 age 变量, 只能随着岁月的流逝, age 才会增加.
通常不能随意修改 Person 对象的 age.
对一个类或对象实现良好的封装, 可以实现以下目的.

  • 隐藏类的实现细节.
  • 让使用者只能通过事先预定的方法来访问数据, 从而可以在该方法里加入控制逻辑,限制对成员变量的不合理访问.
  • 可进行数据检查, 从而有利于保证对象信息的完整性.
  • 便于修改,提高代码的可维护性.

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

  • 将对象的成员变量和实现细节隐藏起来, 不允许外部直接访问.
  • 把方法暴露出来, 让方法来控制对这些成员变量进行安全的访问和操作.

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

使用访问控制符

Java 提供了 3 个访问控制符.

  • private
  • protected
  • public

它们分别代表了 3 个 访问控制级别.
另外还有一个不加任何访问控制符的访问控制级别.
所以一共 4 个访问控制级别.
Java 的访问控制级别由小到大如下图所示:

这里写图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值