前言
说是隔三天 一隔隔三周哇。原谅我,上班有点忙 下班有点懒 实在没更 今天自己实在看不下去了 每天都会有人通过文章关注我 看着日益渐多的粉丝 实在不好意思在拖了 这次必须下定决心继续更新了。言归正传,今天所要学习的基础是“静态类型”
静态类型的定义
- 当用static修饰符声明成员叫静态成员,静态成员属于类,为这个类的所有
实例所共享。静态成员只能由类来调用,不能由对象调用。 - 不用static修饰符声明成员,称为实例成员,实例成员属于类的实例。
2.1 非静态方法在类外部使用实例名访问。
2.2 静态成员在类外部使用类名访问。
其实在我们最近常常书写的很多代码中 都可以看到“静态”这个定义的调用 比如:
我们常常用到的输出函数 其实就是一个静态方法的示例vs当中 可以使用”ctrl+鼠标左键“点击WriteLine方法 我们可以看到这个类的源代码:
我们可以看到很多的重载 和 static关键字修饰的Write Line方法
那么 我们可以自己创建一个类 来定义静态函数和属性 以便我们更能了解它的作用:
- 定义类Student 包含一个静态变量 一个非静态变量 还有一个属性
- 包含两个静态函数 和 一个非静态函数
我们去测试一下代码:
其实我们发现 好像和普通的没有修饰的 并没有什么太大的区别,那么我们继续完成剩下的再看看:
根据这些规则 我们可以总结一下静态类型的意义:
静态类型的使用
-
静态方法其实就是普通函数。
-
静态变量其实就是全局变量。
-
静态变量和静态方法是属于某一个类,而不属于类的对象。
-
静态变量和静态方法的引用直接通过类名引用。
-
静态成员方法中使用this也是错误的。
-
在静态方法中不能调用非静态的方法和引用非静态的成员变量。反之,则可以。
-
常量(const)默认就是静态的。
静态类
- 静态类和类成员用于——创建无需创建类的实例就能够访问的数据和函数
- 类可以声明为 static 的,以指示它仅包含静态成员。不能使用 new 关键字创建静态类的实例。
- 静态类的主要功能如下:
3.1 它们仅包含静态成员。
3.2 它们不能被实例化(不能创建对象)。
3.3 它们是密封的,因此不可以被继承。
3.4 它们不能包含实例构造函数。但仍可声明静态构造函数以分配初始值或设置某个静态状态。
静态类的使用场合
-
使用静态类作为不与特定对象关联的方法的组织单元。此外,静态类能够使您的实现更简单、迅速,因为您不必创建对象就能调用其方法。以一种有意义的方式组织类内部的方法(例如System 命名空间中的 Math 类的方法)是很有用的。
-
假设有一个静态公司类 CompanyInfo,它包含用于获取有关公司名称和地址信息的下列方法。
调用:
总结
静态修饰在很多地方都有很大的用处 后续我们讲解设计模式时 会有一种设计模式与静态有着密不可分的关系
以上就是对”静态“的全部讲解 山高路远 下期再会!