C#面向对象第五天总结

来源:互联网 发布:服务器崩溃数据丢失 编辑:程序博客网 时间:2024/05/22 12:14

1. 访问修饰符
2. 设计模式(23种设计模式)
《设计模式:可复用面向对象软件的基础》
设计这个项目的一种方式

简单工厂设计模式
        简单工厂最核心的部分 模拟工厂       
        用一个方法来模拟工厂生产笔记本的过程
        这个工厂最终要制造出(返回)一个笔记本的父类
        根据用户输入的品牌来创建笔记本对象
        返回一个父类,但父类中装的是子类对象
  之后再使用多态,可以屏蔽子类之间的差异性
3. 值类型和引用类型
   值类型:int double char decimal bool enum struct
   引用类型:string 数组 自定义类 集合 object 接口
  
   值传递和引用传递
   值类型在复制的时候,复制的是这个值本身
   引用类型在复制的时候,复制的是这个值的引用
   加了ref后 将值传递 改变成 引用传递
   字符串的不变特性
4. 序列化:将对象转化为二进制
   反序列化:将二进制转化为对象
   作用:传输数据
1)将这个类标记为可序列化 [Serializable]
2)使用BinaryFormatter类 bf.Serialize  bf.Deserialize

5. 部分类
public partial class Person

6. 密封类
public sealed class Person
密封类不能被继承 但可以继承别的类

7. 重写父类的ToString() Equals(object obj) GetHashCode()
这三个函数都是Object类的虚方法

8. 接口就是一个规范、能力
[public] interface 接口名I...able
{
 接口成员
}
IFlyable fly = new 继承接口的子类
这样同样一条语句 fly.成员 就可以屏蔽不同子类对象的差异了

9. 接口的特点
1)接口不能进行实例化(其他不能实例化的有抽象类,静态类)
2)接口中的成员不允许添加访问修饰符,默认就是public
3)接口中的成员不能有任何实现(“光说不做”,只是定义了一组未实现的方法)
   不允许写有方法体的函数
4)接口的成员中可以包含自动属性,方法和索引器(这三种本质都是方法)
   接口不能包含字段(因为字段是用来存储数据的,接口不存储数据),也没有构造函数
5)接口与接口可以继承,并且可以多继承
6)接口并不能去继承一个类,而类可以继承接口
   接口只能继承于接口,而类既可以继承接口,也可以继承类
7)实现接口的子类必须实现该接口的全部成员
8)一个类可以同时继承一个类并实现多个接口,如果一个子类同时继承了父类A,并实现了接口IA
   那么语法上A必须写在IA的前面
9)显式实现接口的目的:解决方法的重名问题
   什么时候显式地去实现接口:当继承的接口中的方法和类本身所具有的方法同名且同参数的时候,
   需要显式的实现接口
   如:
   void fly() --类本身所具有的方法
   void IFlyable.fly(){}--接口具有的方法
10)当一个抽象类实现接口的时候,需要子类去实现接口

10总结

什么时候用虚方法来实现多态?
父类中的方法有默认的实现,并且父类需要被实例化,这时可以考虑将父类定义成一个普通类,用虚方法

什么时候用抽象类来实现多态?
如果父类中没有默认实现,父类也不需要被实例化,则可以将该类定义为抽象类

什么时候用接口来实现多态?
这几个类中根本找不出来父类,但它们都有一个共同的能力,这个时候用接口

11 GUID
能帮助我们产生独一无二的编号
Guid.newGuid().ToString()

 

0 0
原创粉丝点击