如何使用新方法更改属性

时间:2018-10-12 16:54:24

标签: java

有人会因为出现错误而给我任何建议以正确编写以下语句吗? 代码是:

    public class Person{
        private boolean old;


        public Person() throws Exception{       
            old = true;
    }
public boolean isOld() {
            return old;
    }       
private void setOld(boolean old) {
        this.old= old;
    }
public boolean turnOld(boolean old) {
        if (isOld(old)= true) {
            setOld(old)=false;
        }
        else {
            setOld(old)= true;
        }

        this.old= old;
        return old;
    }
}

该错误出现在方法turnOld中,更确切地说出现在setOld和isOld中,并显示“分配的左侧必须是变量” 有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

编译错误消息不言自明:

  

“作业的左侧必须是变量”

这里:

setOld(old)=false;

setOld(...)返回void。您不能为其分配任何值。
您将值分配给变量。
除此之外:

isOld(old)= true

也无法编译,因为isOld()不带任何参数,也没有意义,因为您要为{{1}犯同样的错误而想将true分配给old }:您将值分配给非变量。

您想要的似乎是布尔setOld()字段的切换方法,因此您可以编写:

old

或更简单地说:

public boolean toggleOld() {
    if (isOld() {
        setOld(false);
    }
    else {
        setOld(true);
    }
    return old;        
}