此问题涉及类本身(而不是它们的方法或数据)需要声明为公共。什么时候在课堂定义中需要“公开”?
目前我是一个Java noob,自学只是非常基础。我熟悉其他几种语言,但在Java中,我只写了非常基本的程序,就像在一个主类(一个文件)中的所有内容一样。
所以今天我决定尝试一些新东西,并把课程放在单独的文件中。让我感到意外的是,当我将课程放在单独的文件中时,即使课程没有标记为“公开”,主课程也可以访问此课程。
为了一个明确的例子,可以说我有只是两个文件在一个文件夹中。文件“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
所以我只是想知道类定义真的需要“公共”吗?
编辑添加的新的信息 正如答案下面的建议,我尝试添加一个“一揽子”语句的每个文件,以便从不同的封装使之。正如预期的那样访问类“你好”,然后被拒绝,除非我做了两个类“你好”和它的方法“的sayHello()公开的。谢谢大家。
public class is visible *在包外*他们在 – 2013-03-24 15:57:14
中声明http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html – 2013-03-24 15:58:00