我写了一个简单的类和3个测试如下:
package MyPackage;
public class Person {
private static int PERSON_COUNTER = 0;
public Person() {
PERSON_COUNTER++;
}
public String hello(){
return "Hello World";
}
public String helloName(String name) {
return "Hello "+name;
}
public static int numberOfPersons() {
return PERSON_COUNTER;
}
}
个人测试。爪哇:
package Test;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import MyPackage.Person;
public class PersonTest {
@Test
public void testHello() {
Person p = new Person();
assertEquals("Hello World",p.hello());
}
@Test
public void testHelloName() {
Person p1 = new Person();
assertEquals("Hello Mile",p1.helloName("Mile"));
}
@Test
public void numberOfPersons() {
Person p2 = new Person();
Person p3 = new Person();
Person p4 = new Person();
assertEquals(3, Person.numberOfPersons());
}
}
测试numberOfPersons失败,消息为:java。lang.AssertionError:预期:
您应该使用带有注释@beforeach的方法,通过重置变量来清理您的环境,我认为这就是您缺少的。
问题内容: 根据Java,静态变量可以通过类名访问,但是即使Java不建议使用静态变量,类对象也可以访问它们,并且给出相同的答案。 我知道该变量只有一个副本,并且所有对象和其他事物的值都相同。Java为什么建议使用类名而不是类对象? 问题答案: 因为可能会造成混淆!静态成员上没有动态调度。 看一下这个令人困惑的代码:(可能是语法错误;我的Java生锈了) 看起来很混乱,因为方法似乎是多态的,所以输
我还是Java新手,我试图创建一个内部类并在main中调用该方法。有一个编译错误说 非静态变量 - 这不能从静态上下文中引用 请帮忙
我有以下代码: 当我尝试编译它时,会出现以下错误: 因此,我尝试使dbConnect静态如下:
问题内容: 将变量声明为的区别是什么 要么 如果我只希望变量是局部的,并且是常量(以后不能更改)? 谢谢 问题答案: 仅仅具有预期的效果。 声明static使其成为一个类变量,使其可以使用类名进行访问
问题内容: 通常,最终静态成员,尤其是变量(或静态最终变量,当然可以以任何顺序使用,而不会重叠含义)已广泛用于Java接口中,以定义实现类的 协议行为 ,这意味着实现该类的类(继承)接口必须包含该接口的所有成员。 我无法区分 final 和 final静态 成员。final静态成员是一个声明为final或其他东西的静态成员?在哪些特定情况下应专门使用它们? 永远不能在方法内部,静态方法内部或实例方
问题内容: 我已经定义了一个对象并声明了一个静态变量。在该方法中,当我尝试打印实例和类变量时,两者都打印相同的值。 不是实例变量吗?它应该打印0而不是50吗? 问题答案: 不,只有一个变量-您尚未声明任何实例变量。 不幸的是,Java允许您访问静态成员,就像通过相关类型的引用访问静态成员一样。这是IMO的设计缺陷,某些IDE(例如Eclipse)允许您将其标记为警告或错误- 但这是语言的一部分。您