展开全部
在set方法内做控制是32313133353236313431303231363533e4b893e5b19e31333337383933为了保证数据的准确性。考虑你刚学,可以修改set方法的返回值。public boolean setAge(int age) {
if(age 130) {
return boolean;
}
this.age = age;
return true;
}
//调用时,如果返回false
if(!obj.setAge(age)) {
System.out.println("年龄不合法");
}
不是很明白你要什么样的效果,如果参数不符条件,则不做初始化,可以这样写。Person person = null;
if(age 130) { // 和性别判断
System.out.println("年龄不合法");
}else {
person = new Person(name, gender, age)
}
public Person(String name,String gender,int age){
setName(name);
setGender(gender);
setAge(age);
}
编写代码的方式有很多种,但结果都是一样的。你设置的条件却仍能初始化只能证明你的问题问错了。
以下两种情况无非是代码一行在前一行在后的问题:
1、性别和年龄不正确时不允许初始化,验证写在你new Person之前。
2、可以初始化,但直到符合条件才显示信息。
而你要做的是在输错之后该做什么,但一定不是继续显示信息。