Java Web入门之java--第三节 关于包的讲解

本节内容介绍包的使用,主要是 package 语句。 

  1)随着代码的大量增加,程序员写的.java 源文件以及编译产生的.class 字节码文件会大量的增加。如果任由这种情况发生的话,无论是查询还是管理都会非常的不方便。为了解决这方面的问题,Java 提供了“包”来帮助我们组织和管理类。

  在操作系统中,如果有大量的文件,为了方便管理,我们往往会按照某种规则,创建结构合理的文件夹结构。例如,如果有大量的 文件,用户可以把这些文件按照excel、 word、ppt等,创建相应的文件夹,分门别类的进行管理。 类似的,在 Java 中,为了更好的管理大量的类,引入了“包”的概念。 使用 package 语句可以用来将一个特定的类放入包中。要注意的是,如果要使用 package 语句,则这个语句必须作为.java 文件的第一个语句,并写在任何类的外面。例如,对我们之前写的 HelloWorld 类放入 learn.java 包,则代码如下:

package learn.java;

public class HelloWorld{
    public static void main(String args[]){
        System.out.print("Hello World");
    }
}

上面的这段代码,就把 HelloWorld 类放在了 learn.java包下。要注意的是,在加包之后,使用java命令去运行 HelloWorld 类时必须加上包名作为前缀,因此完整的写法应当是: learn.java.HelloWorld。这种在类名前面加上包名的写法称为类的全限定名

首先我们使用编译命令编译HelloWorld.java文件。编译完成后生成HelloWorld.class文件。之后直接运行.class文件,会产生一个错误:

出现这个错误的原因显然跟我们刚刚给 HelloWorld 加包有关。 在加包之后,使用 HelloWorld 类时,必须使用全限定名运行 HelloWorld 的 class 文件。 即,命令必须是 java learn.java.HelloWorld 但是这样运行,依然会提示错误:

  这个错误的原因在于,包结构必须和硬盘上的文件夹结构一致。也就是说,在上述例子中,HelloWorld.class 文件,必须放在类路径下的 learn/ java/目录 下。

  在存放HelloWorld.java文件夹下,建立对应的包名目录结构,并将.class文件移动到特定文件夹下,在我的文件目录中,我需要在D:\core java\test文件夹下再新建对应的包的目录结构,即D:\core java\test\learn\java 。此时我的HelloWorld.class的存放地址为D:\core java\test\learn\java\HelloWorld.class

                     此时运行java learn.java.HelloWorld命令才能正确执行,结果如下:

使用包的主要目的是为了避免类名冲突。例如,假设有两个程序员不约而同的都使用 HelloWorld 作为类名。如果这两个类都不使用包的话,一方面,两个类的类名相同,因此在 使用上会产生歧义。另一方面,在把两个程序员写完的.class 字节码文件放在一起运行的时 候,在同一个文件夹下会有两个同名的字节码文件,从而产生文件冲突。而如果这两个程序 员使用不同的包 p1 和 p2,一方面生成的 HelloWorld.class 字节码文件一个放在 p1 目录下, 另一个放在 p2 目录下,不会有文件名的冲突。另一方面,全限定名不同,在使用这两个类 时,一个被称为 p1.HelloWorld,另一个被称为 p2.HelloWorld,从而避免了类名的冲突。

                   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值