JAVA 面向对象 (八)-- 封装
引言:java 核心思想为面向对象,含有三大特性:封装,继承,多态,今天我们具体来讲解封装。
一.包的使用:
1.包使用的原因:
Windows 树形文件系统,文档分门别类,易于查找和管理,使用目录解决文件同名冲突问题,在 java 中如何解决存放两个同名的类而不冲突?
2.包使用的意义:
解决类同名问题,防止命名冲突
允许类组成较小的单元(类似文件夹),易于找到和使用相应的文件
更好的保护类、属性和方法
3.包的创建:
作为 Java 源代码第一条语句
用 package 声明包,以分号结尾
代码如下:
4.包的命名规范:
包名由小写字母组成,不能以圆点开头或结尾
包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名
包名后续部分依不同机构内部的规范不同而不同
二、权限修饰符
学习封装之前我们先要学习 java 中对于权限的设定方式,java 中用于限定使用范围的关键字有如下四种:
私有权限 private: private 可以修饰数据成员,构造方法,方法成员,不能修饰类(此处指外部类,不考虑内部类)。被 private 修饰的成员,只能在定义它们的类中使用,在 其他类中不能调用。
默认权限 default: 类,数据成员,构造方法,方法成员,都能够使用默认权限,即不写任何关键字。默认权限即同包权限,同包权限的元素只能在定义它们的类中,以及同包 的类中被调用。
受保护权限 protected: protected 可以修饰数据成员,构造方法,方法成员,不能修饰类(此处指外部类,不考虑内部类)。被 protected 修饰的成员,能在定义它们的类中,同包 的类中被调用。如果有不同包的类想调用它们,那么这个类必须是定义它们的类的子类。
公共权限 public: public 可以修饰类,数据成员,构造方法,方法成员。被 public 修饰的成员,可以在任何一个类中被调用,不管同包或不同包,是权限最大的一个修饰符。
三、封装
在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
1.封装的定义:
将属性私有化,并提供公共的访问方式。
2.封装的优点:
良好的封装能够减少耦合。
类内部的结构可以自由修改。
可以对成员变量进行更精确的控制。
隐藏信息,实现细节。
3.封装的步骤:
我们还是以学生类为演示
首先修改学生的属性的可见性来限制对属性的方法(一般限制为 private),代码如下
以上代码将学生的属性 name 和 age 都限定为 private 私有,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏。
对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问,代码如下:
采用 this 关键字是为了解决实例变量(private String name)和局部变量(setName(String name)中的 name 变量)之间发生的同名的冲突。(this 在后期关键字章节详细讲解)。
评论