gpt4 book ai didi

Java新手问题: classes of the same package accessing one another?

转载 作者:搜寻专家 更新时间:2023-11-01 01:38:51 24 4
gpt4 key购买 nike

这些类属于同一个 pkg。它们在目录中,pkg 的名称。

  • 一般来说,同一个 pkg 中的类如何相互访问?

错误

javac PackTest.java
PackTest.java:8: cannot find symbol
symbol : class PriTest
location: class pacc.PackTest
System.out.println(new PriTest().getSaluto());
^
1 error

PKG pacc 中的类

$ cat PackTest.java 
package pacc;
import java.io.*;

public class PackTest
{
public static void main(String[] args)
{
System.out.println(new PriTest().getSaluto());
}
}
$ cat PriTest.java
package pacc;

public class PriTest
{
public PriTest(){}
private String saluto="SALUTO FROM PriTest";
public String getSaluto(){return saluto;}
}

目录名称的PKG

$  find .. -type d -name "pacc"
../pacc
$ ls ../pacc
makefile PackTest.java PriTest.java
$ ls
makefile PackTest.java PriTest.java

已解决!

$ cat makefile 
p:
javac ./pacc/PackTest.java
java pacc/PackTest
$ make p
javac ./pacc/PackTest.java
java pacc/PackTest
SALUTO FROM PriTest

最佳答案

确保文件位于同一目录中,并与包同名。另外,请确保类路径设置正确。

包模仿目录结构 - 包“org.example.test”中的“Test.java”应该在“org/example/test/Test.java”中找到。

以下为我编译了你的文件:

 $ javac -cp "." *.java

然后我跑了

 $ cd ..
$ java pacc.PackTest

这里没有问题。

顺便说一句,在 Java 世界中,Apache Ant 通常优于 makefile。

关于Java新手问题: classes of the same package accessing one another?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2758799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com