我有我的主类,我称之为子类.
我的子类包含一些公共静态变量
public class SubClass2 extends Main {
public static long a = 0;
public static long b = 0;
public static long c= 0;
public void Analyze(int number)
{
b=2;
//some code
}
}
Run Code Online (Sandbox Code Playgroud)
在main中我调用SubClass2的对象.我希望每次当我在main中创建子类2的新对象时,它初始化所有变量= 0但是当我接受变量b的print语句时.它打印出来像4.它将以前的值与新值相加.

static在这种情况下,不应声明您的字段.这就是他们每次都没有被初始化的原因.甲static字段被初始化一次只,然后由类的每个实例共享,并且根据可访问性,也以外的类.
导致该值的逻辑4必须在您替换的代码中//some code,但这并不是真正相关的.
如果出于某种原因这些实际应该是static每次实例化实例时初始化的字段,那么您必须在类的构造函数中手动初始化它们.但我会严重质疑导致这种情况的设计......
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |