Java面向对象
Java异常
Java数组
Java常用类
Java集合
Java IO流
Java线程
Java反射
Socket编程
Java注解开发
Java GoF设计模式
HashMap
Java内存模型
Java线性表

Java包(package)

Java包的概述

包是用来管理类的, 就像使用文件夹管理文件一样,一个项目,可以包含很多的包,每个 包中又包含很多不同的类。
同一个包中类名不能相同 ,不同的包中类名可以相同。

Java常用包

java.lang: Java语言的基本包, 系统会自动导入

java.util :Java提供的常用工具包

java.io: 输入/输出相关的类

Java包的定义

package 包

说明:

● package关键字,是用来定义包的

● package定义包的语句必须作为源文件的第一条语句

● 包名的命名规则

一般使用公司域名的倒序+项目名+模块名

 com.wkcto.chapter01.package01

一般所有字母都小写

● 如果把类定义在包中, 类会有一个完整类名

包名.类名

com.wkcto.chapter01.package01.Demo01

● 使用java运行程序时, 如果是完整类名,系统会在当前目录中依次查找与包名对应的文件夹, 即在当前目录中查找  com/wkcto/chapter01/package01文件夹, 在该文件夹中查找Demo01.class字节码文件

● 把类定义在包中之后,编译时,可以通过-d参数指定字节码存储的位置,如:javac   -d   .    Test01.java   小点代表是当前目录

package  com.bjpowernode.chapter0101.p1;
/**
*	1) 使用package关键字定义了一个包, 包名命名规则: 公司域名.项目名.子模块名
*	2) Demo01类的完整类名 : com.bjpowernode.chapter0101.p1.Demo01
*	3) 编译时, 通过-d参数指定生成字节码的存储位置
			javac   -d  .   Demo01.java
			系统会在当前目录中依次创建与包名对应的文件夹
	4) 运行程序时, 使用完整类名
			java  com.bjpowernode.chapter0101.p1.Demo01
			系统会在当前目录中依次查找与包名对应的文件夹, 在该文件夹中查找字节码文件
*/
class Demo01 {
	public static void main(String[] args) 	{
		System.out.println("Hello World!");
	}
}

使用其他包中的类

在a包中想要使用b包中的类, 前提b包中的类必须定义为公共类

在使用时,可以通过两种方式:

● 直接使用完整类名

● 先通过import导入该类,再使用

package com.bjpowernode.chapter0101.p2;
/*
*	在p2包中, 想调用p3包中的MyClass类的静态方法
	1) 使用前提是, 被使用的MyClass类必须定义为public公共类
	2) 在使用时, 可以直接使用完整类名 , 也可以先导入再使用
*/

import com.bjpowernode.chapter0101.p3.MyClass;

class Demo02 {
	public static void main(String[] args) 	{
		System.out.println("调用p3包中的MyClass类的静态方法!");
		//可以使用完整类名访问一个类
		com.bjpowernode.chapter0101.p3.MyClass.mm();
		//还可以先把类导入到当前文件中,再使用
		MyClass.mm();
	}
}
package com.bjpowernode.chapter0101.p3;
public class MyClass{
	public static void mm() 	{
		System.out.println("我是p3包中 MyClass类的静态方法mm!");
	}
}

 

全部教程