C#笔记11 类:类成员补充01
——本系列是基于人民邮电出版社《C#2008 C#图解教程》、清华大学出版社《C#入门经典(第五版)》两本书的自学C#笔记,如果您发现了本文的纰漏,还望不吝指正。
写在前边
*复习:类是一种能存储数据并执行代码的数据结构,它包含:
- 数据成员——存储数据
包括:字段、常量 - 函数成员——执行代码
包括:方法,属性,构造函数,索引,运算符,事件,析构函数
上一篇笔记 C#笔记10 类:基础 已经介绍了九种类成员类型中的两种(字段和方法)。这一篇将介绍更多类型的类成员(静态类成员,常量,属性和索引)。
1. 静态类成员
使用static修饰符声明的类成员
1.1 实例成员
- 默认情况下,类成员被关联到一个实例,可以想象类的每个实例有用自己的各个类成员的拷贝,这些成员称为实例成员
- 改变一个实例的字段拷贝的值,不会影响其他实例的拷贝的值
1.2 静态字段
静态字段被类的所有实例共享,所有实例都访问同一内存位置,所以如果该内存位置的值被一个实例改变,对所有的实例都可见
例如,以下代码中,类D中同时声明实例字段Mem1和静态字段Mem2
class D
{
int Mem1;
static int Mem2 = 45;
}
static void Main()
{
D d1 = new D();
D d2 = new D();
d1.Mem1 = 10;
d2 Mem1 = 28;
}
1.3 静态函数成员
类的函数成员中,除了索引和析构函数外,方法,运算符,属性,构造函数,事件都可以是静态的
如同静态字段,静态函数成员独立于任何类实例。即使没有类的实例,仍然可以调用静态方法
例如,以下代码中,类X中同时声明静态字段A和静态方法PrintValA()
class X
{
public static int A;
public static void PrintValA()
{
Console.WriteLine("Value of A:{0}",A);
}
}
1.4 从类的外部访问静态成员
使用点(.)运算符,类名.成员名
例:
class StaticVar
{
public static int num;
public void count()
{
num++;
}
public static int getNum()
{
return num