Javaが初めてで、Cで構造体のような情報を保存する方法を見つけようとしています。たとえば、従業員を雇用するプログラムが必要です。ユーザーから取得しますユーザーは条件に基づいてその情報を表示できます(たとえば、データベースに複数の従業員がいる場合)。これを行う最良の方法はありますか?
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);
次のように、パブリックフィールドとデフォルトコンストラクターを持つパブリッククラスを作成します。
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";
Javaでサポートされていない構造には大きな問題があります。私はAndroid組み込みのARMベースのデバイス(「C」で記述)からデータを受信するAndroid $ ===アプリを作成しています。このデータは受信時にパックされます組み込みデバイスのEEPROMの内容を含むバイトの配列。
「C」、C++、または「C#」では、このバイトストリームを組み込みデバイスのEEPROMを表す構造に単純に「キャスト」し、構造のメンバーを参照するだけでプログラムで使用できます。 Javaでは、このオプションはありません。また、Java(パッククラスをサポートするあいまいなIBMバージョンを除く)では「パック」を使用できないため、これを行う良い方法はありません。クラスメンバーがヘッダーとフッターなしで各クラスメンバーにパックされているクラス。