导包的时候,import food.*;和import food.Fruit;有什么区别,为什么用*的时候就会出错,而用后者则没有问题呢???

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【zhaibing】截止到2008-07-06 23:52:12的历史汇总数据(不包括此帖):
    发帖的总数量:10                       发帖的总分数:360                      
    结贴的总数量:4                        结贴的总分数:160                      
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:6                        未结的总分数:200                      
    结贴的百分比:40.00 %               结分的百分比:44.44 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    楼主该结一些帖子了
      

  2.   

    import food.*;
    导入 food包下的所有类import food.Fruit
    只导入 food下的Fruit类 
      

  3.   

    不知道你是不是用jdk直接编的啊,怀疑是类路径或者文件名中的中文名有影响。
    对你这种情况。两种导入方法是一样的。
      

  4.   

    你把food中的Fruit.java一出就没问题了。
      

  5.   

    看一下这个例子和说明就明白了
    http://www.sunxin.org/sunxin/005.asp
      

  6.   

    区别见楼上几位的说明至于错误,肯定是你的系统里有的类重复了,比如Fruit如果你导入了*,那么系统无法确定到底是用哪个 Fruit,所以报错检查一下你的 Fruit 这个是否有重复的。java 里面
    java.util.Date
    java.sql.Date
    这个也是重复的,引起了无数的烦人的问题
      

  7.   

    我感觉楼主是把class文件和java文件放到一个文件夹下了,好好的组织一下,这个问题很容易解决.
      

  8.   

    import food.*这句是用来将food目录下的所有class文件导入,而import food.Fruit则是将指定的Fruit类文件导入,至于出错的原因我想可能是由于在classpath中有其他的同名的类,所以编译器无法识别应该用哪一个才报错,希望能有所帮助。
      

  9.   

    但是查找的时候是不按后缀名来查找的,如果内部有.java文件会导致出错。如果直接指定导入类的全路径名就不会出问题,应该是jdk 机制的问题吧
      

  10.   

    你最好贴代码并把你包中都包含的类描述一下。
    猜测原因是你在类中导入其他类的时候,是这样的结构import food.fruit.*;//假设food文件夹下有一个fruit文件夹,
    //并且该文件夹下也有Fruit类,则会出现错误,因为在类中调用Fruit的时候不知道该调用哪个。
    import food.*;
      

  11.   

    在编译的时候jvm对import的解析只是简单的拼装.
    比如
    import food.*;
    类中用到Fruit的时候,对import的解析是把food.*中的*换成Fruit,也就变成food.Fruit;import food.Fruit;
    这样的话,类中用到Fruit的时候,则直接去找food.Fruit;
      

  12.   


    如果你的(food.*)包里有重复名字的类。。就会发生错误啊