C#-静态
静态之字段与属性
1.static 关键字
static 关键字,用于修饰类,字段,属性,方法,构造方法等。被 static 修饰的类称之为“静态类”;
被 static 修饰的成员称之为“静态成员”,被修饰过的成员分别称为:静态字段,静态属性,静态方法,静态构造方法。
2.静态字段
1.概念
被 static 关键字修饰的字段,叫做“静态字段”。
静态字段不属于任何对象,只属于类,必须要用 类名.静态字段名进行访问,反过来通过 对象名.静态字段名 的方式是访问不到静态字段的。
2.注意事项
静态字段是可以重新赋值的,类名.静态字段名 = 新的值;
静态字段存储的数据在内存中只有一份;
实例(对象)字段在内存中会有 N 份,有多少对象就会有多少实例字段;
3.静态属性
1.概念
被 static 关键字修饰的属性,叫做“静态属性”。
静态属性用于对静态字段进行封装,并保证静态字段值的合法性;静态属性使用 类名.静态属性名 进行访问;
2.注意事项
静态属性不能用于封装非静态字段,因为静态的类成员是先于非静态的类成员存在的。在还没有对象之前,静态类成员就已经存在了。
4.静态普通方法
1.概念
被 static 修饰的方法,叫做静态方法。
直接使用 类名.静态方法名 进行访问。
2.注意事项
控制台程序的 Program 入口类中的 Main 函数就是一个静态方法;在静态方法中不能调用非静态方法。
5.静态构造方法
1.概念
静态构造方法的作用是用于初始化静态成员。
一个类只能有一个静态构造方法,该静态方法没有任何访问修饰符,也没有参数。可以定义在静态类中,也可以定义在非静态类中。
2.注意事项
静态构造方法会在程序创建第一个实例,或者引用任何静态成员之前,完成类中静态成员的初始化。
6.静态类
1.概念
当类中的成员全部是静态成员的时候,可以把这个类声明为静态类。声明静态来需要在 class 关键字前加静态关键字 static。
2.注意事项
静态类中不能存在非静态(实例)成员;
静态类不能实例化对象。
单例设计模式
1.何为单例?
设计一个类的时候,需要保证整个程序在运行期间只存在一个实例对象。解决这个问题,我们就需要用到“单例(模式)”。
2.注意事项
单例设计模式是用于非静态类中的,在静态类中写单例无意义。
3.单例代码步骤
<1>声明一个静态且私有的这么一个当前类类型的字段;
private static ClassName instance;
<2>创建私有无参构造方法,保证外部无法实例化这个类;
private ClassName() { }
<3>创建一个静态方法,用于创建此类的唯一对象。
public static ClassName Instance()
{
if (instance == null)
{
instance = new ClassName();
}
return instance;
}
//实例化
ClassName Cnm = ClassName.Instance();
使用例
单例模式编写常用工具类Utils
功能1:生成随机数
功能2:提供打印数组的方法
class Utils
{
private static Utils instance = null;
public static Utils Instance
{
get
{
if(instance == null)
{
instance = new Utils();
}
return instance;
}
}
private Random random = new Random();
public int RandonNum(int a,int b)//生成随机数
{
return random.Next(a,b);
}
public void Print(int[] a)
{
for(int i = 0; i < a.Length; i++)
{
Console.Write(a[i]+" ");
}
}
}
posted on 2022-09-02 18:24 Shazam_sjtu 阅读(165) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)