0

In C I would create a data structure as below:

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

extern struct file_data_format f_data;

Then I could read or write this whole structure to a file or memory location.

How would I do this in a class in 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

如果你想达到类似的效果,你可以执行以下操作。

不幸的是,您无法像在 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 回答
1

正如其他答案向您展示的那样,Java 中结构的等价物是 JavaBean。

来自Wikipedia的 JavaBean :

  • 是可序列化的
  • 有一个 0 参数的构造函数
  • 允许使用 getter 和 setter 方法访问属性。

要从文件或内存中写入和读取它,它不像在 C 中那么简单。您通常会使用Java 对象序列化将对象写入/读取到 ObjectInputStream/ObjectOutputStream,它可以附加到文件或字节数组。

于 2013-03-19T20:53:09.840 回答