java-封装特性理解
来源:互联网 发布:skype for mac 10.8.4 编辑:程序博客网 时间:2024/06/14 19:23
写博客是一个打通任督二脉的好方法,正如懂java和让别人懂java是不同概念一样。这是学习java2周后的第一篇杂文,多是别人的观点的复制。希望通过这个方式能够让自己逐步提升,转行路漫漫,就先不扯淡。
封装
从字面语义可以理解成打包的意思。从面向过程编程的函数(功能块打包),到面向对象的类(方法和数据集),都可以理解成封装。而在java中,通过访问权限控制从而达到隐藏数据和方法细节的做法,重新赋予了封装新的含义。三种方式的封装,都实现了细节的隐藏,重新提供一种更为方便或安全的访问接口来实现调用。
封装方式:
- 类--数据集和方法集的封装
- 方法--语句功能块的封装
- 变量--数据细节的封装
类封装
在java类中,类分为:无公共数据的方法集类、有公共数据的方法集类、以数据为主体的数据集类。
类封装为我们提供了一个更好的管理模式和更高等级的模块化,将编程更多的指向了程序设计。
无公共数据的方法集类如Math类,方法之间是独立的,它们所共享的数据都是不依赖于实例个体的,如PI和e。这种类的存在是基于某种逻辑分类将方法整合到一起,通过类名为外面提供统一的访问方式即类名.方法名。
有公共数据的方法集,java中大多数类都是。它是将具有相同属性和方法的个体抽象成一个模板,调用时通过实例化产生对象来进行方法和属性的调用。所谓的有公共数据是指,类中的方法所使用的数据是指向一个个体的。
方法封装
方法作为一个功能语句块儿,能够很好的实现程序编写模块化和代码的复用。
方法中的参数能够让调用者能够实现与特定功能的交互,而且方法的重载为调用者实现了多种方式的交互。
变量封装
什么是变量封装?
很多情况下,某个类中的变量数据并不希望能够被调用者使用或更改(比如一个女性类中的年龄),这时通过隐藏数据细节,改为为调用者提供有权限的访问接口来实现封装的目的。
实现封装的步骤:
- 为变量设置访问修饰符private(只允许本类调用变量)
- 添加getter和setter方法为外界提供访问接口
- 在getter和setter方法中设置访问条件。
getter和setter方法的优势?
刚开始的时候会想,getter和setter方法与通过引用来直接访问变量并没有什么区别,都可以实现变量的读写访问。那为什么还要采用这种方法呢?
- 如果类设计者不想外界访问某个变量,或者只想提供某个变量的读操作或者写操作时,通过不提供或只提供getter和setter方法中的一个便可实现变量的部分访问,而通过引用来直接访问是没有这种能力的。
- 类设计者并不想外界无条件的读写某个变量,这时我们可以通过在getter或setter方法中设置访问权限(例如判断传入参数的合法性)。同样,通过引用直接访问也达不到这个需求。
- 为调用者提供方法接口,而不是变量名,达到了调用的统一性。
0 0
- java-封装特性理解
- java四大特性理解(封装继承多态抽象)
- 理解java的三大特性之封装
- 理解 Java 的三大特性之封装
- 理解java的三大特性之封装
- 理解java的三大特性之封装
- 理解java的三大特性之封装
- 理解Java的三大特性之封装
- java四大特性理解(封装继承多态抽象)
- 理解java的三大特性之封装
- JAVA的封装特性
- java 封装特性
- Java特性-封装
- java特性-封装
- Java特性封装
- JAVA特性:封装
- java提高篇(一)-----理解java的三大特性之封装
- 【java技术提高】(2)-- 理解java的三大特性之封装
- 堆排序
- 程序员学习能力提升三要素
- java 匿名内部类的理解
- CodeForces 761C Dasha and Password
- 蓝桥 调和级数
- java-封装特性理解
- Spark性能优化之通过YDB实现比原生Spark性能高100倍的多表关联
- jquery-事件-on源码
- 解决redis connection refused: connect遇到的坑
- Ceilometr: 1 、Ceilometer技术介绍
- linux内存管理子系统
- 第一篇博客
- 安卓客户端上传数据到MySQL须全部获值才能成功
- 如何培养培智学生体育课兴趣