多态
- 虚方法 virtual override
- 抽象类 abstract override
- 接口 interface
多态就是指不同对象收到相同消息时,会产生不同行为,同一个类在不同场合下表现出不同的行为特征.
接口
- 接口是一种能力
- 接口是一种规范
- 接口功能要单一
- 显式实现接口(接口.函数)
访问修饰符
- public 在哪都可以访问
- private 私有的,只能在当前类的内部进行访问
- internal 只能在当前程序集中访问
- protected 受保护的,可以在当前类以及该类的子类中访问
- 注意点:
- 能够修饰类的访问修饰符只有两个:public和internal(默认就是internal)
- 在同一个项目中,public的权限跟internal是一样的
- 子类的访问权限不能高于父类的访问权限
静态和非静态
- 静态成员:被static修饰
- 实例成员:不被static修饰
- 静态成员先于实例成员被加载到内存中,只有创建了对象,才有实例成员.
- 静态类中只能存在静态成员.
- 什么时候使用静态(作为工具类,在整个项目中资源共享)
设计模式之单例模式
在整个程序中,我们要保证对象必须是唯一的
实现:
- 构造函数私有化
- 声明一个静态字段,作为全局唯一的单例对象
- 声明一个静态函数,返回全局唯一的对象
设计模式之简单工厂设计模式
核心:把所有的子类都当做父类来看待
值类型和引用类型
- 值类型:int double char bool decimal struct enum
- 引用类型:string 数组 自定义类 接口 委托
- 值类型的值存储在内存的栈上,引用类型的值存储在堆中.栈上存储数据的效率要高于堆.
- 值传递:把值类型作为参数传递,把值本身进行传递.(** 注意:ref可以把值传递改变为引用传递 **)
- 引用传递:把引用传递的值作为参数传递,传递的是引用
常用类库String
重要特性
- 不可变性
- 驻留池特性
常用属性及方法
- 属性
length //获得字符串中字符的个数 - 方法
** isNullOrEmpty() 静态方法,判断为null或者为""(静态方法) **
ToCharArray() 将string转换为char[]
ToLower() 小写,必须接收返回值
ToUpper() 大写
Equals() 比较两个字符串是否相同.(忽略大小写的比较,StringComparation)
** IndexOf() 如果没有找到对应的数据,返回-1 **
** LastIndexOf() 如果没有找到对应的数据,返回-1 **
** Substring() 截取字符串 **
Split() 分割字符串
Join() 静态方法,加入
Replace() 替换
常用类库 StringBuilder
StringBuilder仅仅是拼接字符串的工具,大多数情况下还需要把StringBuilder转换为String
- 常用函数
StringBuilder sb = new StringBuilder();
sb.Append(); //追加字符串
sb.ToString(); //把SpringBuilder转换为字符串
sb.Insert(); //插入字符串
sb.Replace(); //替换字符串