Java开发网 |
注册 |
登录 |
帮助 |
搜索 |
排行榜 |
发帖统计
|
您没有登录 |
» Java开发网 » Java SE 综合讨论区
» 安装/配置/编译/环境
打印话题 寄给朋友 订阅主题 |
作者 | Re:关于package 的使用疑问! [Re:cocoa911] |
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
为什么这个Applet不能在浏览器显示啊? |
话题树型展开 |
人气 | 标题 | 作者 | 字数 | 发贴时间 |
9517 | 关于package 的使用疑问! | cocoa911 | 1493 | 2005-08-05 09:11 |
7794 | Re:关于package 的使用疑问! | why | 119 | 2005-08-05 13:11 |
7829 | Re:关于package 的使用疑问! | cocoa911 | 28 | 2005-08-05 16:49 |
7756 | Re:关于package 的使用疑问! | why | 298 | 2005-08-05 18:33 |
8152 | Re:关于package 的使用疑问! | javalean | 1967 | 2005-08-05 19:45 |
8149 | Re:关于package 的使用疑问! | cocoa911 | 1653 | 2005-08-05 22:59 |
7755 | Re:关于package 的使用疑问! | why | 695 | 2005-08-05 23:45 |
7740 | Re:关于package 的使用疑问! | cocoa911 | 14 | 2005-08-06 07:51 |
7870 | Re:关于package 的使用疑问! | xiaoqiang806 | 47 | 2005-08-07 19:30 |
8428 | Re:关于package 的使用疑问! | javalean | 82 | 2005-08-08 12:22 |
已读帖子 新的帖子 被删除的帖子 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |