是不是编译时这样进行的:
比如:
   Frame jf=new Frame();  先到tools.jar里查找有没有这个 *.class 对应的字节码文件.
   Button b=new Button();  
   NewClass nc=new NewClass(); //假如这个类在classpath的路径下,又已经编译成*.class文件
                                    即使没有import进来也不会编译出错,是吧?
  我做过试验的,但是执行会出错.....
希望大哥们给点意见

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【sure2003】截止到2008-07-14 20:43:07的历史汇总数据(不包括此帖):
    发帖的总数量:238                      发帖的总分数:10143                    每贴平均分数:42                       
    回帖的总数量:203                      得分贴总数量:5                        回帖的得分率:2%                       
    结贴的总数量:232                      结贴的总分数:9963                     
    无满意结贴数:2                        无满意结贴分:50                       
    未结的帖子数:6                        未结的总分数:180                      
    结贴的百分比:97.48 %               结分的百分比:98.23 %                  
    无满意结贴率:0.86  %               无满意结分率:0.50  %                  
    值得尊敬
      

  2.   

    编译只是编译本类
    执行的时候才查找import
    但似乎也有意外情况,具体忘记了
    等高手解释
      

  3.   


    编译时也要用到这些 class 文件,用来校验使用是否正确,例如调用的方法参数是否合适等等。
      

  4.   


    import 只是方便写程序才用的,免得写个类名还得加上一堆包名作限定,编译后在 class 文件中都是以 java.util.Scanner 这样的带包名限定的完整类名出现的。
      

  5.   

    在编译或运行时,是根据你的 ClassPath 的路径顺序,再结合与包名对应的放置 class 文件的文件夹层次结构查找相应包含类定义的 class 文件的。
      

  6.   

    到字节码里全是完全限定名了,没事javap一下也挺有意思的。
      

  7.   

    在编译或运行时,是根据你的 ClassPath 的路径顺序,再结合与包名对应的放置 class 文件的文件夹层次结构查找相应包含类定义的 class 文件的。7楼的话,MS说与import无关了
    import进来的是*.java源文件
    而classpath中都是*.class字节码文件,是这样吗???
      

  8.   


    import 很容易让人产生误解,它什么都没有“导入”进来(跟 C/C++ 的 include 编译预处理命令完全两码事),它只是声明了一下你下面源代码中出现的类来自哪个包,即指出了这些类名带包名限定的全称是什么。相比之下 C# 中的 using 这个关键词更贴切。