public class abc
{
int a;
static int b;
public abc()
{
a = a + 1;
b = b + 1;
}
public void bcd()
{
Console.WriteLine("{0} {1}",a,b);
Console.Read();
}
}
class Program
{
static void Main(string[] args)
{
abc c = new abc(); 运行后a=1 b=1
c.bcd();
abc d = new abc(); 运行后a=1(a为非静态变量重新创建实例初始为0) b=2(静态变量, 重新创建实例用的还是公共的那个b,初始为1)
d.bcd();
c.bcd(); 创建d实例与实例c的非静态变量a无关,所以此时c的a还是1 而共享的静态变 量b为2
}
}
{
int a;
static int b;
public abc()
{
a = a + 1;
b = b + 1;
}
public void bcd()
{
Console.WriteLine("{0} {1}",a,b);
Console.Read();
}
}
class Program
{
static void Main(string[] args)
{
abc c = new abc(); 运行后a=1 b=1
c.bcd();
abc d = new abc(); 运行后a=1(a为非静态变量重新创建实例初始为0) b=2(静态变量, 重新创建实例用的还是公共的那个b,初始为1)
d.bcd();
c.bcd(); 创建d实例与实例c的非静态变量a无关,所以此时c的a还是1 而共享的静态变 量b为2
}
}
结果为:
1 1
1 2
1 2
以上a为非静态变量,b为静态变量
1 1
1 2
1 2
以上a为非静态变量,b为静态变量