2016-04-06 15 views
2

我很困惑,什麼這就是所謂的在Java中,什麼這樣做:類支架之外編寫的Java類

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

    }//end SampleMenuListener 

我研究的內部類,並知道如何使用匿名內部類,但是我知道這是不是一個和一些谷歌搜索後,我無法弄清楚這是什麼在Java中調用。所以我的問題是這個叫什麼?在Eclipse中,類C出現在類SampleMenuListener旁邊。那麼這與在同一個項目文件夾中創建一個名爲SampleMenuListener的新類並在MainFrame中創建它的實例基本相同?如果是這樣的話,這只是簡單的寫一個類而不在eclipse中分開的簡單方法嗎?或者它有些不同,它有什麼不同?絕對隨意張貼鏈接,因爲這可能是一個愚蠢的問題,但就像我說我似乎無法谷歌正確的關鍵字來獲得結果這是什麼,這是在Java中調用。

+2

如果'class'不需要是'public',則可以將它寫入正在使用的文件中。不考慮Eclipse或任何IDE。 –

回答

0

這是一個普通的類,它只是寫在同一個.java文件中。 唯一的區別是隻允許有一個公共類(因爲文件名需要與公共類相同)

+0

不是真的超級類。其他班級不擴展它。 –

+0

我已經更新了我的答案,我在正常課程的背景下說超級,可以用作任何基於可見性的超級任務 – Alok

3

通常,我們想說Java每個代碼文件只能有一個類,並且源文件必須爲班級命名。這不完全正確。實際的規則是每個代碼文件只能有一個公開類。你可以有任意多的(但請不要......),只要其中不超過一個是public

其他必須是包訪問(無訪問說明符)。請參閱the relevant documentation.

在您的示例中,SampleMenuListener與其他任何一個簡單相似,都是class