[英]Accessor and Mutator Methods confusion
好,基本上問題是
Accessor和Mutator方法假設Pet類具有一個名為name的變量/字段,其類型為String>
編寫一個訪問器方法getName()返回name的值在此框中輸入答案
我寫的代碼如下:
public getName(String name)
{
return name;
}
編寫一個變幅方法setName(),其返回類型為void,當寵物更改所有者時,可用於更改name的值。 在此框中輸入答案
我寫如下:
public void setName(int newName)
{
name = newName;
}
我沒有獲得分數似乎很困惑,我得到的錯誤是
Pet.java:9: invalid method
declaration; return type required
public getName(String name)
^ 1 error The output should have been:
getName() works as expected
setName() works
This is what was actually produced:
Exception in thread "main" java.lang.NoClassDefFoundError: Pet
任何想法有什么問題嗎?
您的方法簽名都不正確:
String
,但是您的mutator方法采用一個int
,即整數作為其輸入。 將其切換為字符串,它應該可以工作。 哦,為了澄清一下, 方法簽名是方法的整個聲明,基本上是您為聲明方法而編寫的所有內容:
之所以稱其為簽名,是因為這四個一起形成一個唯一的組合,該組合充當該方法的唯一標識符,並且您需要所有四個都具有一個具有唯一簽名的完全聲明的方法。 訪問器/更改器的整個思想依賴於方法簽名的某種模式,該模式使每個人都可以以預先定義的便捷方式訪問它們。
NoClassDefFoundError通常意味着類路徑出了點問題,您實際上需要將您的類添加到類路徑中才能運行它。
仔細閱讀錯誤消息:“返回類型為必需的公共getName(String name)”。
您的訪問器應為:public String getName(){返回名稱; }
您的更改器應為:public void setName(String newName){name = newName; }
並且您的數據應該像這樣被保護
私有字符串名稱;
我的建議是考慮所有注釋,在JAVA中使用某些IDE進行開發,例如Eclipse ,IDE將最終改善您的開發時間,並避免坑窪。
讀取錯誤消息: return type required public getName(String name)
這意味着您需要該方法的返回類型。 您需要在void之后添加String
,這樣您將擁有:
public String getName(String name)
{
return name;
}
您還需要將setName方法中的int
更改為String
。
並且您需要確保在代碼的開頭創建變量名:
private String name;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.