我遇到了一个关于使实例变量静态的Java问题:
public class Student {
private static String name;
public Student(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
并测试:
public void testBadStatic() {
Student studentA = new Student("a");
assertEquals("a", studentA.getName());
Student studentB = new Student("b");
assertEquals("b", studentB.getName());
assertEquals("a", studentA.getName());
我认为第二个 assertEquals 会失败,因为 name 变量是静态的,所以它已经被分配了“a”。但是,正确的输出对于第二个断言应该是 true,对于最后一个断言应该是 false。有人可以帮我理解这一点吗?
谢谢。