Java包的使用
1 什么是Java包(package)
Java包是一组相似类型的类,接口和子包。
Java中的程序包可以分为两种形式:内置程序包和用户定义程序包。
有许多内置软件包,例如java,lang,awt,javax,swing,net,io,util,sql等。
本章节,主要学习如何创建和使用用户定义的程序包。
2 Java包(package)的优势
- Java软件包用于对类和接口进行分类,以便可以轻松维护它们。
- Java包提供类的访问权限保护。
- Java包消除了命名冲突。
3 Java包(package)的简单示例
在Java中使用package关键字创建包:
package mypack; //这是创建自定义Java包
/**
* 一点教程网 - http://www.yiidian.com
*/
public class Simple{
public static void main(String args[]){
System.out.println("我们终于学习到Java包啦");
}
}
4 如何编译Java包(package)
如果不使用任何IDE,则需要遵循以下语法:
javac -d 目录 文件名称
例如:
javac -d . Simple.java
-d:代表指定将生成的类文件保存到哪个目录位置。你可以使用任何目录名称,例如/home(Linux系统),d:/abc(Windows系统)等。如果要将软件包保留在同一目录中,可以使用.(点)。
5 如何运行Java包(package)
你需要使用标准名称,例如mypack.Simple等来运行该类。
编译: javac -d . Simple.java
运行:java mypack.Simple
输出结果为:
我们终于学习到Java包啦
-d:用于告诉Java编译器将类文件放在哪里,即表示目的地。 . 代表当前文件夹。
6 访问Java包(package)的方式
有三种方式可以从外部访问到Java包:
- import package.*;
- import package.classname;
- 全限定名
6.1 import package.*
如果使用package.*,则可以访问此包下的所有类和接口,但不能访问子包。
import关键字用于使当前程序包可以访问另一个程序包的类和接口。
//A.java
package pack;
public class A{
public void msg(){
System.out.println("你好");
}
}
//B.java
package mypack;
import pack.*; //导入另一个包
class B{
public static void main(String args[]){
A obj = new A();
obj.msg();
}
}
输出结果为:
你好
6.2 import package.classname
如果使用import package.classname导入包,则只能访问此包下的类。
//A.java
package pack;
public class A{
public void msg(){
System.out.println("你好");
}
}
//B.java
package mypack;
import pack.A; //导入另一个包
class B{
public static void main(String args[]){
A obj = new A();
obj.msg();
}
}
输出结果为:
你好
6.3 全限定名
如果使用完全限定名,则只能访问此程序包下声明的类。弊端是,每次访问类或接口时,都需要使用完全限定名老导入。
通常在两个包具有相同的类名时使用,例如java.util和java.sql包都包含Date类。
//A.java
package pack;
public class A{
public void msg(){
System.out.println("你好");
}
}
//B.java
package mypack;
class B{
public static void main(String args[]){
pack.A obj = new pack.A();//使用全限定名
obj.msg();
}
}
输出结果为:
你好
注意:如果导入某个包,是不会导入其子包的。
如果导入包,则将导入该包的所有类和接口,但不包括子包的类和接口。因此,您还需要导入子包。
程序的顺序必须先定义包,然后再导入包,最后再是类。
7 Java的子包(package)
包里面的包称为子包。子包的作用在于对软件包下的类进一步分类。
让我们举个例子,Sun公司定义了一个名为java的包,其中包含许多类,例如System,String,Reader,Writer,Socket等。这些类表示一个特定的组,例如Reader和Writer类用于IO流操作,Socket和ServerSocket用于网络编程等。因此,Sun公司将Java包细分为lang,net,io等子包,并将与Input/Output相关的类放在io包中,将Servet和ServerSocket类等类放在net包中,等等。
7.1 子包定义语法
package com.yiidian.core;
class Simple{
public static void main(String args[]){
System.out.println("你好,子包");
}
}
编译: javac -d . Simple.java
运行: java com.yiidian.core.Simple
输出结果为:
你好,子包
热门文章
优秀文章