[英]Why can't I return a value from a void function in Java?
更正方法getAge()的以下錯誤定義
public void getAge()
{
return age;
}
在此處粘貼您的答案:
public int getAge(int age)
{
return age;
}
標記:1之0
評論:
* Test 1 (0.0 out of 1)
Person.java:15: getAge(int) in Person cannot be applied to ()
String s = (p.getAge() == 16 ? "getAge() Correct" : "getAge() not Correct");
^
1 error
The output should have been:
getAge() Correct
This is what was actually produced:
Exception in thread "main" java.lang.NoClassDefFoundError: Person
而不是(int age)是否要我將其替換為String?
我相信您要尋找的正確代碼是:
public int getAge()
{
return age;
}
基本上說getAge()不需要參數(您的錯誤是,您傳入了一個整數參數),它將返回一個int類型的值。
不,它希望您提供正確的返回類型!
public int getAge()
{
return age;
}
只需在命令行(或類似的IDE)中使用Java編譯器即可了解發生了什么。 (您似乎只是在將代碼粘貼到學校的家庭作業測試工具中,並得到了隱秘的錯誤。)
這是什么意思?
This is what was actually produced:
Exception in thread "main" java.lang.NoClassDefFoundError: Person
這意味着作業測試工具嘗試編譯您的Person
類,但無法編譯(參見下文),然后測試工具運行並且找不到Person類(因為它未編譯)。
這是問題所在:
public void getAge()
{
return age;
}
返回void
的方法無法返回值。 (如果您使用過javac ,則編譯器會告訴您。)
因此,年齡是一個整數,您需要返回它:
public int getAge()
{
return age;
}
不,它不需要參數。 您返回對象的屬性值(在這種情況下為p)。
我認為問題是,它嘗試將應用getAge(int)
函數來調用getAge()
返回並再次考慮getAge
試圖做什么,以及它需要做什么信息(參數)。 然后重寫您的函數定義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.