类的静态成员

声明静态成员使用static修饰符。

所谓静态就是指在编译后分配的内存会一直存在,直到程序退出时才会释放内存空间。

一个类中的静态成员可以是静态字段,也可以有静态方法,静态成员不需要创建对象后使用,可以直接使用类名来引用,例如:

有一个学生类,如下:

public class Student {
    //静态方法
    public static void printHello()
    {
    	Console.WriteLine("全体学生欢迎您!");
    }
}

在main方法中调用printHello方法不需要实例化对象,而可以直接用类名来调用。

Student.printHello();   //此时可以打印"全体学生欢迎您!"

静态成员是类级别的,是所有对象共享的数据,如果在学生类中,有一个字段来记录学生人数,此时不使用静态成员将无法记录学生人数,例如:

public class Student {
    public string no; //学号
    public string name; //姓名
    public int count;   //学生人数
}

在main方法中创建学生,并且每创建一个学生,给学生人数+1

Student stu1 = new Student();
stu1.no = "001";
stu1.name = "刘备";
stu1.count++;
Student stu2 = new Student();
stu2.no = "001";
stu2.name = "刘备";
stu2.count++;
Student stu3 = new Student();
stu3.no = "001";
stu3.name = "刘备";
stu3.count++;
Console.WriteLine("学生人数:" + stu3.count); //此时有三个学生,但是打印的学生人数仍然是1.

通过以上代码我们可以看出,学生人数并没有增加,实际上三个对象都单独拥有学生人数的字段,并且毫无关联。

此时我们可以使用静态成员解决此问题,代码如下,例如:

public class Student {
    public string no; //学号
    public string name; //姓名
   	public static int count;   //学生人数
}

在main方法中创建学生,并且每创建一个学生,给学生人数+1

Student stu1 = new Student();
stu1.no = "001";
stu1.name = "刘备";
Student.count++;
Student stu2 = new Student();
stu2.no = "001";
stu2.name = "刘备";
Student.count++;
Student stu3 = new Student();
stu3.no = "001";
stu3.name = "刘备";
Student.count++;
Console.WriteLine("学生人数:" + Student.count);  //此时可以打印学生人数为3
posted @ 2022-04-06 14:13  码农阿亮  阅读(60)  评论(0编辑  收藏  举报