2009-10-28 227 views
0

正确的方法getAge()下列错误定义为什么我不能从Java中的void函数返回值?

public void getAge() 
{ 
    return age; 
} 

在这里你的答案贴:

public int getAge(int age) 
{ 
return age; 
} 

马克:0出1

评论:

* 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年龄)它是否要我用一个Strin替换它G?

+0

只是删除了参数,并挑选'this.age'。 – Davio 2015-02-01 13:05:42

回答

2

不,它希望你给它正确的返回类型!

public int getAge() 
{ 
    return age; 
} 
+0

他有返回类型的权利,只是错误的论点。 – Tim 2009-10-28 23:04:23

+0

有什么论点?这个访问器没有任何争论!这是指定的错误返回类型(void)! – ennuikiller 2009-10-28 23:08:22

+0

他得到了一半的答案。他将返回类型从void更正为int,但忽略删除访问器方法的“int age”参数。 – 2009-10-29 01:45:01

0

不,它不需要参数。您返回对象属性的值(在这种情况下为p)。

4

我相信你正在寻找正确的代码是:

public int getAge() 
{ 
    return age; 
} 

基本上说getAge()不需要任何参数(如果你的错误是,你有一个整数参数传递的),它会返回一个int类型的值。

0

我认为问题在于它试图将getAge(int)函数应用到getAge()的调用中。回去再想想getAge正在做什么,以及它应该需要做什么信息(参数)。然后重写你的函数定义。

1

只需在命令行(或体面的IDE)中使用java compiler即可了解发生了什么。 (你似乎只是在你学校的家庭作业测试工具中粘贴代码,并得到神秘的错误。)

这是什么意思?

This is what was actually produced: 
     Exception in thread "main" java.lang.NoClassDefFoundError: Person 

这意味着功课测试工具试图编译您Person类,它不能(见下文),然后测试工具跑,找不到一个Person类(因为它没有编译) 。

这里的问题是:

public void getAge() 
{ 
    return age; 
} 

返回void的方法不能返回值。 (如果您用过javac,编译器会告诉你的。)

所以,年龄是一个int,你需要返回它:

public int getAge() 
{ 
    return age; 
} 
相关问题