簡體   English   中英

為什么我不能從Java中的void函數返回值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM