问题:当狗吠叫时,在上午8点或下午22点之前,返回true,否则返回false。

我的代码:

public class Barkingdog {

    public boolean bark(boolean barking, int hourofDay) {
        if (barking) {
            if (hourofDay >= 0 && hourofDay <= 8) {
                return true;
            } else if (hourofDay >= 22 && hourofDay < 24) {
            return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
    }
}

尝试测试我的代码:
package com.company;

public class Main {

    public static boolean main(String[] args) {
    // write your code here
        System.out.println(public boolean bark (true, 4););
    }
}

最佳答案

创建Barkingdog的实例,并从中调用bark方法:

public static void main(String[] args) {
    Barkingdog dog = new Barkingdog();
    System.out.println(dog.bark(true, 4));
}

另外,请使用正确的Java命名约定。类(class)应使用 Camel 套:
public class BarkingDog { ... }

您也可以简单地使用bark方法的逻辑:
public boolean bark(boolean barking, int hourOfDay) {
    boolean morning = hourOfDay >= 0 && hourOfDay <= 8;
    boolean night = hourOfDay >= 22 && hourOfDay < 24;

    return barking && morning || night;
}

而且bark似乎不是此行为的专有名称。
boolean barking表示狗是否实际上在吠叫,并且由于barking可以是false,因此调用dog.bark(false, 8)可能会引起困惑:我们告诉狗执行bark行为,但狗没有吠叫(由false参数指定)。

可能想为该行为选择一个更具描述性的名称,例如isBarkingUnderirably,在这里我们检查barking是否在期望的时间出现。

10-05 18:30