在Java中,我们可以将一个类分成多个文件

use*_*949 43 java class

是否有可能使用Java将类划分为多个物理文件?

Jon*_*eet 34

不,整个类必须在Java中的单个文件中.

如果您正在考虑C#的"部分类型"功能,那么Java中没有相应的功能.(如果你没有想到C#,请忽略这个:)


spa*_*spa 10

如果类非常大,以至于实现的概念不容易掌握,那么这可能是一个好主意.我看到两种不同的方法:

  1. 使用继承:将类的一般概念移动到基类,并从中派生专门的类.

  2. 使用聚合:将类的一部分移动到单独的类,并使用引用与第二个类建立关系.

如前所述,Java中没有类似于部分类的概念,因此您必须使用这些OOP机制.


sle*_*ske 6

使用just javac,这是不可能的.您当然可以将多个文件合并到一个.java文件中作为构建过程的一部分,然后调用javac,但这在很多级别上都很麻烦,因此不太可能有用.

也许你可以解释你的问题,然后我们可以帮助更好.

如果您觉得您的.java文件太大,您应该考虑重构.


Gra*_*Nix 5

是的你可以!

为了完成:

从Java 8开始,您有了默认方法的概念。

你可以轻轻类分成多个文件/子AB使用接口

观察:

MyClassPartA.java

interface MyClassPartA{
    public default int myMethodA(){return 1;}
}
Run Code Online (Sandbox Code Playgroud)

MyClassPartB.java

interface MyClassPartB{
    public default String myMethodB(){return "B";}
}
Run Code Online (Sandbox Code Playgroud)

并结合起来:

MyClass.java

public class MyClass implements MyClassPartA, MyClassPartB{}
Run Code Online (Sandbox Code Playgroud)

并使用它们:

MyClass myClass = new MyClass();

System.out.println(myClass.myMethodA());
System.out.println(myClass.myMethodB());
Run Code Online (Sandbox Code Playgroud)

您甚至可以使用抽象的getter和setter在类/文件之间传递变量,这些变量将需要在主类或父类中实现/重写。

  • 荒谬!+1 (2认同)