包的概念是什么?引用整个包a和import a.*有什么不同? 拜托你先去随便抓一本JAVA入门书看三天,下载一个JDK来试用一星期,然后再来问,OK? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 2 shizumaru(绯雨闲丸) :我昨天刚买了一本Java入门书,可是看完了还是不明白,不然我回到这里问? package是表示该文件的包路径。import就像include,包含你需要用的类。CLASSPATH是在运行时的路径,表明该哪里找你import的类! package a是指把这个class放在a里面,可以认为是指明路径调用的时候用import a.*; 先对你说明一点,引用包是import,不是package,package是把这个class或interface放到一个包中。所以,没有什么package b.a.*;这种情况,package只能把这个class或interface放入一个明确的包中。import一个class或interface时,你可以具体到这个想要用到的class或interface,如:import java.util.ArrayList;同样,你可以把util这个包中的所有的class或interface一次都包进来,import java.util.*;这样做的好处就是不用一个一个的引入了。classpath是你的程序运行时所要引用的包的路径,所以如果你的程序中要用到一些特定的包,你就要把这些包放入classpath中,当然,并不是说只要你import了,你就一定要在classpath中明确的包括这些包,这还与你装的jdk有关。 package实际上是一个名字空间。当你写:package A意思就是说“下面的代码都属于名字空间A”。如果没有这个声明,则代码属于default名字空间。从default名字空间是访问不到A名字空间的,你必须告诉编译器“我要访问A名字空间”。怎么说?这样:import A.*;为什么要加上.*?这就表示“我要访问A名字空间下所有的类”。如果你明确知道要访问A里面的B类,就这样:import A.B;(顺便纠正gularess的一个错误:import不像include。C++中的include是包含源代码,而import是导入名字空间中的可执行单元。从这个意义上来说,import更像是C++中的using语句。)至于CLASSPATH,那是JDK的一个参数。你可以到JDK的bin目录下去,输入java和javac,可以看到,这两个程序都有-CLASSPATH参数。什么意思呢?就是告诉java(或者javac):可能有些文件不是在JDK的默认路径下,你要到另外的地方去找。它跟package、import都没关系。package、import指的是名字空间,CLASSPATH指的是文件路径。最后,关于CLASSPATH的设置:你可以在windows命令行下用set命令去设置:set CLASSPATH = "c:\jdk\"也可以在运行java(或者javac)的时候动态设置:java -CLASSPATH="c:\myprogram\" a.class现在能明白了吗?回去继续看书吧。 package就是用来打包你编的类用的,import就是用来引入大包后的类的,classpath就是告诉编译器所需的包在哪个文件夹里! 包的source是一个目录,比如你自己要建一个包的时候,你就要先建一个目录,把你的文件放入,编译。但是为了方便应用,一般情况下,我们得到的包是一个打好的jar或zip文件。 存在形式就是一个文件夹,这里面有bak、 classes、 defaultroot 、src、 work子文件夹。 你说的“包”是指package吧?package是一个名字空间(name space),但是java强制要求package和目录对应。还记得刚才说到CLASSPATH吗?假设我们这样设置CLASSPATH:set CLASSPATH = "C:\program\"那么,java会把C:\Program这个目录作为根(root),也就是默认名字空间的位置。如果你在c:\program\a下面放一些文件,就应该把它声明为package a,不然会出现一些错误,你可以自己试试。王森在《程序员大本营2001》JAVA版上有一篇文章非常详细地介绍了这个问题,建议你去看看。 to yuhan() :拜托你不要乱讲好不好?这些子目录是必须的吗?哪个规范讲的? bufferedWriter和PrintWriter Java中初始化的一个问题 JTabbedPane选项卡怎么样设置颜色,间距 发一个INI文件处理类. 个人写的 图的表示和最短路径问题 [请教]如何使用replaceAll()方法替换字符串中“'”为“\'” 这样一个时间字符串:2008-08-08 20:08:08 , 请编写能够匹配它的正则表达式 如何写.tld文件 提2个简单的问题 看thinking in java时产生的一个关于弱引用和gc()机制的问题 java 的類路徑問題請教 关于System.exit(int i)中i的问题
我昨天刚买了一本Java入门书,可是看完了还是不明白,不然我回到这里问?
import就像include,包含你需要用的类。
CLASSPATH是在运行时的路径,表明该哪里找你import的类!
是指把这个class放在a里面,可以认为是指明路径调用的时候用import a.*;
import一个class或interface时,你可以具体到这个想要用到的class或interface,如:import java.util.ArrayList;同样,你可以把util这个包中的所有的class或interface一次都包进来,import java.util.*;这样做的好处就是不用一个一个的引入了。classpath是你的程序运行时所要引用的包的路径,所以如果你的程序中要用到一些特定的包,你就要把这些包放入classpath中,当然,并不是说只要你import了,你就一定要在classpath中明确的包括这些包,这还与你装的jdk有关。
import就是用来引入大包后的类的,classpath就是告诉编译器所需的包在哪个文件夹里!