java面对对象09_package包

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)领取。

发布了35 篇原创文章 · 获赞 0 · 访问量 343

猜你喜欢

转载自blog.csdn.net/zhoujunfeng121/article/details/104581745
今日推荐