test.java 一段代码,引用ck包里的其他类, import里, 如果import ck.Contact 就可以编译通过,但如果用 import ck.*就报错:
---------- Javac ----------
test.java:12: 无法访问 ContactDAO
错误的类文件: .\ContactDAO.java
文件不包含类 ContactDAO
请删除该文件或确保该文件位于正确的类路径子目录中。
ContactDAO dao = new ContactDAO();
^
1 错误Contact.class 已经放在 .\ck\ 下, 请问为什么用*来引用就找不到类呢?
(Contact.java已经编译通过的)

解决方案 »

  1.   

     import ck.*   是把其所有子类都引用进来
     import ck.类名  是引用具体的某个类
      在实际开发中 一般是使用import ck.类名  这种形式
      

  2.   


    根本不是效率的问题,对于按需类型导入,只会对编译有影响,不影响执行效率,而如果你那个ck下只有这一个类的话,他查找也不需要多少时间,所以这个编译的影响也就没有了,至于LZ的问题,我觉的是connectDAO类不是Contact.java下的public类,自然找不到
      

  3.   

    import pk.*与import pk .+ 类名其实在运行的时候不会有很大的区别。但是有一点需要注意的是,当在无名包中的某个类使用其他 包中的类时,必须引入这个包中的具体类,即只能使用 import .pk.+类名
    比如:你在项目中的default包中有一个test.java去调用com.pk下的people类,你就必须用import.pk.people。
    不知讲的清不清楚,如果回答的不好不要见怪