单词 | 释义 |
---|---|
static | 静态的 |
instance | 实例 |
field | 字段 |
method | 方法 |
类有数据成员或方法成员,还可划分为实例成员和静态成员
字段(field)成员:是描述状态的数据成员
方法(method)成员:是描述操作的行为成员
静态(static)成员:用static关键字修饰的字段或函数成员
实例(instance)成员:没有用static关键字修饰的字段或函数成员
静态字段是被static关键字修饰的字段,静态字段属于类所有,被这个类的所有对象共享,通过”类名.静态字段名”来访问。
类中定义静态字段语法:
class 类名
{
[访问修饰符] static 数据类型 字段名;
}
?
class Student
{
//定义静态字段
public static string school ="计算机大学";
//访问静态字段
Console.WriteLine("Hello,大家好!\n我是{0}学生",Student.School)<---其他类中
}
静态方法是被static关键字修饰的方法,同样静态方法也属于类所有,被这个类的所有对象共享,通过”类名.静态方法名(实参列表)”来访问。
类中定义静态方法语法:
class 类名
{
[访问修饰符] static 返回值类型 方法名(形参列表);
}
?
class Student
{
public static string school ="计算机大学";
//定义静态方法
public static void ShowSchool()
{
Console.WriteLine("{0}欢迎您",school);
}
Student.ShowSchool();<---其他类中
}
静态成员必须通过static关键字定义,通过类名访问。
在内存中,一个静态字段只标识一个储存位置,无论创建了一个类的多少个实例,它的静态字段在内存中只占同一块区域。
静态方法不能作用于对象,即静态方法中不能直接使用实例成员,必须创建类的对象,通过对象名引用访问,但是可以直接访问本类的静态成员。
实例成员不能添加static关键字定义,通过对象名访问。
类的实例成员属于类的对象所有,每创建一个类的对象,都在内存中为实例字段开辟了一块区域。类的每个对象,分别包含一组该类所有实例字段的副本。
类的实例方法直接作用于类的对象,在实例方法中可以直接访问本类的静态成员和实例成员。
调用完后会自动释放,节省内存空间。
对于字段来说,比如你有一个兄弟,你们公用一台电脑,那么这台电脑就是静态成员;你有一本C#的书,你的兄弟也有一本C#的书,这些书是你们各自拥有的,和别人互不相关,这些书就是实例成员。
对于方法来说,使用静态方法是有好处的,因为静态方法只维护一份拷贝,所以无论你有多少个实例,内存中都只会有一份拷贝。如果一个类是一个辅助类,如字符串类、数据库操作类,有很多方法来实现字符串的各种操作的,并且使用频繁,那么这个时候定义的方法最好是静态的,这样不需要每次使用这些方法的时候都实例化对象,而只需要静态调用就好。针对具体对象应用的,使用的少的方法用实例的。因为静态的速度快,但占内存,就像是缓存一样,经常用的数据我们应该将他们缓存起来。实例方法的调用速度相对慢些,但调用完后,会立即释放类,节省内存。
原文:https://www.cnblogs.com/yang-yi/p/13096451.html