在同一个包中创建 class 个对象

Create Object of class in same package

我创建了一个 class HT17

package useFul;
class HT17 
{
    void show() 
    {
        System.out.println("Hello World!");
    }
}

我尝试从同一个包中的另一个 class 访问它

package useFul;
class HT18
{
    public static void main(String[] args) 
    {
        HT17 h =new HT17();
        h.show();
    }
}

但我收到错误消息:找不到符号 HT17 是的,它们在同一目录中,即 useFul 解决方案会很有帮助!

很可能您正在使用 javac <file name> 这将在同一文件夹中创建 class 文件,即使您定义了包。

因此您必须使用 javac -d . 选项,这将为 classes 创建正确的文件夹结构。请尝试以下操作。

$ javac HT17.java -d .
$ javac HT18.java -d .
$ java useFul.HT18

-d 用于提及在何处使用 package 创建具有适当文件夹结构的已编译 classes。在示例中使用 .,表示使用当前目录。

首先创建一个名为useFul的文件夹并将类复制到那里,然后cmd编译和运行。命令:

 javac useFul/HT18.java
 java useFul/HT18