【发布时间】:2020-01-18 21:03:40
【问题描述】:
以下是任务要求:
- 该类应该有一个构造函数,它接受两个参数:人名的字符串值和人年龄的整数值。
- 创建一个返回人名和年龄的 toString 方法。值必须用空格隔开。
- 创建 getName 方法 () 和 getAge () 方法以返回人的姓名和年龄。
- 创建 growOlder (nYears) 方法以将人的年龄增加 nYears(整数)。
- 在growOlder(nYears)方法中,必须保证nYears的值为正值。在正值(包括零值)时,应增加人的年龄,并且该方法应返回值 true(表示值的更改已完成)。如果 nYears 的值为负数,则不应发生年龄变化,并且该方法应返回值 false(表示未发生值变化)。
注意:为任务提供 nYears = 13 这就是我们的代码将被测试的内容:
到目前为止,我有以下代码并且它可以工作,但是由于“return”关键字,我无法完成它。
public class Person{
private String name;
private int age;
private int getOlder;
public Person(){
this("Otto", 25);
}
public Person( String name, int age ){
this.name = name;
this.age = age;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
public int growOlder(int nYears){
if(nYears >= 0){
age = age + 13;
System.out.println("true");
}else{
System.out.println("false");
}
return nYears; //ERROR
}
public String toString( ){
return getName() + " " + getAge();
}
}
我应该得到如下结果:
Otto 25
true
Otto 38
false
Otto 38
但是通过这段代码,我得到了这些结果:
Otto 25
true
13
Otto 38
false
-13
Otto 38
如果我不放置返回值或返回值,则会产生错误。我真的不知道在这里做什么。提前谢谢!
【问题讨论】:
-
您的意思是
return age;而不是return nYears;? -
为什么
age总是加13,private int getOlder;的目的是什么? -
只需将getOlder的方法返回值改为void,去掉“return nYears;”语句即可
-
您的代码不完整;你的方法没有印度尼西亚的代码。
-
@ErwinBolwidt "...印度尼西亚 y ..." - 嗯...泰国 x? :)
标签: java return return-value