欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Java包管理

最编程 2024-08-02 12:21:57
...

package

包的作用

  • 如同文件夹,用于区别类名的命名空间
  • 包可以避免名字冲突。调用不同包中相同类名的类时,应该加上包名加以区别。
  • 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
//路径为:pkg1/pkg2/.../demo.java
package pkg1[.pkg2[.pkg3...]]];

如下例:
将想要放在同一个包中的文件都在开头写想要指定的包名bag(小写字母,避免与类、接口名字冲突),然后放入同一个子目录中,子目录的名字就是bag。

//A.java
package bag;

interface A{
  public void a();
}
//A_.java
package bag;

public class thing implements  A{
  public void a(){
    System.out.println("hahaha");
  }
}

import 关键字

类文件中可以包含任意数量的 import 声明。import 声明必须在包声明之后,类声明之前。

如果一个包中,一个类想要使用本包中的另一个类,那么该包名可以省略,否则:

//通配符*
import pkg.*;
//引入单个类A
import pkg.A;

命名规则

通常,一个公司使用它互联网域名的颠倒形式来作为它的包名.例如:互联网域名是 runoob.com,所有的包名都以 com.runoob 开头。包名中的每一个部分对应一个子目录。

例如:有一个 com.runoob.test 的包,这个包包含一个叫做 Runoob.java 的源文件,那么相应的,应该有如下面的一连串子目录:
....\com\runoob\test\Runoob.java
编译的时候,编译器为包中定义的每个类、接口等类型各创建一个不同的输出文件,输出文件的名字就是这个类型的名字,并加上 .class 作为扩展后缀。例如:

// 文件名: Runoob.java
 
package com.runoob.test;
public class Runoob {
      
}
class Google {
      
}

现在,我们用-d选项来编译这个文件,如下:
$javac -d . Runoob.java
这样会像下面这样放置编译了的文件:

.\com\runoob\test\Runoob.class
.\com\runoob\test\Google.class

这样,你可以将你的类目录分享给其他的编程人员,而不用透露自己的源码。

CLASSPATH

类目录的绝对路径叫做 class path。设置在系统变量 CLASSPATH中。编译器和 java 虚拟机通过将 package 名字加到 class path 后来构造 .class 文件的路径。
用下面的命令显示当前的CLASSPATH变量:

  • Windows 平台(DOS 命令行下):C:> set CLASSPATH
  • UNIX 平台(Bourne shell 下):# echo $CLASSPATH

删除当前CLASSPATH变量内容:

  • Windows 平台(DOS 命令行下):C:> set CLASSPATH=
  • UNIX 平台(Bourne shell 下):# unset CLASSPATH; export CLASSPATH

设置CLASSPATH变量:

  • Windows 平台(DOS 命令行下): C:> set CLASSPATH=C:\users\jack\java\classes
  • UNIX 平台(Bourne shell 下):# CLASSPATH=/home/jack/java/classes; export CLASSPATH

参考:
https://www.runoob.com/java/java-package.html