web-dev-qa-db-ja.com

Javaでデータ構造のような構造を作成する

Javaが初めてで、Cで構造体のような情報を保存する方法を見つけようとしています。たとえば、従業員を雇用するプログラムが必要です。ユーザーから取得しますユーザーは条件に基づいてその情報を表示できます(たとえば、データベースに複数の従業員がいる場合)。これを行う最良の方法はありますか?

11
bardockyo

JavaのクラスのようにCの構造体は、はるかに強力です。なぜなら、Javaのクラスはメソッドを含むことができ、C++は新しいクラスを作成するからです。 。 例えば :

   class Employee {
       private String name;
       private int code;

   // constructor
   public Employee(String name, int code) {
      this.name = name;
      this.code = code;
   }

       // getter
       public String getName() { return name; }
       public int getCode() { return code; }
       // setter

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

また、複数の従業員を作成する場合は、Cのように配列を作成します。

Employee[] arr = new Employee[100];  // new stands for create an array object
arr[0] = new Employee("Peter", 100); // new stands for create an employee object
arr[1] = new Employee("Mary", 90);
22
hqt

次のように、パブリックフィールドとデフォルトコンストラクターを持つパブリッククラスを作成します。

    public class Employee {
       public String name, last_name;


   // constructor
   public Employee() {
      this.name = "";
      this.last_name= "";
   }


    }

  ....
  //when using it
  Employee e = new Employee();
  e.name ="Joe";
  e.last_name = "Doe";
1
Salvo

Javaでサポートされていない構造には大きな問題があります。私はAndroid組み込みのARMベースのデバイス(「C」で記述)からデータを受信するAndroid $ ===アプリを作成しています。このデータは受信時にパックされます組み込みデバイスのEEPROMの内容を含むバイトの配列。

「C」、C++、または「C#」では、このバイトストリームを組み込みデバイスのEEPROMを表す構造に単純に「キャスト」し、構造のメンバーを参照するだけでプログラムで使用できます。 Javaでは、このオプションはありません。また、Java(パッククラスをサポートするあいまいなIBMバージョンを除く)では「パック」を使用できないため、これを行う良い方法はありません。クラスメンバーがヘッダーとフッターなしで各クラスメンバーにパックされているクラス。

0
Fred E