有两个简单程序,他们放在同一目录下:
1.
//filename:test.java
import show;
public class test {
public static void main(string[] args) {
show sungo = new show();
sungo.myname();
}
}
2.
//filename:show.java
public class show{
public void myname(){
system.out.println("my name is helloworld!");
}
}
编译show.java后,再编译test.java出现下面的错误提示
———- javac ———-
test.java:3: . expected
import show;
^
1 error
输出完成 (耗时 1 秒) – 正常终止
——————————-
将test.java文件中
import show;语句注释掉以后,将编译通过,执行java test.class ,
———- java ———-
my name is helloworld!
输出完成 (耗时 0 秒) – 正常终止
—————————-
java编译时搜索classpath.在classpath中已经设置了“ .;” 即当前目录。编辑器自动寻找当前目录中包含的类,如果存在即执行,而加入了 import show;实属多此一举,以前以为这样不会有什么问题,也没有看到有书上说明这个存在问题。通过上面的测试,发现不该做的就不要做,徒劳无益。上面的问题是在一个所谓的权威书籍的样例中发现的,也不知道该书作者是否做个测试,或者他用的是另外一个星球的jdk版本。
另package 和import的简单实例
新建dir文件夹,将show.java 放入该文件夹下编译。
//filename:test.java
import dir.show;
public class test {
public static void main(string[] args) {
show sungo = new show();
sungo.myname();
}
}
//filename:show.java
package dir; //新增的部分
public class show{
public void myname(){
system.out.println("my name is helloworld!");
}
}
执行结果
———- java ———-
my name is helloworld!
输出完成 (耗时 0 秒) – 正常终止
—————————-
