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

Java中未声明的类是公共的吗?,java,Java,我开始学习java,并在Eclipse中创建了我的第一个hello world函数。我注意到,我的java项目中src文件夹的默认包中的以下两个函数似乎做了相同的事情: class HelloWorld { public static void main(String[] args){ System.out.println("Hello World!"); } } 及 两人都成功打印了“你好,世界!”到控制台 我已经读了一些关于不同类类型的书,但是我不确定我将用

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

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

两人都成功打印了“你好,世界!”到控制台


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

如果不声明自己为
公开
则受
包保护
,这意味着
只能在该包中访问

上访问修饰符的非常有用的摘要。更多

示例:

假设您有以下包结构:

com
  stackoverflow
    pkg1
      public Class1
      Class2
    pkg2
      OtherClass

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

使用,这是关于类可见性的

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


它是受保护的类,您不能在
包之外访问该类


如果您没有指定任何受默认保护的内容,我花了大约2秒钟在Google上找到:


在回答您的问题时,默认的修饰符是
软件包保护的
,这意味着它只能在软件包内访问,但下次请在发布问题之前做一些研究,因为您需要花费更多的时间来编写需要搜索的问题

它们是软件包专用的
com
  stackoverflow
    pkg1
      public Class1
      Class2
    pkg2
      OtherClass