我有全局变量private int temp=0;
。在类中,它是递增的(在某个阶段,它说它是temp = 10)。当再次加载类temp时仍然是10.但是我需要它0.我怎么能这样做?
代码:
public class MyClass
{
private int temp = 0;
public void method1() // while calling this method temp increments say temp =1;
{
temp++;
}
public void method2()
{
if(temp == 0)
System.out.println("temp = "+temp):
}
}
此后假设为temp = 10
,加载MyClass
时仍为temp=10
,但我需要再次temp=0
。由于我是编程新手,我不知道它是否有意义。
答案 0 :(得分:1)
temp 总是将为0,除非它被声明为静态。
MyClass mc = new MyClass();
mc.method1() // 'temp' of mc object is now 1
MyClass mc2 = new MyClass();
mc2.method2() //'temp' of mc2 object is still 0!
答案 1 :(得分:0)
我不确定加载类,调用类等等是什么意思
请注意,该类的每个新实例都会为您提供temp = 0
,如果您指的是同一个实例,请参阅此示例,我添加了一个新方法,method0()
public class MyClass
{
private int temp = 0;
public void method0()
{
temp = 0;
}
public void method1()
{
temp++;
}
public void method2()
{
if(temp == 0)
System.out.println("temp = "+temp):
}
}
在这种情况下,
MyClass mc = new MyClass();
mc.method2();
mc.method1();
mc.method2();
mc.method0();
mc.method2();
会给你,
temp = 0
//Incremented value of temp
//condition if(temp==0) fails
//reset value of temp
temp = 0
希望这就是你的意思。他们。
答案 2 :(得分:-1)
如果我正确理解你的问题,你想在每次创建类的新对象时将temp重新初始化为0 - MyClass。
如果这是你想要的,那么使用构造函数。并在构造函数中将temp初始化为0.
public MyClass
{
temp = 0;
}
这样,每次创建MyClass的新对象时,temp都将设置回0。