我有以下代码:
class Cat {
String name;
float time;
void action(){
if (time >= 0 && time < 8) {
System.out.println("I am sleeping");
} else if (time >= 8 && time < 12) {
System.out.println("I am playing");
} else if (time >= 12 && time < 19) {
System.out.println("I am sleeping");
} else if (time >= 19 && time <= 24) {
System.out.println("I am playing");
} else {
System.out.println("Wrong input");
}
}
}
public class Main {
public static void main(String[] args) {
Cat cat1 = new Cat();
Cat cat2 = new Cat();
cat1.name = "kali";
cat2.name = "lali";
Cat time1 = new Cat();
Cat time2 = new Cat();
Cat time3 = new Cat();
Cat time4 = new Cat();
time1.time = 3;
cat1.action();
time2.time = 9;
cat1.action();
time3.time = 15;
cat2.action();
time4.time = 21;
cat2.action();
}
}
我期待以下输出:
I am sleeping
I am playing
I am sleeping
I am playing
但是我得到以下输出:
I am sleeping
I am sleeping
I am sleeping
I am sleeping
为什么会这样?
到目前为止,我可以解释变量time
的状态在这里是常量,并且不会根据新输入而改变。
答案 0 :(得分:3)
你必须做这样的事情:
grep '^<li>.*</li>'
因为您有6个不同的对象,而您正在更改时间对象Cat cat1 = new Cat();
Cat cat2 = new Cat();
cat1.name = "kali";
cat2.name = "lali";
cat1.time = 9;
cat1.action();
cat1.time = 15;
cat1.action();
cat2.time = 9;
cat2.action();
cat2.time = 15;
cat2.action();
。 cat1对象未与time1, time2, time3,time4
答案 1 :(得分:0)
这种情况正在发生,因为您正在通过其他实例执行操作操作(例如cat1而不是time1)。由于这些是实例变量,因此它们仅限于该实例。
以下内容可以解决您的问题:
}).done(function(data) {
/* do stuff */
});
答案 2 :(得分:0)
可以获得所需的输出,
分别调用实例变量time1, time2, time3, time4
的操作方法而不是cat1
或
将float time;
静态/类变量设为static float time;
。这样time
Cat
的值
以下是第二个选项的更新代码。
class Cat {
String name;
static float time;
void action() {
if (time >= 0 && time < 8) {
System.out.println("I am sleeping");
} else if (time >= 8 && time < 12) {
System.out.println("I am playing");
} else if (time >= 12 && time < 19) {
System.out.println("I am sleeping");
} else if (time >= 19 && time <= 24) {
System.out.println("I am playing");
} else {
System.out.println("Wrong input");
}
}
}
public class Main {
public static void main(final String[] args) {
final Cat cat1 = new Cat();
final Cat cat2 = new Cat();
cat1.name = "kali";
cat2.name = "lali";
Cat.time = 3;
cat1.action();
Cat.time = 9;
cat1.action();
Cat.time = 15;
cat2.action();
Cat.time = 21;
cat2.action();
}
}