在同一个包中创建 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
我创建了一个 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