关于package和import的一点疑问!

3dking 2003-10-20 11:35:36
//: Cookie.java
// Creates a library
package c05.dessert;

public class Cookie {
public Cookie() {
System.out.println("Cookie constructor");
}
void foo() { System.out.println("foo"); }
} ///:~

_______________________________________________________________________


//: Dinner.java
// Uses the library

import c05.dessert.*;

public class Dinner {
public Dinner() {
System.out.println("Dinner constructor");
}
public static void main(String[] args) {
Cookie x = new Cookie();
//! x.foo(); // Can't access
}
} ///:~
运行Dinner的时候,总会出现下面的错误:
C:\Program Files\Xinox Software\JCreator Pro\MyProjects\Dinner.java:12: cannot resolve symbol
symbol : constructor Cookie()
location: class Cookie
Cookie x = new Cookie();
^
一定要给Dinner打包才可以运行,如下package kkk
//: Dinner.java
// Uses the library
package kkk
import c05.dessert.*;

public class Dinner {
public Dinner() {
System.out.println("Dinner constructor");
}
public static void main(String[] args) {
Cookie x = new Cookie();
//! x.foo(); // Can't access
}
} ///:~
这样就行,请问为什么??
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
honkyjiang 2003-10-20
  • 打赏
  • 举报
回复
或用import c05.dessert.Cookie ;
试试 可能就是这个规则吧 !
clare0peng 2003-10-20
  • 打赏
  • 举报
回复
有時成功了是不需要理由的,本來就是這樣的呀
3dking 2003-10-20
  • 打赏
  • 举报
回复
import c05.dessert.Cookie当然能通过,但我不明白import c05.dessert.*为什么不能通过?
import c05.dessert.*,是将dessert目录下的所有类引入,当然也包括引入了
import c05.dessert.Cookie,但大家试一试下面为什么又行:

package kkk
import c05.dessert.*

x.foo()不能通过是因为foo()是private,当然不能为别的类所引用.
playing5460 2003-10-20
  • 打赏
  • 举报
回复

另外x.foo();怎么不能通过?
playing5460 2003-10-20
  • 打赏
  • 举报
回复

包不规范吧,我运行了你的程序,不能通过,
To: nkyjiang(老蒋) 就能通过
请大虾分析原因

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧