在编写 Java 程序时,随着程序架构越来越大,类的个数也越来越多,这时就会发现管理程序中维护类名称也是一件很麻烦的事,尤其是一些同名问题的发生。有时,开发人员还可能需要将处理同一方面的问题的类放在同一个目录下,以便于管理。Java 为了解决上述问题,提供了包机制。
系统包
包允许将类组合成较小的单元(类似文件夹),它基本上隐藏了类,并避免了名称上的冲突。包允许在更广泛的范围内保护类、数据和方法,可以在包内定义类,而在包外的代码不能访问该类。
包的 3 个作用如下:
- 区分相同名称的类。
- 能够较好地管理大量的类。
- 控制访问范围。
在 Java 语言中,开发人员可以自定义包,也可以使用系统包,常用的系统包如表 1 所示。
表1 Java中常用的系统包
自定义包
Java 的系统包无须定义可以直接调用,当然也可以自定义包。下面来介绍自定义包的声明和使用方法。
1. 包的声明
为了声明一个包,首先必须建立一个相应的目录结构,子目录与包名一致,然后在需要放入该包的类文件开头声明包,形式如下:
package 包名;
2. 包的使用
在 Java 中,为了装载使用已经编译好的包,通常可以使用以下三种方法。
- 一是在要引用的类名前带上包名作为修饰符。代码如下:
bookexample.Test test = new bookexampie.Test();
其中,bookexample 是包名,Test 是包中的类名,test 是类的对象。
- 二是在文件开头使用 import 引用包中的类。代码如下:
import bookexample.Test;
- 三是在文件前使用 import 引用整个包。如下代码将 bookexample 整个包引入:
import bookexample.*;
Java使用自定义包
(1) 创建一个名为 com.dao 的包。
(2) 向 com.dao 包中添加一个 Student 类,该类包含一个返回 String 类型数组的 GetAll() 方法。Student 类代码如下:
package com.dao;
public class Student
{
public static String[] GetAll()
{
String[] namelist={"李潘","邓国良","任玲玲","许月月","欧阳娜","赵晓慧"};
return namelist;
}
}
(3) 创建 com.test 包,在该包里创建带 main() 方法的 Test 类。
(4) 在 main() 方法中遍历 Student 类的 GetAll() 方法中的元素内容,在遍历内容之前,使用 import 引入 com.dao 整个包。完整代码如下:
package com.test;
import com.dao.Student;
public class Test
{
public static void main(String[] args)
{
System.out.println("学生信息如下:");
for(String str:Student.GetAll())
{
System.out.println(str);
}
}
}
(5) 运行上一步骤的代码进行测试,最终的输出结果如下
学生信息如下:
李潘
邓国良
任玲玲
许月月
欧阳娜
赵晓慧
网友评论