是否有可能编译一个文件有多个没有main方法的类?

时间:2017-01-17 14:06:41

标签: java packages

在java中,我们创建一个java文件,该文件应与下面的类名匹配。 但是,如果我想在单个文件中有多个类,而在其他java文件中使用main方法有其他类。 我将如何编译第一个文件,以便使用main方法的类可以使用该代码。

//File 1 A.java
package pack1;
public class A
{
 //code of A
}
public class B
{
 //code of B
}
//end of file A.java

 //File 2 C.java

import pack1.*;
class C extends A
{
  public static void main (String arg[])
 {
  A obj = new A();
 }
}

如果我对这个假设的代码情况我的假设是错误的,请纠正我。

4 个答案:

答案 0 :(得分:1)

  

是的,你可以编译一个java文件,只要它只有1个公共文件   类/枚举/接口。

文件名应与public class / enum / interface名称相同。

在第一个文件中有两个公共类,这是错误的。

答案 1 :(得分:1)

我理解你想要的东西。是不可能的。你不能在一个文件中声明两个公共类,但你可以将calss声明为class。像这样:

//File 1 A.java
package pack1;
public class A
{
//Code of A
    public class B
    {
     //Code of B
    }
}
//end of file A.java

//File 2 C.java

import pack1.*;
class C extends A
{
    public static void main (String arg[])
    {
        A objA = new A();
        // If class C extends A
        B objB = new B();
        // else
        A.B objAB = new A.B();
    }
}

答案 2 :(得分:0)

文件中只能有一个Public class / enum / interface,文件名必须与Public class / enum / interface相同。 它不会给你任何错误。

答案 3 :(得分:0)

是的,这是可能的。

看看继承如何与此Link中的示例一起使用,尤其是“继承示例”

只需确保文件名正好是类的名称,扩展名为.java。例如,如果Java文件中的公共类称为“A”,那么您的文件名应为“A.java”。