
面向对象的语言有三大特性:封装、继承和多态。本篇我们只介绍封装。
1.封装的概念
封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。
举例:我们的手机就是一个被封装起来的对象。作为使用者,我们无法看到手机内部各种功能的实现细节,仅能通过如充电口这样的接口来进行充电的操作。
2.访问限定符
Java中通过类和访问权限来实现封装:类可以将数据及封装数据的方法结合在一起。而访问权限用来控制方法或字段能否直接在类外使用。
以下是四种访问限定符的范围展示:

✨注:
- protected主要用在继承中,继承后续详细介绍。
- default权限又称默认权限。即若类前无访问限定符,则默认为default。
- 访问权限可以限定类中成员的可见性,也可以控制类的可见性。
- 一般情况下,成员变量设置为private,成员方法设置为public。
3.包
3.1包的概念
在面向对象的体系中,提出了软件包的概念:为了更好的管理类,把多个类收集在一起,称为软件包。
在Java中,包是对类、接口等的封装机制的体现,是一种对类或者接口等很好的组织方式。
在同一个工程中允许存在相同名称的类,只要处在不同的包中即可。
3.2 导入包中的类
Java中已经提供了很多现成的类提供使用。如:Date类。
方法一
使用java.util.Date,导入java.util包中的Date类。
public class Encapsulation {
public static void main(String[] args) {
java.util.Date date=new java.util.Date();
}
}
方法二
使用import语句导入包。
import java.util.Date;
public class Encapsulation {
public static void main(String[] args) {
Date date=new Date();
}
}
方法三
通过import static导入包中静态的方法和字段。
import static java.lang.Math.*;
public class Test {
public static void main(String[] args) {
double x=10;
double y=10;
//静态导入的方法可以写起来更加方便
//double result=Math.sqrt(Math.pow(x,2)+Math.pow(y,2));
double ret=sqrt(pow(x,2)+pow(y,2));
System.out.println(ret);
}
}
3.3自定义包
除Java本身提供的系统包外,我们也可以自己根据自己的代码自行建立自定义包。
规则:
- 在文件的最上方加上
package语句指定该代码在哪个包中 - 包名需尽量指定成唯一的名字,通常会使用公司的域名的颠倒形式(如:
com.happy.demo1) - 包名要与代码路径匹配
- 若类没有package语句,则该类被放进默认包中。
3.4常见的包
- java.lang:系统常用基础类(String、Object),此包从JDK1.1后自动导入。
- java.lang.reflect:java 反射编程包;
- java.net:进行网络编程开发包。
- java.sql:进行数据库开发的支持包。
- java.util:是java提供的工具程序包。(集合类等) 非常重要
- java.io:I/O编程开发包。
总结
本篇文章介绍了封装的概念以及新的名词:包,希望通过这篇文章读者可以明确相关内容。

1892

被折叠的 条评论
为什么被折叠?



