Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使一种方法更改另一种方法';s返回语句(布尔)_Java - Fatal编程技术网

Java 如何使一种方法更改另一种方法';s返回语句(布尔)

Java 如何使一种方法更改另一种方法';s返回语句(布尔),java,Java,我想编写一个方法来更改另一个方法的return语句。例如,我有3种方法: openCar closeCar isTheCarOpen:boolean 因此,如果用户调用方法openCar,然后调用方法isTheCarOpen,它应该返回true public void openCar(){ System.out.println(“汽车已打开”); } 公共车辆{ System.out.println(“汽车已关闭”); } 公共布尔值isTheCarOpen(){ 返回false; } 您不会

我想编写一个方法来更改另一个方法的return语句。例如,我有3种方法:

openCar
closeCar
isTheCarOpen:boolean
因此,如果用户调用方法
openCar
,然后调用方法
isTheCarOpen
,它应该返回
true

public void openCar(){
System.out.println(“汽车已打开”);
}
公共车辆{
System.out.println(“汽车已关闭”);
}
公共布尔值isTheCarOpen(){
返回false;
}

您不会更改return语句。您可以更改方法返回的内容。在本例中,您希望在类中有一个表示门状态的布尔值(我们称之为
doorOpened
),并且在调用
openCar
closeCar
方法时设置其值

class Car {
    private boolean doorOpened;

    public void openCar() {
        doorOpened = true;
        System.out.println("Car has been opened");
    }

    public void closeCar() {
        doorOpened = false;
        System.out.println("Car has been closed");
    }

    public boolean isTheCarOpen() {
        return doorOpened;
    }
}

简单:将字段添加到封闭类中,如:

public class Car {
  private boolean doorOpen = false;

  public boolean isDoorOpen() {
    return doorOpen;
  }
现在你的不同方法都可以用了

换句话说:不是对该方法的结果进行硬编码,而是将其“指向”到周围类的某个“内部状态”。在本例中,您可能还有一个方法,如

  public void openDoors() {
    doorOpen = true;
  }

使外部世界能够操纵该状态。

使用适当的getter/setter在您自己的类中创建字段:

 public class Car {
     private boolean carOpen;

     public void openCar() {
        System.out.println("Car has been opened");
        setCarOpen(true);
     }

     public void closeCar() {
        System.out.println("Car has been closed");
        setCarOpen(false);
     }

     public boolean isTheCarOpen() {
        return carOpen;
     }

     public void setCarOpen(boolean carOpen){
        this.carOpen = carOpen;
     }
 }

仅供参考,
布尔值
在声明时默认为false。不需要在构造函数中初始化它。谢谢你,费德里科!我尝试了很多方法来解决这个问题,但都失败了。不客气:)不管你用什么教程/书来学习Java,把它扔掉吧。这显然没有正确地教导你。或者您跳过了一些章节:如果方法明显不正确,那么PWhy是
carOpen
声明的
静态的
boolean carOpen = false;
public void openCar() {
     carOpen = true;
}
public void closeCar() {
     carOpen = false;
}
public boolean isDoorOpen() {
     return carOpen;
}