类的静态成员
声明静态成员使用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
本文来自博客园,作者:码农阿亮,转载请注明原文链接:https://www.cnblogs.com/wml-it/p/16106127.html
技术的发展日新月异,随着时间推移,无法保证本博客所有内容的正确性。如有误导,请大家见谅,欢迎评论区指正!
开源库地址,欢迎点亮:
GitHub:https://github.com/ITMingliang
Gitee: https://gitee.com/mingliang_it
GitLab: https://gitlab.com/ITMingliang
建群声明: 本着技术在于分享,方便大家交流学习的初心,特此建立【编程内功修炼交流群】,为大家答疑解惑。热烈欢迎各位爱交流学习的程序员进群,也希望进群的大佬能不吝分享自己遇到的技术问题和学习心得!进群方式:扫码关注公众号,后台回复【进群】。