声明静态成员使用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
网友评论