在类括号外编写的Java类

时间:2016-04-06 03:26:40

标签: java eclipse class

我对Java中的内容以及它的作用感到困惑:

    public class MainFrame(){
        public static void main(String[] args{
            //etc.
        }    
    }//end class
    class SampleMenuListener implements MenuListener(){

    }//end SampleMenuListener

我研究了内部类并且知道如何使用匿名内部类但是我知道这不是一个,经过一些谷歌搜索我无法弄清楚这在Java中是什么。所以我的问题是什么叫做这个?在Eclipse中,Class C出现在SampleMenuListener类的旁边。那么这与在一个名为SampleMenuListener的同一个项目文件夹中创建一个新类并在MainFrame中创建它的实例基本相同吗?如果是这样,这只是一种简单的方式来编写另一个类而不会在eclipse中将它分开?或者它有些不同,它有何不同?绝对可以随意发布链接,因为这可能是一个愚蠢的问题,但就像我说我似乎无法谷歌正确的关键字来获得Java中所谓的结果。

2 个答案:

答案 0 :(得分:3)

通常,我们喜欢说Java每个代码文件只能有一个类,并且必须为该类命名源文件。这不完全正确。实际的规则是每个代码文件只能有一个 public 。您可以拥有任意数量的(但请不要......),只要其中只有一个public

其他必须是包访问(无访问说明符)。见the relevant documentation.

在您的示例中,SampleMenuListener只是class,与其他任何内容一样。

答案 1 :(得分:0)

这是一个普通的类,它只是用同一个.java文件编写的。 唯一的区别是只允许一个公共类(因为文件名必须与公共类相同)