我认为这可能是一个简单的问题但是我有一个类,它有一个私有的静态int变量,它在类中递增,我想在第二个类中显示这个值。但是,即使它已经增加,它也会保持打印0。
相同的代码将是
public class Test{
private static int toIncrement;
public static int returnValue{
return toIncrement;
}
public void test{
for(int i = 0; i < 4; i++){
toIncrement++;
}
}
}
所以上面的代码运行然后从另一个类调用Test.returnValue(); 这会返回0
答案 0 :(得分:0)
所以上面的代码运行,然后从我调用的另一个类运行 Test.returnValue();这会返回0
当您说上面的代码运行时,并不意味着您的test
方法将自动执行,而不会从任何地方调用。如果您先调用test
方法,然后尝试获取Test.returnValue()
,则该值不应为0.
答案 1 :(得分:0)
叹息。我从哪里开始?
public void test{
for(int i = 0; i < 4; i++){
toIncrement++;
}
}
那不是构造函数。它需要移除void
。由于缺少括号,这甚至都不是有效的。
public static int returnValue{
return toIncrement;
}
再次,括号。
private static int toIncrement;
public static int returnValue{
return toIncrement;
}
这真的是静态的吗?将其设置为静态,并调用Test.test()
或使其为非静态并正确调用构造函数。
答案 2 :(得分:0)
您忘记了方法中的参数括号。 应该是:
public class Test{
private static int toIncrement;
public static int returnValue(){
return toIncrement;
}
public void test(){
for(int i = 0; i < 4; i++){
toIncrement++;
}
}
但是看到你没有在任何地方调用test(),我认为你认为它是一个构造函数。为了使它成为构造函数删除&#34; void&#34; 所以它只是:
public test()
{
code here
}
执行此操作时,代码将在您运行程序时自动运行(只要这是您的主类,如果不是,您需要为构造函数生成它的实例。)
答案 3 :(得分:0)
使用静态块!
public class Test{
private static int toIncrement;
public static int returnValue(){
return toIncrement;
}
static {
for(int i = 0; i < 4; i++){
toIncrement++;
}
}
}