我有这个java类:
package myClass;
public class myClass
{
private int herAge ;
public void setHerAge (int herAge)
{
this.herAge = herAge ;
}
}
我希望在同一个目录中存在名为Test.java的另一个源文件中编译后导入该类,这里是Test.java包含的内容:
import myClass ;
public class Test
{
public static void main (String []args)
{
myClass Rudaina = new myClass();
Rudaina.setHerAge(30);
}
}
当我编译Test.java时,我在我的控制台中看到了这个:
Test.java:1: error '.' expected
import myClass ;
^
Test.java:1: error '.' expected
import myClass ;
^
答案 0 :(得分:6)
您的班级myClass
也在名为myClass
的程序包中,这可能会导致混淆。
尝试:
import myClass.myClass;
这称为类的完全限定名称。
包用于对概念上相关的类进行分组。拥有以单个类命名的包不是很有用。
您可以在项目名称后面命名您的包裹。例如,你可以命名为
package assignment1;
然后像这样导入你的课程:
import assignment1.myClass;
答案 1 :(得分:2)
虽然每个人写的都是真的,因为这两个文件在同一个目录中,所以不需要导入。
仅供参考,习惯上将班级名称大写。
答案 2 :(得分:0)
您应该使用整个班级名称 - 包括包裹的名称。
答案 3 :(得分:0)
您缺少包名称。试试import myClass.myClass;
答案 4 :(得分:0)
最好在 Test.java 文件顶部放置与下面提到的相同或不同的包名称;
package myClass; //or some other name also viable
然后编译的时候就可以这样了;
javac -d . myClass.java
javac -d . Test.java
-d 指定放置生成的类文件的目的地。您可以使用任何目录名称,如 /home(在 Linux 的情况下)、d:/abc(在 Windows 的情况下)等。如果您想将包保留在同一目录中,您可以使用 .(点)。
然后像这样在Test.java中使用import语句;
import myClass.*;
或
import myClass.myclass;
之后,当你运行测试类时,这样做;
java myClass.Test //myClass in here is package name if you use some different package name use that