Java学习之十二 Java包package

上一篇:Java学习之十一 Java流(Stream)文件(File)I/O

Java学习之十二 Java包(package)

为了更好的组织类,Java提供了包机制,用于区别类名的命名空间。

包的作用:

  • 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用
  • 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。
  • 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

Java使用包package是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举和注释等。

包的语法格式:

package pkg1[.pkg2[.pekg3...]]

例如一个Somthiing.java文件,她的内容:

package net.java.util;
public class Somthing{
...
}

他的路径就是net/java/util/Sonthing.java

一个包(package)可以定义为一组项目联系的类型(类、接口、枚举和注释),为这些类型提供访问保护和,命名空间管理的功能。

如:

  • java.lang-打包基础的类
  • java.io-包含输入输出功能的函数

 

创建包

  • 创建包,取一个合适的名字;包的声明必须放在这个源文件的开头。
  • 包声明应该在源文件的第一行,每个源文件只能有一个包声明,这个文件中的每个类型都应用于它。
  • 如果一个源文件中没有使用包声明,那么其中的类,函数,枚举,注释等将被放在一个无名的包(unnamed package)中

 

import导入包

在java源文件中 import语句应该在package语句之后,所有的类定义之前。可以没有,也可以多条。

语法格式如下:

import package1[.package2...].(classname|*);

同一个包中的类使用可以忽略包名。

package的目录结构

类放在包中会有两种主要的结果:

  • 包名成为类名的一部分
  • 包名必须与相应的字节码所在的目录结构相吻合

通常一个公司使用它互联网域名的颠倒形式来作为它的包名。如com.bimex.test

编译的时候,编译器为包中定义的每个类、接口等类型各创建一个不同的输出文件。输出文件就是这个类型的名字加上.class的扩展后缀。

编译后的.class文件应该和.java源文件一样,它们放置的目录应该跟包的名字对应起来。但是,并不要求.class文件的路径跟相应的.java的路径一样。可以分开源码和类的目录

<path-one>\src\com\bimex\test\Something.java
<path-two>\classes\com\bimex\test\Something.class

这样可以把类目录分享给其他人员,而不用暴露源码。

class path

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

<path-two>\classes是class path。package名字是com.bimex.test,而编译器和java虚拟机将在

<path-two>\classes\com\bimex\test中寻找.class文件

一个 class path 可能会包含好几个路径,多路径应该用分隔符分开。默认情况。编译器和JVM查找当前目录。

JAR文件按包含java平台相关的类。所以他们的目录默认放在了class path中。

 

设置 CLASSPATH 系统变量

用下面的命令显示当前的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

 

 

 

 

上一篇:Java学习之十一 Java流(Stream)文件(File)I/O

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值