>问题:当狗吠叫时,当它在早上 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 命名约定。类应使用驼峰大小写:
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
是否在理想的时间发生。
- 请确保您的 main(( 方法具有正确的签名。
- 您正在调用该方法,因此不需要提供访问修饰符。仅在声明时指定访问修饰符。
-
在呼叫时删除额外的
;
。public static void main(String[] args) { // write your code here System.out.println(bark(true, 4)); }