记一次同一个文件夹内跨java文件的类调用实验

【背景】已经学习到如果一个java文件中,类的名称前面如果没有权限控制,或者有public,则类在同一个包内是可以相互调用的。

【实验一】

新建一个文件夹test。在A.java中定义类:

class A
{
 public void say()
{
System.out.println("i am A");
}
}

在B.java中定义public类与main方法,并调用A类:

public class B
{
 public static void main(String [] args)
{
A oo = new A();
oo.say();
}
}

然后在test文件夹下,打开cmd,执行javac,java可以编译A、B,最终屏幕打印i am A

后来看到书上加了打包的程序,即在A与B文件开头加上了 package test;

然后,再在test文件夹下打开cmd,执行javac与java却在编译B的时候报找不到类A

后来想了想,打包之后,运行javac与java的地方必须体现这种打包路径,所以在test的上级目录,再次执行javac test/A.java

javac test/B.java

java B

最终得到了正确结果。

此外尝试在eclipse中,test路径下,使用package命令,指定其他包名,发现报错,这也证明了包名是不能乱取的。



阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页