这个问题与需要将类本身(而不是它们的方法或数据)声明为公共的位置有关。
目前我是一个 Java 菜鸟,只用最基本的东西自学。我熟悉其他几种语言,但在 Java 中我只编写了非常基本的程序,比如一个主类(一个文件)中的所有内容。
所以今天我决定尝试一些新的东西,并将类放在单独的文件中。令我惊讶的是,当我将一个类放在一个单独的文件中时,主程序可以访问这个类,即使它没有标记为“public”。
为了一个明确的例子,假设我在一个文件夹中只有两个文件。文件“mainprog.java”包含以下内容:
class mainprog {
public static void main(String[] args) {
hello myHello = new hello();
myHello.sayHello();
}
}
文件“hello.java”包含以下内容:
class hello {
void sayHello() {
System.out.println("Hello world");
}
}
“你好”中没有任何东西被指定为公共的,但这编译和运行得很好
javac mainprog.java
java mainprog
所以我只是想知道类定义在哪里真正需要“公共”?
编辑以添加新信息 如下面的答案所建议的那样,我尝试向每个文件添加“包”语句,以便从不同的包中制作它们。正如预期的那样,除非我将“hello”类和它的方法“sayHello()”都公开,否则对“hello”类的访问被拒绝。谢谢大家。