C#再学习之静态变量

简介: 这次机房合作用C#完成,所以,要对C#的语法知识进行再学习,这时候真的体现了滚动学习的重要性!这次的内容是:学习静态变量。

1、声明静态变量的目的:


 在C#中没有全局变量的概念,这意味着所有的成员变量只有该类的实例才能操作这些数据,这起到了“信息隐藏”的作用。

假设我们要定义一个图书类,要求该类能保存图书的数量,即每增加一本图书(定义一个实例),图书的数量应该加1。如果没有静态变量,我们需要将图书的数量保存在每本图书(实例)里,然而,这样的变量要在不同图书(实例)里重复存储,图书(实例)数量少的话,我们还能接受,如果图书(实例)数量较多的话,比如成千上万,我们无法想象这要造成多少资源(如内存、磁盘空间)的浪费。同时,因为图书(实例)的数量要保存在每本图书(实例)里,该值肯定是不同的。要使这些图书(实例)中保存的图书(实例)数量一致,我们必须在每增加一本新书(生成一个新实例)时,修改其他所有图书(实例)中保存的该值。此时,我们会感到数据异常的多而重复,所以,我们 需要一个静态变量来保存类的公共信息,所有该类的实例(对象)共享这个从变量的值。


2 特点:


静态局部变量保存在全局数据区,而不是保存在栈中,每次的值保持到下一次调用,直到下次赋新值。
同时因为静态变量适用于全局,所以不能在类声明中定义。
外部变量虽然是静态变量,要加上static后才能变成静态全局变量
全局变量本身是静态存储方式


3.静态变量声明的方法

  [访问修饰符] static 数据类型 变量名;

  这里的访问修饰符跟类的其它成员一样,可以是public,protected,private或internal等。


4.使用方法:


  静态变量必须使用类名来引用,而不能使用类的实例,因为,静态变量不属于任何实例,而是共有的。


  比如:在机房中,有些物品是个人的,我们想使用时,必须指出物品的所有者,比如说“张三的笔记本”,在C#程序中我们可以使用:张三.笔记本的格式。有些物品是大家共有的物品,不能以个人名义使用,而是用机房的名义使用,比如机房的拖布,只能说:“机房的拖布”,而不能说:“张三的拖布”。


  再举个例子:在机房收费系统中,我们在用户登陆时曾为上机教师定义了一个静态变量,使此变量可以随时供其他方法调用。


5.一句话总结:

  静态变量是用类名来引用它。即:类名.静态变量名。


本文主要介绍关于静态变量的知识,来自于百度和自己的理解,希望读者不吝赐教,带着菜鸟一起飞。












相关文章
|
4天前
|
Java 调度 C#
C#学习系列相关之多线程(一)----常用多线程方法总结
C#学习系列相关之多线程(一)----常用多线程方法总结
|
4天前
|
C#
C#学习相关系列之数据类型类的三大特性(二)
C#学习相关系列之数据类型类的三大特性(二)
|
4天前
|
C#
C#学习相关系列之yield和return的区别
C#学习相关系列之yield和return的区别
|
4天前
|
C#
C#学习相关系列之数组---常用方法使用(二)
C#学习相关系列之数组---常用方法使用(二)
|
4天前
|
存储 C#
C#学习系列相关之数组(一)---数组的定义与使用
C#学习系列相关之数组(一)---数组的定义与使用
|
4天前
|
C#
C#学习相关系列之常用符号介绍
C#学习相关系列之常用符号介绍
|
4天前
|
安全 编译器 C#
C#学习相关系列之多线程---lock线程锁的用法
C#学习相关系列之多线程---lock线程锁的用法
|
4天前
|
开发框架 .NET C#
C#学习相关系列之Linq用法---where和select用法(二)
C#学习相关系列之Linq用法---where和select用法(二)
|
2天前
|
C#
C#的基本语法结构学习
【5月更文挑战第17天】C#基础语法包括变量(如`int x = 10`)、常量(`const int MAX_VALUE = 100`)、运算符(如算术和比较运算符)、控制语句(if、for、while等)和函数声明(`int Add(int x, int y) { return x + y; }`)。这些构成C#程序的基本元素。
11 0
|
2天前
|
C#
C#的类和对象的概念学习案例刨析
【5月更文挑战第17天】C#是一种面向对象的语言,以类和对象为核心。类作为对象的模板,定义了属性(如Name, Age)和行为(如Greet)。对象是类的实例,可设置属性值。封装通过访问修饰符隐藏实现细节,如Customer类的私有name字段通过Name属性访问。继承允许新类(如Employee)从现有类(Person)继承并扩展。多态让不同对象(如Circle, Square)共享相同接口(Shape),实现抽象方法Area,提供灵活的代码设计。
9 1