java-封装特性理解

 

写博客是一个打通任督二脉的好方法,正如懂java和让别人懂java是不同概念一样。这是学习java2周后的第一篇杂文,多是别人的观点的复制。希望通过这个方式能够让自己逐步提升,转行路漫漫,就先不扯淡。

封装

从字面语义可以理解成打包的意思。从面向过程编程的函数(功能块打包),到面向对象的类(方法和数据集),都可以理解成封装。而在java中,通过访问权限控制从而达到隐藏数据和方法细节的做法,重新赋予了封装新的含义。三种方式的封装,都实现了细节的隐藏,重新提供一种更为方便或安全的访问接口来实现调用。


封装方式:

  • 类--数据集和方法集的封装
  • 方法--语句功能块的封装
  • 变量--数据细节的封装

类封装

在java类中,类分为:无公共数据的方法集类、有公共数据的方法集类、以数据为主体的数据集类。
类封装为我们提供了一个更好的管理模式和更高等级的模块化,将编程更多的指向了程序设计。
无公共数据的方法集类如Math类,方法之间是独立的,它们所共享的数据都是不依赖于实例个体的,如PI和e。这种类的存在是基于某种逻辑分类将方法整合到一起,通过类名为外面提供统一的访问方式即类名.方法名。
有公共数据的方法集,java中大多数类都是。它是将具有相同属性和方法的个体抽象成一个模板,调用时通过实例化产生对象来进行方法和属性的调用。所谓的有公共数据是指,类中的方法所使用的数据是指向一个个体的。

方法封装

方法作为一个功能语句块儿,能够很好的实现程序编写模块化和代码的复用。
方法中的参数能够让调用者能够实现与特定功能的交互,而且方法的重载为调用者实现了多种方式的交互。

变量封装

什么是变量封装?

很多情况下,某个类中的变量数据并不希望能够被调用者使用或更改(比如一个女性类中的年龄),这时通过隐藏数据细节,改为为调用者提供有权限的访问接口来实现封装的目的。

实现封装的步骤:

  1. 为变量设置访问修饰符private(只允许本类调用变量)
  2. 添加getter和setter方法为外界提供访问接口
  3. 在getter和setter方法中设置访问条件。

getter和setter方法的优势?

刚开始的时候会想,getter和setter方法与通过引用来直接访问变量并没有什么区别,都可以实现变量的读写访问。那为什么还要采用这种方法呢?
  1. 如果类设计者不想外界访问某个变量,或者只想提供某个变量的读操作或者写操作时,通过不提供或只提供getter和setter方法中的一个便可实现变量的部分访问,而通过引用来直接访问是没有这种能力的。
  2. 类设计者并不想外界无条件的读写某个变量,这时我们可以通过在getter或setter方法中设置访问权限(例如判断传入参数的合法性)。同样,通过引用直接访问也达不到这个需求。
  3. 为调用者提供方法接口,而不是变量名,达到了调用的统一性。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值