本帖最后由 wwwconsumer 于 2014-7-14 05:43 编辑
一般情况下,成员的变量是用来描述具体对象的,每个对象都会在自己的内存中存贮自己的数据,创建几个对象,就会有几份数据,它们独立存在,互不干扰,,一个对象不能访问另一个对象的数据。现在我们来设计一个游戏,如果狼的的数目达到5只,它们就敢攻击狮子,否则就会逃跑。为了统计狼的数目,我们需要在Wolf类中申明一个wolvesCount变量,用来记录狼的总数。wolvesCount是用来描述狼群的整体特征的量,可以用静态变量来实现,静态变量在内存中只有一份,为类的所有对象共享。静态变量用关键字static来申明。下面看设计wolf类[C#] 纯文本查看 复制代码 {
class Wolf
{
//声明静态变量
public static int wolfCount = 0;
//构造函数:当创建对象时wolfCount自增
public Wolf()
{
wolfCount++;
}
//析构函数:当销毁对象时wolfCount自减
~Wolf()
{
wolfCount--;
}
//函数:遇到狮子时采取的行动
public void Act()
{
if (wolfCount < 5)
Console.WriteLine("Run away~~");
else
Console.WriteLine("Attack the lion !");
}
}
}
再设计一个lion类:[C#] 纯文本查看 复制代码 {
//定义Lion类
class Lion
{
//函数:反击
public void Counterattack()
{
Console.WriteLine("狮子反击!");
if (Wolf.wolfCount <= 7)
Console.WriteLine("The lion win!");
else
Console.WriteLine("The wolfs win!");
}
}
}
好了,我们在主函数中让狼和狮子开始战斗吧。[C#] 纯文本查看 复制代码 class Program
{
static void Main(string[] args)
{
Lion lion = new Lion();
Wolf[] wolves = new Wolf[5];
for (int i = 0; i < wolves.Length; i++)
{
wolves[i] = new Wolf();
}
Console.WriteLine("我们现在共有{0}只狼", Wolf.wolfCount);
for (int i = 0; i < wolves.Length; i++)
{
Console.Write("Wolf{0}:", i);
wolves[i].Act();
}
lion.Counterattack();
}
}
}
运行结果如何?
|