该段课程中首先给大家介绍一下密封类的特点.
然后开始学习静态类,静态类有什么特点.
为什么静态类不能实例化,不能被继承.
最后讲解序列化和反序列化是怎么回事.
课后讨论:系统中常用的静态类有哪些,静态方法如何调用,静态字段可以在哪里使用?
Console,Math,Convert,
类名.出来的。
密封类不能被继承:sealed
static 静态类不能被实例化:(里面有关键字abstract抽象的)
静态类中不能有实例成员
静态类不能被继承:(里面有关键字sealed密封的)
静态字段可以任何地方使用。
Console,Convert,Math使用时是否需要实例化 声明一个静态字段都能在哪里使用 静态类为什么不能实例化不能继承?
结论:
静态类不能被继承:sealed
静态类不能被实例化:abstract
添加一个实例方法,添加一个实例的属性(演示)
结论:静态类中不能添加实例成员
对象序列化是将对象转换为二进制数据(字节流),反序列化是将二进制数据还原为对象。
为什么要序列化?
保持对象的持久化,将一个复杂的对象转换流,方便我们的存储与信息交换
要序列化的类型必须标记为:[Serializable]
该类型的父类也必须标记为: [Serializable]
该类型中的所有成员的类型也必须标记为: [Serializable]
序列化只会对类中的字段序列化,(只能序列化一些状态信息)
不建议使用自动属性。(每次生成的字段都可能不一样,影响反序列化)
BinaryFormatter类有两个方法:
void Serialize(Stream stream, object pbj) 对象obj序列化到Stream中
object Deserialize(Stream stream) 将对象从stream中反序列化,返回值为反序列化得到的对象