0

私は Java とプログラミング全般に非常に慣れていないため、従業員 (名前、年齢、および部門の属性を持つ。部門は 4 つの列挙値の 1 つにすぎません) を従業員をソートするプログラムにロードする場所を完了するための評価があります。年齢によって、年齢が素数であるかどうかを教えてください。割り当てには、Company、Department、および Employee クラスが必要です。年齢/素数のコンポーネントを把握できると確信しています — アルゴリズムをググる方法を知っています。私が苦労しているのは、すべてのバラバラの断片をまとまりのある全体に入れることです.

これが私がこれまでに持っているものです。私は 1 人の従業員を雇用しましたが、私のやり方は完全に非効率的で効率が悪いように思えます。もっと良い方法があると確信していますが、メンタルブロックにぶつかりました。

編集:以下で指摘されているように、私は不明確でした。私が助けを求めているのは、データ構造の作成です。

会社のクラス:

public class Company {

static Employee one = new Employee();



public static void main(String[] args) {

    one.setName("Counting Guru");
    one.setAge(55);
    one.setDepartment(DepartmentList.ACCOUNTING);


}

}

DepartmentList クラス:

import java.util.EnumMap;
import java.util.Map;
import java.util.Set;
public enum DepartmentList {
ACCOUNTING, MARKETING, HUMANRESOURCES, INFORMATIONSYSTEMS;




public static void main(String[] args) {
Map<DepartmentList,String> 
enumMap=new EnumMap<DepartmentList,String>(DepartmentList.class);
enumMap.put(DepartmentList.ACCOUNTING, "Accounting");
enumMap.put(DepartmentList.MARKETING, "Marketing");
enumMap.put(DepartmentList.HUMANRESOURCES, "Human Resources");
enumMap.put(DepartmentList.INFORMATIONSYSTEMS, "Information Systems");

 Set<DepartmentList> keySet = enumMap.keySet();
 for (DepartmentList department : keySet) {
     String value = enumMap.get(department);
     System.out.println("ENUMMAP VALUE:"+value);
 }
}

}

従業員クラス:

public class Employee {

String empName;
int empAge;
DepartmentList empDept;


Employee() {

}

public String getName() {
    return empName;
}



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



public int getAge() {
    return empAge;
}



public void setAge(int age) {
    this.empAge = age;
}



public DepartmentList getDepartment() {
    return empDept;
}



public void setDepartment(DepartmentList department) {
    this.empDept = department;
}

public Employee(String empName, int empAge, DepartmentList empDept){

}


}

Department クラスもありますが、現在は空です。

私は正しい軌道に乗っていますか?誰かが私にナッジを与えることができますか? ありがとうございました!

4

2 に答える 2

1

Java にプロパティのようなものがあるかどうかを尋ねている場合、いいえ、ありません (少なくともまだ)。Spring などの IOC コンテナーのようなオブジェクトを作成する方法を尋ねている場合は、より適切な選択です。

コードに関して言えば、2 つの異なるクラスに 2 つの主要なメソッドがあります。呼び出されるのは 1 つだけです。静的インスタンスを作成したい場合は、そうする方が良いでしょう

static Employee one = new Employee("Counting Guru", 55, DepartmentList.ACCOUNTING);

また

static Employee one = new Employee();
static {
    one.setName("Counting Guru");
    one.setAge(55);
    one.setDepartment(DepartmentList.ACCOUNTING);
}

列挙型に関しては、コンストラクターをより適切に定義する必要があります

public enum DepartmentList {
    ACCOUNTING("Accounting"), MARKETING("Marketing");

    private String displayName;

    public DepartmentList(String displayName) {
        this.displayName = displayName;
    }

    public String getDisplayName() {
        return diplayName;
    }
 }

Employee コンストラクターでは、フィールド値を引数として受け取った値に割り当てる必要があります。

于 2013-10-23T23:54:14.883 に答える
1

Java プログラム内でデータをハードコーディングしないでください。データをファイルに入れ、データをロードするメソッドを記述します。

プログラムでデータをハードコーディングする必要がある場合は、次のサンプルのようなものを使用します。

public class Employee
{
    String name;
    int age;
    public Employee(String name, int age)
    {
        this.name = name;
        this.age  = age;
    }
    // getters, setters, etc.
}

メインプログラムでは

private static Employee[] empData = 
{
    new Employee("John Smith", 50),
    new Employee("Fred Jones", 25),
    .
    .
    .
};

これで、データ構造に「ロード」できる Employee オブジェクトの静的配列ができました。

于 2013-10-23T23:56:04.093 に答える