0

Cでは、次のようなデータ構造を作成します。

struct file_data_format
{
  char name[8][20];
  float amp[8];
  int filter[8];
};

extern struct file_data_format f_data;

次に、この構造全体をファイルまたはメモリの場所に読み書きできます。

Javaのクラスでこれを行うにはどうすればよいですか?

4

4 に答える 4

2

質問する前に、Java の基本を読む必要があります。C の構造は、Java のクラスとして記述できます。

public class FileDataFormat implements Serializable {

   String[][] name = new String[8][20];
   float[] amp = new float[8];
   int[] filter = new int[8];

   public FileDataFormat() {

   }

   public void setName(String[][] name) {
      this.name = name;
   }

   public String[][] getName() {
      return this.name;
   }

   // next getters and setters
}

OOP(カプセル化、ポリモーフィズム、継承)を強くお勧めします。

于 2013-03-19T20:39:50.860 に答える
1

他の回答で示されているように、Java の構造体に相当するものは JavaBean です。

ウィキペディアからJavaBean :

  • シリアライズ可能
  • 引数なしのコンストラクターを持つ
  • getter および setter メソッドを使用してプロパティにアクセスできます。

ファイルまたはメモリから読み書きするのは、C ほど単純ではありません。通常、Java オブジェクトのシリアル化を使用して、ファイルまたはバイト配列にアタッチできる ObjectInputStream/ObjectOutputStream にオブジェクトを読み書きします。

于 2013-03-19T20:53:09.840 に答える
1

同様の効果を達成したい場合は、次のことができます。

残念ながら、C で行うように、メモリ内での表現方法をそれほど制御することはできません。

public class file_data_format
{
  public char name[8][20];
  public float amp[8];
  public int filter[8];
}

...

public static void main()
{
    file_data_format fdf = new file_data_format();
    fdf.name = charArrayIGotFromSomewhere
}
于 2013-03-19T20:37:36.683 に答える
1
public class FileDataFormat {
    private String name;
    private float amp;
    private int filter;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public float getAmp() {
        return amp;
    }

    public void setAmp(float amp) {
        this.amp = amp;
    }

    public int getFilter() {
        return filter;
    }

    public void setFilter(int filter) {
        this.filter = filter;
    }

}
于 2013-03-19T20:39:40.653 に答える