1.package概述
- 为什么需要包?
包机制是java中管理类重要手段,给类提供了多层命名空间。 开发中,我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理。 包对于类,相当于,文件夹对于文件的作用。
在java中我们通过package实现对类的管理,我们将相同功能的类放到一个包中,并且日常项目的分工也是以包作为边界。
注意:同一个包中,不允许有相同的类名。
- 如何定义包?
一般是公司域名反写,再加上模块名,便于内部管理类。可以有多层包,包名采用全部小写字母,多层包之间用“.”连接。
【示例】包的命名举例
com.bjsxt.object
com.bjsxt.object.demo
注意:com.bjsxt.object和com.bjsxt.object.demo,这两个包没有包含关系,是两个完全独立的包。只是逻辑上看起来后者是前者的一部分。
- 如何使用包?
在程序有效代码的第一行(注释不算)声明包。
【示例】包的声明举例
package com.bjsxt.object; // 包的声明,必须在有效代码的第一行(注释不算)
// 以下是业务逻辑所需要的代码
class Person {}
注意:当前包中的类可以直接使用!
2.java常用包
java中的常用包 | 说明 |
---|---|
java.lang | 包含一些Java语言的核心类,如String、Math、System等。 |
java.awt | 包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。 |
java.net | 包含执行与网络相关的操作的类。 |
java.io | 包含能提供多种输入/输出功能的类。 |
java.util | 包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数。 |
7.3 java类的访问
- 类的简化访问
当我们要使用一个类时,这个类与当前程序在同一个包中(即同一个文件夹中),或者这个类是 java.lang 包中的类时通常可以省略掉包名,直接使用该类。
【示例】类的简化访问举例
package com.bjsxt.object;
class Person {}
public class Test {
public static void main(String[] args) {
// 访问同一包中的类
Person p = new Person();
// 访问java.lang包中的类
String str = "hello world";
}
}
- 类的带包名访问
在访问类时,为了能够找到该类,必须使用含有包名的类全名(包名.类名),例如:java.util.Date。
使用带包的类来创建对象格式:包名**.类名 **变量名 = new**包名.**类名();
【示例】类的带包名访问举例
java.util.Date date = new java.util.Date();
注意:包的访问与访问权限密切相关,这里以一般情况来说,即类用 public 修饰的情况。
4.import导入类
我们每次使用类时,都需要写很长的包名。很麻烦,我们可以通过 import 导包的方式来简化。可以通过导包的方式使用该类,可以避免使用全类名编写(包类.类名),以便于编写代码,提高可维护性。
导包的格式:import 包名.类名;
import 导包代码书写的位置:在声明包 package 后,定义所有类 class 前。
【示例】import的使用举例(一)
package com.bjsxt.object;
// 导入位置:在声明包package后,定义所有类class前。
import java.util.Date; // 导入日期类
public class Test {
public static void main(String[] args) {
// 使用Date类
Date date = new Date();
}
}
【示例】import的使用举例(二)
package com.bjsxt.object;
// 导入位置:在声明包 package后,定义所有类 class前。
import java.util.*; // 导入该包下所有的类。会降低编译速度,但不会降低运行速度。
class Test {
public static void main(String[] args) {
// 使用java.util包下的类
Date date = new Date();
Scanner s = new Scanner(System.in);
}
}
注意:如果导入两个同名的类,只能用包名+类名来显示调用相关类。
【示例】导入同名类的处理
import java.sql.Date;
import java.util.*;
public class Test {
public static void main(String[] args) {
java.util.Date date = new java.util.Date();
}
}
静态导入(static import)是在JDK1.5新增加的功能,其作用是用于导入指定类的静态变量或静态方法,这样我们可以直接使用静态变量或静态方法。
【示例】静态导入的使用
// 以下两种静态导入的方式二选一即可
import static java.lang.Math.*; // 导入Math类的所有静态变量和静态方法
import static java.lang.Math.PI; // 导入Math类的PI属性
public class Test {
public static void main(String[] args) {
System.out.println(PI);
System.out.println(random());
}
}
ps:如需最新的免费文档资料和教学视频,请添加QQ群(627407545)领取。