新しいクラス ファイルの作成を回避する Java で新しいデータ構造を作成する良い方法があるかどうか疑問に思っています。この投稿によると、 Cの struct に対する Java の等価物は単なるクラスです。ただし、ポイントのx、y座標など、いくつかのパブリックフィールドを持つだけのクラス用にまったく新しいファイルを作成するのは冗長だと思います。Cでは、データ構造はそれを使用する .c ファイル内で定義できます。これははるかに単純です。これは実際にJavaで唯一の方法ですか?
4 に答える
内部/ネストされたクラスを使用できます。.java ファイルは 1 つしかありませんが、ネストされたクラスはすべて、コンパイル時に独自の .class ファイルを持ちます。
データ構造が必要な場合は、クラスを作成する必要があります。複数の .java ファイルを作成しないようにするために、それらのクラスを 1 つの .java ファイルに入れることができます。仮定すると、Test.java-
public class Test {
class InnerOne {
}
void m() {
class InnerMost {
}
}
}
class Dummy {
}
class OnMore {
}
1 つの .java ファイルにいくつかの小さな補助クラスを作成できますが、パブリックにすることはできません。たとえば、名前がファイルに対応するパブリック クラスと、パブリックではないいくつかのヘルパー クラスを作成できます。
Java のデータ構造ごとのクラスに関しては、Java には抽象データ型を作成する方法が 1 つしかありません。クラスに満足できない場合は、Scala などの他の JVM 言語を使用してみてください。この点でははるかに柔軟です。
Java はオブジェクト指向プログラミング言語であるため、すべてがクラスで機能し、C のように Java でプログラミングしようとするべきではありません。
クラス内でデータ構造を定義する場合は、InnerClassを使用する必要があります。公式ドキュメントに良い例があります。