目录
我们常常听到,面向对象程序三大特性:封装、继承、多态,那么封装是什么呢,有什么用呢
1.什么是封装
定义:数据与操作数据的方法的结合,隐藏对象的属性和实现细节,仅对外公开接口和对象进行交互。
比如,在现实中的电脑,它外部有各种插口,而将内部的实现过程隐藏,只是利用插口将鼠标键盘等,让用户可以与计算机进行交互。
在java中的使用常见的为,在一个类中,部分成员变量和成员方法不可直接对外使用,通过间接的方法调用来获取成员变量的值或成员方法。
2.封装有什么用
作用:隐藏对象的属性和实现细节,起到一定的保护功能。
3.如何实现封装
java主要通过类和访问限定符来实现封装。
a.类
类可以将数据及封装数据的方法结合起来
b.访问限定符
访问限定符用来控制方法或成员变量是否可以在类外使用。
常见的访问限定符有四种,分别为private(私人的),default (默认),protected (受保护的),public (公开的)。
(1)public
谁都看得见,都可使用
(2)protected
可在类中、包中、不同包的子类使用
注意:不可在不同包的非子类的类中使用。父类中的private成员变量虽然不可以在子类中直接访问,但也继承到了子类中。
(3)default
指的是什么都不写时候,默认的权限
在同一个包内使用,在别的包中是隐私,不可以使用
(4)private
只有自己知道,其他人都不知道
只能在同一个类中只用
4.什么时候用哪一种访问限定符
我们希望类要尽量做到“封装”即隐藏内部实现细节,只暴露出必要的信息给类的调用者.
因此我们在使用的时候应该尽可能的使用比较严格的访问权限,例如如果一个方法能用private,就尽量不要用public.
另外,还有一种简单粗暴的做法:将所有的成员变量设为private,将所有的方法设为public。(不过这种方式属于是对访问权限的滥用,还是希望大家根据实际判断。
5.包
a.定义
包是为了更好的管理类,把多个类收集在一起。与文件夹相似
b.作用
1)包是对类、接口等的封装机制的体现,是一种对类或者接口等的很好的组织方式
2)在同一个工程中允许存在相同名称的类只要处在不同的包中即可。
c.导入包
1)使用import语句导入包
2)建议导入包时要导入类名
3)不同包但同类名的使用,要使用完整的含有包的类名,防止不知道是哪个包的类
d.常见的包
1) java.lang系统常用基础类(String、Object),此包从JDK1.1后自动导人。
2) java.lang.reflect:java 反射编程包。
3) java.net:进行网络编程开发包。
4) java.sql:进行数据库开发的支持包。
5) java.util:是java提供的工具程序包。
6) java.io:I/O编程开发包。