Java中未声明的类是公开的吗?

时间:2013-04-24 15:35:54

标签: java

我开始学习java并在Eclipse中创建了我的第一个hello world函数。我注意到以下两个函数,都在我的java项目的src文件夹的默认包中,似乎做了同样的事情:

class HelloWorld {
    public static void main(String[] args){
        System.out.println("Hello World!");
    }
}

public class HelloWorld {
    public static void main(String[] args){
        System.out.println("Hello World!");
    }
}

两者都成功打印'Hello World!'到控制台。

我已经阅读了一些关于不同类类型的内容,但我不确定我将用第一个函数声明什么类型的类。这两个功能有什么区别? java是否会在第一种情况下公开我的hello world class?

4 个答案:

答案 0 :(得分:10)

Class未声明为publicpackage protected,这意味着class只能在该包中访问。

stackoverflow上对acccess修饰符的非常有用的总结。更多oracle

示例:

因此,假设您有以下包结构:

com
  stackoverflow
    pkg1
      public Class1
      Class2
    pkg2
      OtherClass

Class2只能由Class1使用,但不能由OtherClass

使用

答案 1 :(得分:1)

关于课堂知名度的全部内容!

可以使用修饰符public声明一个类,在这种情况下,该类对所有类都可见。如果一个类没有修饰符(默认值,也称为包私有),它只在自己的包中可见

http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

答案 2 :(得分:1)

这花了我大约2秒钟在Google上找到:

http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

在回答您的问题时,默认修饰符为package protected,这意味着它只能在包中访问,但下次请在发布问题之前进行一些研究,因为它花了您更多时间来编写问题是它必须搜索

答案 3 :(得分:0)

它是受保护的类,您无法在package旁边访问该类。

如果您未通过默认受保护

指定任何内容