C#学习笔记之六 类定义中static关键字的用法暨C#中静态变量的意义与使用

在定义类中的一个成员变量的时候,如果使用了static 关键字。那么这个类就只会 有这一个变量,称它是静态变量,它是属于这个类的,是类的专有的静态变量,而不是属于类的实例(对象)的。那么,属于这个类的静态变量,与该类之下对象的关系是什么呢?很容易想到,作为类专有的静态变量,应该是被类的所有对象的方法所共用的。

为了检测这个想法,我编写了如下的代码。我的思路是,定义一个Counter类,它有一个静态成员变量num,即计数器的数值。然后生成两个Counter实例。代码运行结果显示:这个静态变量是唯一的,每个实例对象都可以对它进行操作,它们操作的是唯一的这个静态变量。

<span style="font-size:18px;">using System;

namespace MakeoutStatic
{
class Counter  {
	public static int num;
	public void clear()
		{
		num = 0;
	 	 }
	public void count ()
		{
		num ++ ;
	 	 }
                 }

class Program  {
	public static void Main(string[] args)
		{
		Counter mycounter = new Counter();
		Counter yourcounter = new Counter();
		mycounter.clear();
		int i;
		for(i=0;i<10;i++)
			mycounter.count();
		Console.Write(Counter.num);
		yourcounter.clear();
		Console.Write(Counter.num);
		Console.ReadKey();
		 }
              
	              }
}</span>

对Main函数中主要代码的解释:新建两个Counter对象。一个对象的clear方法将类的专有静态变量num清零即设为0,然后这个对象的count方法运行10次,也就是,将num增加10次。显示num的值。注意,num不是mycounter.num而是Counter.num,因为它是专有于类的,并不存在于对象中,对象只能对它进行操作。之后,用另一个对象的clear方法将num清零。显示num的值。
这段代码充分显示了类的静态变量专有于类公用于对象的特性。
同样,在类定义时,对一个函数使用了static关键字,那么它也是属于类专有的函数,它所使用的变量必须是静态变量即类的专有变量。所以,静态函数和静态变量都是在类的专属层面上运行。


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值