2010-08-13 72 views
0

我有一個Employee類和Department類。現在在員工中,我有一個部門作爲其成員。部門可以是2類型「HR」或「Admin」。現在我應該聲明部門類型作爲一個單獨的界面中的枚舉,然後應該模擬部門類如下所示?在java中設計類的問題

public interface Myconstants{ 

    enum Depttype{HR,Admin}; 

} 

public class Department{ 

Myconstants.Depttype depttype; 
Department(Myconstants.Depttype depttype){ 
    this.deptype = deptype; 
} 

回答

1

我只是簡單地聲明Department類的枚舉。

public class Department { 

    public enum Depttype{HR,Admin}; 

    private Depttype depttype; 

    Department(Depttype depttype) { 
    this.deptype = deptype; 
    } 
} 
+0

哪種做法會更好?像我所做的那樣在單獨的界面中聲明常量,或者像你做過的那樣? – akshay 2010-08-13 09:01:28

+0

是的,絕對是 – 2010-08-13 09:02:20

+1

在部門課上做得好得多。 – 2010-08-13 09:03:21

0

正如所寫,爲什麼不只是聲明一個枚舉呢?

您正在聲明一個枚舉,然後將它包裝在一個類中,沒有明確的好處。

+0

thanks.Can您可以幫我關於Nicolas發佈的新通信回答 – akshay 2010-08-13 09:16:44

0

我不明白爲什麼枚舉應該是接口的一部分。如果你想要的「部門類型」應該是你的「部門」的特徵,那麼正確的方式似乎是將類別的屬性聲明爲屬性。

+0

好的,謝謝。現在我還有一個疑問。我想在應用程序加載時創建一個HR實例和一個Admin部門實例(控制檯應用程序),並在整個程序中使用這些實例。如何在不同的類中使用相同的實例?例如,我從csv文件讀取一個員工,然後創建一個員工對象。現在創建一個員工對象,我必須使用部門對象。我必須根據從文件中讀取的部門值來設置適當的部門值。如何執行? – akshay 2010-08-13 09:14:30

+0

你似乎對Java很陌生。你應該首先在這裏閱讀教程:http://download.oracle.com/javase/tutorial/java/javaOO/constructors.html,但基本上,要做到這一點,你: 1)閱讀你的文檔,創建類Employee Ë;部門d;' 2)爲每個員工創建'e = new Employee();' 和'd =新部門();' 3)將部門綁定到員工: 'e.setDepartment(d); ' 或取決於您如何製作構造函數: 'e = new Employee(new Department(HR));'' – 2010-08-13 09:26:43

0

我們將enums單獨聲明爲自己的常量目錄中的直接枚舉。 Departmenttype可以在將來在應用程序的其他地方使用?並且將所有常量/枚舉保留在同一個地方,這對開發人員來說很容易。