javalean
发贴: 20
积分: 0
|
于 2005-08-05 19:45
看一下我的这篇乱七八糟的文章吧。
java中包(package)的使用为名字空间的管理提供了方便,可以利用java中包技术来创建自己的类库,从而实现代码的复用。但是对于一名java初学者来说,如何创建自己的第一个包,和如何使用自己的第一个包,似乎还是一件不太容易的事情。笔者作为一名从c++转向java的程序语言学习者,在这篇文章了谈了一下自己的体会。
关于包的知识和包的命名方法请参考《java编程思考》或者其它的java基础书。 下面的代码创建了一个tools包(当然你也可以说它是com.bruceeckel.tools包): //下面的代码来自《java编程思考》中文版第三版第129页 package com.bruceeckel.tools;//创建一个tools包
public class P{ public static void rint(String s){ System.out.print( s ); } public static void rintln(String s){ System.out.println( s ); } }//程序结束 写完代码后,第一个问题来了,这段代码应该保存在哪里?随便放?当然不是。这个文本(因为我们还没有编译它)的保存位置应该是classpath位置开始的com.bruceeckel.tools的目录下。关于classpath的设置,我在《java环境变量的设置》中已经有了介绍。可以看到这个文本是个.java文件,然后编译它,如果你想运行它,这时是会出错的,因为它没有main()函数。你可以这样理解,它只是一个功能单元,是为别的文件提供服务的。 我想这个时候你已经看完了我的《java环境变量的设置》,但是我想你仍然会感到迷茫,因为你设置好后,编译这个程序,居然(呵呵,应该是理所当然)出错了。问题出在哪了呢?答案是classpath的设置不对。我想这个时候你的手上已经抓了一个烂西红柿。先别扔,听我说完。按照我在前面的介绍(其实这也是n多的java入门教程里面讲的),classpath的值为 .;d:\j2se\lib\dt.jar;d:\j2se\lib\tools.jar 而在这个时候所有的作者(包括我)都认为你不会用类库的。当然类库是个好东西,你应该拥有自己的良好的类库。 在上面的classpath值中,dt.jar和tools.jar中存放的是java的标准类库,当然我们要创建自己的类库,得另外设置classpath,下面以我的机器为例子,结合上面的代码段来讲。 首先将classpath的值改为 .;d:\j2se\lib\dt.jar;d:\j2se\lib\tools.jar;d:\j2se\lib 因为我想把自己的类库建在d:\j2se\lib的子目录中。所以,上面的P.java文件的存放路径是d:\j2se\lib\com\bruceekel\tools 然后编译,这次不会出错了。呵呵。 我曾经看了一些java的初级教材讲到这些问题时,作者常用的话是“在我的机器上”。这是一句让人费解的话,也容易成为推却责任的借口。下面我再举一个例子,假设你的jdk安装的目录是c:\jdk1.2,你创建的包名是com.joelean.toolslibrary,那么你的classpath可相应改成 .;c:\jdk1.2\lib\dt.jar;c:\jdk1.2\lib\tools.jar;c:\jdk1.2\lib 这时候的你的类库将存放在c:\jdk1.2\lib目录下,以后你想增加新的类库,只需要在这个目录下创建你的包就可以,不需要再修改classpath。 下面的代码检验刚才创建的包是不是可以使用。 import com.bruceeckel.tools.*;//import你需要的文件
public class ToolTest{ public static void main(String [] args){ P.rint("This is 1st line."); P.rint("This is 1st line."); P.rintln("This is 1st line too."); P.rintln("This is the 2nd line."); } }//程序结束 程序运行结果为 This is 1st line.This is 1st line.This is 1st line too. This is the 2nd line.
javalean edited on 2005-08-05 19:47
|