Java 方法接受参数并返回布尔值

Java 方法接受参数并返回布尔值,java,Java,这里有点迷路了,似乎什么都没用。我已经阅读了关于返回方法的章节,但我就是不能让它工作 基本上,我必须创建一个接受公园参数的方法,我有一个叫做Park的类,它有布尔人、野餐、操场、网球和游泳池的二传手和传接手,如果公园有,它们基本上会被声明为真或假。如果公园有野餐和游乐场设施,它还需要返回布尔值 以下是我到目前为止的情况: 公园类: public class Park { private String parkName; private int parkAcres; p

这里有点迷路了,似乎什么都没用。我已经阅读了关于返回方法的章节,但我就是不能让它工作

基本上,我必须创建一个接受公园参数的方法,我有一个叫做Park的类,它有布尔人、野餐、操场、网球和游泳池的二传手和传接手,如果公园有,它们基本上会被声明为真或假。如果公园有野餐和游乐场设施,它还需要返回布尔值

以下是我到目前为止的情况:

公园类:

public class Park {

    private String parkName;
    private int parkAcres;

    private boolean picnicFacilities;
    private boolean tennisCourt;
    private boolean playground;
    private boolean swimmingPool;


    public String getParkName() {
        return parkName;
    }

    public void setParkName(String parkName) {
        this.parkName = parkName;
    }

    public int getParkAcres() {
        return parkAcres;
    }

    public void setParkAcres(int parkAcres) {

        if (parkAcres < 0 || parkAcres > 400) {
            System.out
                    .println("You have entered an invalid acre amount, it has been defaulted to 0");
            parkAcres = 0;
        }

        this.parkAcres = parkAcres;
    }

    public boolean isPicnicFacilities() {
        return picnicFacilities;
    }

    public void setPicnicFacilities(boolean picnicFacilities) {
        this.picnicFacilities = picnicFacilities;
    }

    public boolean isTennisCourt() {
        return tennisCourt;
    }

    public void setTennisCourt(boolean tennisCourt) {
        this.tennisCourt = tennisCourt;
    }

    public boolean isPlayground() {
        return playground;
    }

    public void setPlayground(boolean playground) {
        this.playground = playground;
    }

    public boolean isSwimmingPool() {
        return swimmingPool;
    }

    public void setSwimmingPool(boolean swimmingPool) {
        this.swimmingPool = swimmingPool;
    }

}
我不太明白这个练习想要我做什么,它要求我检查这两个设施是否都可用并返回值。我尝试过的每一件事,结果都是错误的。这本书在一章中教了我这一点,但实际上,它只展示了int/double变量的用法,而不是boolean,不知道这是否有区别,不管怎样,我完全不知道如何做返回方法

通常,我只会提示用户在公园里想要什么,然后使用setters声明布尔值为true,然后在displayParkInfo()方法中使用一个简单的if语句,使用getter将结果输出到控制台,但任务似乎不希望我这样做。

试试看

facilityCheck = request();

对于引用类型,类字段默认初始化为
null
;对于数值类型,类字段初始化为
0
;对于布尔类型,类字段默认初始化为
false
。你的领域

static boolean facilityCheck; // = false
将初始化为
false
。因为你没有在任何地方初始化它,所以它一直保持这种状态。您需要将其设置为
request()的返回值

或者让该方法本身设置其值

if(userInput.nextInt() == 1){
    ark1.setPicnicFacilities(true);
    facilityCheck = true;
} else{
    facilityCheck = false;
}
// return or not (change your method definition if not)
在我对你的问题所作的评论中

public void setParkAcres(int parkAcres) {
    if (parkAcres < 0 || parkAcres > 400) {
        System.out
                .println("You have entered an invalid acre amount, it has been defaulted to 0");
        parkAcres = 0;
    }
    this.parkAcres = parkAcres;
}
将被处决。您需要在
if
中返回

public void setParkAcres(int parkAcres) {
    if (parkAcres < 0 || parkAcres > 400) {
        System.out
                .println("You have entered an invalid acre amount, it has been defaulted to 0");
        parkAcres = 0;
        return;
    }
    this.parkAcres = parkAcres;
}
public void setparkares(int parkares){
如果(公园面积<0 | |公园面积>400){
系统输出
.println(“您输入的acre金额无效,已默认为0”);
公园面积=0;
返回;
}
这个。公园面积=公园面积;
}

返回语句将停止方法的执行,并将执行返回给方法的调用方。这与您的其他问题无关。

在您的
setparkares
方法中,您应该
if
块中返回
,否则字段仍然会被设置。lol ok这只是增加了进一步的混乱…我在Parks中的setparkares方法是无效的方法,不会返回任何内容。该方法仅获取输入的英亩数,检查它们是否在有效范围内,然后将相应变量设置为用户输入值(如果有效)。如果没有,则默认为0。您可以
返回无效方法中无任何内容。这只是停止方法执行。你需要这样做,这样
this.acres…
行就不会被执行,否则你的
if
检查不是很有用(因为值是赋值的)。你提到的第一个方法似乎是我应该这样做的,我知道如何做,因为这是一个简单的变量更改。然而,这个任务使我看起来好像是在使用方法的返回值将变量设置为true或false。@Gibbo那么这正是您应该做的<代码>设备检查=请求()好吧,我在其他地方有一些逻辑错误,不管userInput==1与否,它仍然将其设置为true。我会解决的,谢谢你。@Gibbo,不客气。如果有帮助的话,可以考虑接受答案。
public void setParkAcres(int parkAcres) {
    if (parkAcres < 0 || parkAcres > 400) {
        System.out
                .println("You have entered an invalid acre amount, it has been defaulted to 0");
        parkAcres = 0;
    }
    this.parkAcres = parkAcres;
}
this.parkAcres = parkAcres;
public void setParkAcres(int parkAcres) {
    if (parkAcres < 0 || parkAcres > 400) {
        System.out
                .println("You have entered an invalid acre amount, it has been defaulted to 0");
        parkAcres = 0;
        return;
    }
    this.parkAcres = parkAcres;
}