import java.awt.Frame; //为什么这里一定会import?
public class bbbb
{
public static void main(String args[])
{
Frame jf=new Frame();
System.out.println("bbbb");
}
}前几天有朋友说,只要classpath下的类,JVM会自动调用.
而Frame在...\lib\tools.jar里边
我的classpath已经包括.可为什么还要import java.awt.Frame呢?
import的是*.java源文件,还是*.class字节码文件.而大家看我这个源文件:
public class A
{
public static void main(String args[])
{
B xx = new B(); //b.class 我建在其中一个classpath目录下
System.out.println("wwww ");
}
}这个文件可以被译正确执行的.困惑中...
public class bbbb
{
public static void main(String args[])
{
Frame jf=new Frame();
System.out.println("bbbb");
}
}前几天有朋友说,只要classpath下的类,JVM会自动调用.
而Frame在...\lib\tools.jar里边
我的classpath已经包括.可为什么还要import java.awt.Frame呢?
import的是*.java源文件,还是*.class字节码文件.而大家看我这个源文件:
public class A
{
public static void main(String args[])
{
B xx = new B(); //b.class 我建在其中一个classpath目录下
System.out.println("wwww ");
}
}这个文件可以被译正确执行的.困惑中...
楼主【sure2003】截止到2008-07-15 13:32:42的历史汇总数据(不包括此帖):
发帖的总数量:239 发帖的总分数:10173 每贴平均分数:42
回帖的总数量:205 得分贴总数量:6 回帖的得分率:2%
结贴的总数量:232 结贴的总分数:9963
无满意结贴数:2 无满意结贴分:50
未结的帖子数:7 未结的总分数:210
结贴的百分比:97.07 % 结分的百分比:97.94 %
无满意结贴率:0.86 % 无满意结分率:0.50 %
值得尊敬
想使用java.awt.Frame
你可以在classpath这样设置,tool.jar/java/awt/Frame
我想这样就不需要import了。不过类有好多多。import就好了。
其实这些东西对开发用处不是很大,ide可以让你避免这些问题,把精力放在开发上。先用java开发一些大的项目,一些小的问题慢慢积累。
//import java.awt.Frame; 为什么这里一定会import?不导入照样用只要你classpath路径正确
public class bbbb
{
public static void main(String args[])
{
java.awt.Frame jf=new java.awt.Frame(); //这里就要这么写,麻烦!
System.out.println("bbbb");
}
}
我改了classpath:
C:\Program Files\Java\jdk1.6.0\lib\tool.jar\java\awt\Frame
但是还是无法在去掉import的情况下,编译正确,您试试
-------------------------------public class bbbb
{
public static void main(String args[])
{
java.awt.Framejf=new java.awt.Frame();
System.out.println("bbbb");
}
}这样就可以在去掉import了import 命令 只是告诉当程序中出现一个类名时 去哪个包下面找这个类
{
public static void main(String args[])
{
B xx = new B(); //b.class 我建在其中一个classpath目录下
System.out.println("wwww ");
}
}是在同一个包下吧!
再把classpath
C:\Program Files\Java\jdk1.6.0\lib\tool.jar\java\awt\Frame 换成C:\Program Files\Java\jdk1.6.0\lib\tool\java\awt\Frame
试试
"前几天有朋友说,只要classpath下的类,JVM会自动调用,
而Frame在...\lib\tools.jar里边 我的classpath已经包括. "
这句话里面注意:classpath下的“类”
对于JVM来说在classpath下的“类”是可见的。“而Frame在...\lib\tools.jar里边 我的classpath已经包括.
可为什么还要import java.awt.Frame呢? ”
Frame并没有在classpath的目录下面,而是在tools.jar包里面。换言之Frame是在classpath下tools.jar包"java\awt\Frame"子目录下面,因此要让JVM知道Frame类在哪里必须增加一个classpath到这个目录,在*.java文件中写为“import java.awt.Frame;”“import的是*.java源文件,还是*.class字节码文件. ”import的是字节码
public class A
{
public static void main(String args[])
{
B xx = new B(); //b.class 我建在其中一个classpath目录下
System.out.println("wwww ");
}
}这样写必须A 和B在一个包下(同一目录下).
public class bbbb
{
public static void main(String args[])
{
//Frame jf=new Frame();
java.awt.Frame jf = new java.awt.Frame();//如果不import java.awt.Frame类,则应该在此指明用的哪个类。
System.out.println("bbbb");
}
}
而你给出的下述java代码,
public class A
{
public static void main(String args[])
{
B xx = new B(); //b.class 我建在其中一个classpath目录下
System.out.println("wwww ");
}
}
可以成功编译并可以运行,因为类B在B.class文件中,并且已经被你加入到classpath变量中。
不属于吧,那么就好比你这个类是个人,其他的类是工具,你要去用它,那你是不是该
告诉这个人,工具在哪儿??
你不找到它怎么用他???当你在cmd下的时候,如果执行java xxx当你要用别的类的时候,为什么还要用
-classpath??java -cp xxx/xxx;lib/xxx.jar 包名.类名
为什么要这么用,import就是为了你方便,是一种生明那你学过c语言吧
为什么要#include ”stdio.h“都是告诉你到哪儿去找,如果你不import,那么你每次在用的时候就要写完整的包路径+类的名称,麻烦不麻烦?人家提供了个import给你用,你竟然还质疑他。
没人会说你笨,但是肯定你没有理解java一些思想以上是我的理解,希望可以帮到你