初学者问题--关于package

ukyozhou 2002-09-27 12:00:27
小弟最近初学java,看的是《thinking in java 2nd》,其中有一例子(关于default package)如下:
Cake.java:

class Cake {
public static void main(String[] args) {
Pie x = new Pie();
x.f();
}
}

Pie.java:

class Pie {
void f() { System.out.println("Pie.f()"); }
}

把两个文件放在同一目录aaa下编译运行没问题,因为是default package。但我修改如下:分别在两个文件的第一行加上:package aaa,使其由default package变为名为aaa的package,但编译Cake.java时通不过,提示无法处理Pie。我知道把Cake.java的第一句改为import aaa.*;就可以,但不明白为何default package可以而名为aaa的package却不行?望各位指教,谢谢!
...全文
27 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hwhtcl 2002-09-27
  • 打赏
  • 举报
回复
javac Pie.java
javac -d Cake.java就可以了!
21cnfox
7 2002-09-27
  • 打赏
  • 举报
回复
你用package aaa ,就要保证aaa的父目录在你的classpath中
olivia2046 2002-09-27
  • 打赏
  • 举报
回复
你两个文件在同一个包下应该没问题,可以相互调用,但你是用什么编译的,如果是命令行javac编译而没有加上-d .的开关符的话则编译时实际没有生成包,那此时编译CAKE 就有问题了
AWP365 2002-09-27
  • 打赏
  • 举报
回复
如果没有package,系统默认位当前目录名为package,你加上aaa,另一个没有加上,当然不行了。

62,614

社区成员

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

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