吸气剂和二传手问题

时间:2014-10-20 05:25:11

标签: java return setter getter

我是新手,也是Java新手。我有一个Java作业,这就是问题:

该课程应具备以下方法:

  1. 没有参数的构造函数,将名称初始化为" unknown",尿素和蛋白质水平为0.0,出血历史值为false。
  2. 接收名称和出血历史参数并将尿素水平和蛋白质水平初始化为0.0的构造函数。
  3. 所有实例变量的获取者
  4. 所有实例变量的setter,并对其进行验证 以下内容:

    • 名称不能为空

    • 尿素水平必须介于0到10之间(含)

    • 蛋白质水平必须介于0和150之间(含)

  5. 如果传入setter的任何值无效,则不要更改实例变量的值并返回false。

    这是实例变量:

    public class Patient {
    
        private String name;
        private boolean bleedingHistory = true;
    
        private double ureaLevel;
        private double proLevel;
    

    所以我的问题是如果输入值不正确,如何返回上面的实例变量。

1 个答案:

答案 0 :(得分:2)

这很简单,只需确保你的setter中有if语句来验证输入。如果验证失败,请不要更改变量;相反,抛出IllegalArgumentException让调用者知道名称没有改变。 (信用:@ADTC)

例如,这是患者姓名的设定者:

public void setName(String newName)  throws IllegalArgumentException
{
    if(newName != null && !newName.isEmpty()) 
    {
        this.name = newName;
    } 
    else 
    {
        throw new IllegalArgumentException();
    }
}

if语句评估的内容是:“如果newName null newName 为空,然后我们会将this.name替换为newName。否则,我们会抛出new IllegalArgumentException()。“

注意如果if语句的计算结果为true,变量name将替换为newName,但是,如果它的计算结果为false,则抛出{ {1}}。如果要在代码中调用此方法,则应在try-catch语句中调用它,如下所示:

IllegalArgumentException