2012-03-20 139 views
0

是否有一種方法可以使用Eclipse在同一個.java文件中聲明2個類 - 也是編譯器如何區分每個聲明類的.class。使用Eclipse聲明多個類

例如

public class ThisTest 
{ 
    public static void main(String[] args) 
    { 
    } 
} 

class SimpleArray 
{ 

} 

感謝您的時間。

+0

[Java:多個類聲明在一個文件中](http:// stackoverflow。com/questions/2336692/java-multiple-class-declarations-in-one-file) – talnicolas 2012-03-20 19:24:15

回答

1

是的,完全像你的例子。

額外類需要擬非公開

你也可以定義內/嵌套類。在這種情況下,你應該調查的區別

Java inner class and static nested class

public class ThisTest 
{ 
    public static void main(String[] args) 
    { 
    } 


    static class SimpleArray 
    { 

    } 

    class SimpleArray2 {} 
} 
class Buddy {} 

每個班級將位於類似於包目錄中的自己的.class文件。 嵌套類獲取其主機前綴並用'$'分隔。 上述情況導致四類文件

  • ThisTest.class
  • 這項測試$ SimpleArray.class
  • 這項測試$ SimpleArray2.class
  • Buddy.class

只是檢查垃圾桶或者你的eclipse項目的classes文件夾。

+0

這是偉大的斯特凡!謝謝你的幫助 !!我希望我能投票,但我不能!謝謝。 – Sinan 2012-03-20 19:36:13

+0

@Sinan也許你還不能投票,但你可以[標記此帖作爲答案](http://meta.stackexchange.com/a/5235) – 2012-03-20 22:32:59

+0

這個答案不回答第二個問題,雖然,關於類文件名。 – aioobe 2012-03-22 12:44:18

3

有對使用Eclipse

是相同的.java文件中聲明2班的方式,你可以在一個單一的.java文件中定義的幾類,但也有可能在最一個公開的在每個文件中的類。 (正如你的例子)

請注意,如果你有一個.java文件中的公共類,該類的名稱必須與.java文件的名稱相同。

編譯器如何區分每個聲明類的.class。

.class文件的名稱不取決於.java文件的名稱,而取決於類聲明的標識符。

如果你在一個名爲Classes.java文件有

class A {} 
class B {} 

,因此當你編譯它得到A.classB.class

+0

謝謝,但我的問題是有辦法做到這一點!你可以從上面的代碼中看到,Class thisTest是declare public,而Class SimpleArray是默認聲明的! – Sinan 2012-03-20 19:28:23

+0

謝謝你的解釋是真的有幫助..現在我有2個類聲明在同一個文件我得到了編譯錯誤「公共類型類ThisTest應該在自己的文件中定義」?任何解決方案? – Sinan 2012-03-20 19:32:45

+0

是的,*如果您有一個公共類,則該類的名稱必須與.java文件名相同。 – aioobe 2012-03-20 19:41:11