脑袋卡壳,怎么也想不出静态变量的值 4 从哪里来的?请教
一、题目 静态成员和非静态成员的区别。例题代码:
namespace 书本例题
{
class Program
{
class StaticC1
{
private string objName;
private int x; //非静态成员变量
private static int stx; //静态成员变量
public void setx(int x) //非静态成员方法
{
this.x = x;
}
public static void setstx(int y) //静态成员方法
{
stx = y;
}
public void show() //非静态成员方法
{
Console.WriteLine("对象{0}:X={1},stx={2}", this.objName, x, stx);
}
public StaticC1(string objName)
{
this.objName = objName; x = 0; stx = 0;
}
}
static void Main(string[] args)
{
StaticC1 c1 = new StaticC1("c1");
StaticC1 c2 = new StaticC1("c2");
c1.setx(1);
StaticC1.setstx(2);
c2.setx(3);
StaticC1.setstx(4);
c1.show();
c2.show();
Console.ReadKey();
}
}
}
运行结果:
对象c1:x=1,stx=4;
对象c2:x=3,stx=4;
二、我的理解
1、关于非静态变量,我能理解。
2、关于静态变量stx的值,我不明白的是,这个stx=4,这个4从哪里来的?
好像并没有赋值啊?
真正的脑袋卡壳了。晕,我都不认识自己了,学C#学的东南西北都不知道了。请大侠们帮小虾清清头脑。