2012-03-20 142 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