【发布时间】:2011-11-29 19:45:26
【问题描述】:
好的,所以一个java源文件必须至少有一个公共类并且文件应该被命名为“class-name.java”。很公平。
因此,如果我有一个类,那么以下将编译:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.
}
}
但让我烦恼的是,如果我从上面的代码中删除“公共”访问修饰符,代码仍然可以编译。我只是不明白。去掉它,代码如下:
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.
}
}
在上面的代码中,由于我删除了public 访问修饰符,我的类具有default 或package 访问权限,即不能从外部访问它,只能从包内访问。
所以我的问题是,上面的代码是如何编译的?在这种情况下,文件 HelloWorld.java 没有 public HelloWorld 类(只有包私有的 HelloWorld.class),因此据我了解不应编译。
【问题讨论】:
-
"java 源文件必须至少有一个公共类" 呃不,it doesn't need to have anything at all.
标签: java