2016-03-05 33 views
0

我有這個作業要求,並且我已經爲它寫了一個解決方案。但不確定我是否有正確的答案。代碼工作和編譯。Java代碼有效,但不確定是否滿足要求(對象和類)

​​

,這是我的java文件(2文件)

首先是主文件

public class Employee 
{ 
String name; 
int idNumber; 
String department; 
String position; 

public Employee(String emName, int idNum, String depart, String pos) 
{ 
    name = emName; 
    idNumber = idNum; 
    department= depart; 
    position = pos; 
} 

public Employee(String emName, int idNum) 
{ 
    name = emName; 
    idNumber = idNum; 
    department= ""; 
    position = ""; 
} 

public Employee() 
{ 
    name = ""; 
    idNumber = 0; 
    department= ""; 
    position = ""; 
} 

//set name 
public void setName(String nameSet) 
{ 
    name = nameSet; 
} 

//get name 
public String getName() 
{ 
    String nameGet = name; 
    return nameGet; 
} 

//set idnum 
public void setID(int idSet) 
{ 
    idNumber = idSet; 
} 

//get idnum 
public int getId() 
{ 
    int idGet = idNumber; 
    return idGet; 
} 

// 
//set department 
public void setDep(String depSet) 
{ 
    department = depSet; 
} 

//get department 
public String getDep() 
{ 
    String depGet = department; 
    return depGet; 
} 

// 
//set position 
public void setPos(String posSet) 
{ 
    position = posSet; 
} 

//get position 
public String getPos() 
{ 
    String posGet = position; 
    return posGet; 
} 

} 

其次增加了數據和打印數據

 public class Employee_test 
{ 
public static void main(String[] args) 
{ 
    Employee employee1 = new Employee("Susan Meyers", 47899, "Accounting", "Vice President"); 
    Employee employee2 = new Employee("Mark Jones", 39119, "IT", "Programmer"); //use second with Mark 
    //Employee employee2 = new Employee("Mark Jones", 39119); 
    Employee employee3 = new Employee("Joy Rogers", 81774, "Manufacturing", "Engineer"); //use third with Joy 
    //Employee employee3 = new Employee(); 

    System.out.println("Name   ID Number Department  Position"); 
    System.out.println(""); 
    System.out.println(employee1.getName() + " " + employee1.getId() + "  " + employee1.getDep() + "  " + employee1.getPos()); 
    System.out.println(employee2.getName() + "  " + employee2.getId() + "  " + employee2.getDep() + "    " + employee2.getPos()); 
    System.out.println(employee3.getName() + "  " + employee3.getId() + "  " + employee3.getDep() + " " + employee3.getPos()); 
    System.out.println(""); 
} 

} 

這裏的當我運行employee_test文件時輸出。

Output terminal

我是什麼的困惑。

問題說

Make sure you use all three constructors. Use the first constructor with Susan, the second with Mark and the third one with Joy. 

如何,如果這個問題想二號員工使用一個構造函數,只有(姓名,身份證號碼)和第三一副事()的輸出來實現。 在此先感謝。

+1

通過在調用構造函數後使用setName,setID等函數。它們的存在是有原因的,那就是有可能的分配 –

+0

的目的,基本上他們是想你使用'setter'方法與第二和第三Employee對象 –

+0

@JacobH - 所以我應該使用兩個構造函數。然後使用setName,setID,setDep和setPos來實現結果? –

回答

1

使用制定者填寫的其他數據:

Employee employee1 = new Employee("Susan Meyers", 47899, "Accounting", "Vice President"); 

Employee employee2 = new Employee("Mark Jones", 39119); 
employee2.setDep("IT"); 
employee2.setPos("Programmer"); 

Employee employee3 = new Employee(); 
employee3.setName("Joy Rogers"); 
employee3.setID(81774); 
employee3.setDep("Manufacturing"); 
employee3.setPos("Engineer"); 

注意,從設計方面,各個領域應該是private,並ID也應final,因爲ID不會一旦員工改變被建造。如果這個人改變他們的名字(婚姻,證人保護等等)並且其他領域可能不時變化,那麼name字段可以改變。

+0

好的,我已將代碼更改爲您的建議。 - 但我如何設置「ID」爲最終? –

+0

@ Yellow_13'private'是一個字段修飾符,例如'private int ID',但是如果你這樣做了,你必須在構造時提供一個ID值,所以你必須刪除noargs構造函數*或者*在該構造函數中生成一個ID。 – Bohemian

+0

我將employee.java中的所有參數都更改爲「private」 - 該程序仍然有效。並且爲了確定ID,我應該爲每個員工創建3個ID變量? (例如「private final int idNumber1;」)? –

相關問題