2015-11-03 45 views
1

的對象,我們剛剛進入的對象和我碰到一個問題就來了。考慮下面的類我創建...的Java:創建從

public class employee{ 
    String name; 
    int waiting_time; 
    int retaining_time; 

    public employee(String name) 
    { 
     this.name=name; 
    } 

    public void setWaitingTime(int waitingtime) 
    { 
     waiting_time = waitingtime; 
    } 

    public int getWaitingTime() 
    { 
     return waiting_time; 
    } 

    public void setRetainingTime(int retainingtime) 
    { 
     retaining_time = retainingtime; 
    } 

    public int getRetainingTime() 
    { 
     return retaining_time; 
    } 
} 

我想要編寫創建該類的實例,然後設置waiting_timeretaining_time0只有它創造了第一時間的函數。這兩個值將在稍後的程序中添加/減少,但在開始時它們必須爲0

public static void addEmployee(String aName) 
{ 
    employee anEmployee = new employee(); //error here says library.employee() is undefined? 
} 

我究竟做了他們是如何在我們的書做了,不知道我要去哪裏錯了。謝謝您的幫助!

+0

那是哪裏'.addEmployee()'方法一樣嗎?在什麼課上?另外,你是如何編譯這個項目的?使用'javac'?使用IDE(日食)? – acdcjunior

回答

4

如果添加此構造

public employee(String name) 
{ 
    this.name=name; 
} 

有沒有參數沒有默認構造函數。如果你自己不寫任何構造函數,那麼只會爲你生成一個默認的構造函數。如果你想除了這個其他一個沒有參數的構造函數,你必須將它添加

public employee() { } 

順便說一句,在Java類通常與一個大寫字母開頭。

+0

好了,所以它會更有意義有一個默認的構造函數'公務員(){}',再創造的東西,如'setName'和'getName'的名稱,而不是我了? – Bob

+0

我通常會設置一個構造函數來設置所有的字段,然後只提供get方法。有很多寫作課程的方式,所以你可以選擇你想要的方式。 –

+0

是有道理的,然後它的實例調用也只是'員工anEmployee =新員工()''然後anEmployee.setName(「鮑勃」)'或類似這種事情? – Bob

0

您的類唯一的構造函數需要一個字符串作爲參數。您需要將字符串作爲參數傳遞:

employee anEmployee = new employee(aName); 
+0

這就是我認爲會工作,但它給了我一個錯誤 - 沒有封閉的類型庫的實例可訪問。 – Bob

1

添加下面的構造函數在類

public employee() 
{ 
    this.waiting_time=0; 
    this.retaining_time=0; 
} 

的錯誤是由於沒有默認構造函數爲你添加另一個構造。由於您想將waiting_timeretaining_time設置爲0;所以我剛纔做的這個構造

+0

然後我只需創建一個setName和getName? – Bob

+0

@ user38254你能做到這一點,或者你可以使用你通過傳遞字符串對象創建的構造簡單地創建你的對象,並設置'waiting_time'和'retaining_time'在它 –