2012-12-11 35 views
0

我在這裏有一些代碼。我試圖用一個類來引用另一個類,以便我可以獲得該人的名字。我想要main類中的firstName工作,但IDE提到該變量未找到。將'firstName'替換爲'firstName'會工作嗎?如何使用另一個班級的作文來設置姓名?

主要類:

public BasePlusCommissionEmployee(String first, String last, 
      String ssn, double sales, double rate, double salary) { 


     cE = new CommissionEmployee(first, last, ssn, sales, rate); 
     setBaseSalary(salary); 
    } 

public void setFirstName(String firstName) { 
     // Trying to get this to work... 
     cE.setFirstName(first); 
    } 

亞綱:

private String firstName; 
public void setFirstName(String first) 
    { 
     firstName = first; 
    }  
+0

你在哪裏聲明'cE'?告訴我們'BasePlusCommissionEmployee'聲明 –

回答

1

將與「的firstName的工作取代 '第一'?

是的。

public void setFirstName(String firstName) { 
    // Trying to get this to work... 
    cE.setFirstName(first); 
} 

firstName是局部變量在該方法中,並用名稱first變量未在其內定義。

所以,如果你使用first,那將是編譯錯誤。

+0

感謝您回覆 – user1874549

+0

@ user1874549:不客氣。 – Azodious

0

基本上,您希望根據聲明的變量名稱使用setter和getter方法。因此,就你的情況而言,如果主類將「first name」稱爲「first」,那麼最好聲明setFirst(String first)方法。如果你想讓它聲明爲'firstName',那麼你會希望它有setFirstName(String firstName)。 另外,根據你在這裏展示的代碼,它看起來像主類將把CommissionEmployee的實例保存爲'cE',並且它是使用一些參數創建的,你需要在主類中設置setter方法。可以避免在子類中聲明它們。

相關問題