Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何导入我自己的类?_Java_Import_Package - Fatal编程技术网

Java 如何导入我自己的类?

Java 如何导入我自己的类?,java,import,package,Java,Import,Package,我有一个java类: package myClass; public class myClass { private int herAge ; public void setHerAge (int herAge) { this.herAge = herAge ; } } 我想在另一个名为Test.java的源文件中编译后导入这个类,它存在于同一个目录中,下面是Test.java包含的内容: import myClass ; public cl

我有一个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 ;
                ^

您的类
myClass
也在名为
myClass
的包中,这可能会导致混淆

尝试:

这称为类的完全限定名

包用于对概念上相关的类进行分组。以单个类命名包不是很有用

您可以用项目名称命名包。例如,你可以命名它

package assignment1;
然后像这样导入类:

import assignment1.myClass;

您应该使用整个类名—包括包的名称。

您缺少包的名称。尝试导入myClass.myClass

虽然每个人写的都是真的,但由于两个文件位于同一目录中,因此不需要导入


仅供参考,通常将类名大写。

最好将相同或不同的包名放在Test.java文件的顶部

package myClass; //or some other name also viable
当你编译的时候,你可以这样做

javac -d . myClass.java
javac -d . Test.java
import myClass.*;
java myClass.Test  //myClass in here is package name if you use some different package name use that
-d指定放置生成的类文件的目标位置。您可以使用任何目录名,如/home(在Linux中)、d:/abc(在windows中)等。如果您希望将包保存在同一目录中,可以使用。(点)

然后像这样在Test.java中使用import语句

javac -d . myClass.java
javac -d . Test.java
import myClass.*;
java myClass.Test  //myClass in here is package name if you use some different package name use that

之后,当您运行测试类时,请执行以下操作:

javac -d . myClass.java
javac -d . Test.java
import myClass.*;
java myClass.Test  //myClass in here is package name if you use some different package name use that

我如何做到这一点?使用包的整个结构-从第一个包开始。如果您的类位于3个包中,请编写“import package1.package2.package3.ClassName;”。在你的例子中,它看起来像“导入myClass.myClass;”。非常感谢你,我的朋友,但是我还有一个问题,如果我想导入myClass而不打包它,我必须做什么?你不需要为你的类定义包。只是不要使用一个:)