黑马程序员——第三篇_知识点整理

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


1.string可以看做是char的只读数组,例如:可以遍历string中的每一个元素



2.C#中字符串有一个重要的特性:不可变性,字符串一旦声明就不再可以改变,所以只能
  索引来读取指定为指定位置的char,不能对指定位置的char进行修改


3.如果要对char进行修改,就要创建一个新的字符串,用s.ToCharArray()方法得到字符串
  的数组,对数组进行修改后,调用new string(char[])这个构造函数来创建char数组的字符串。
 一旦字符串被创建,那么char数组的修改液不会造成字符串变化:例如:将字符串中的A换成a
  
4.一切类型都可以调用.ToString()方法转换成字符串类型


5.String类常用的方法
注意点:字符串是不可变的,所以这些函数都不会直接改变字符串的内容,而是把修改后的字符串通过
返回值的形式返回。s.ToLower()与s=s.ToLower()
    ToLower():得到字符串的小写形式
    ToUpper();得到字符串的大写形式:
    Trim();去掉字符串两端的空白
    s1.Equals(s2,StringComparison.OrdinallGnoreCase),两个字符进行比较不区分大小写


6.字符串的分割
    string[] Split(params char[] separator)字符串按照指定的分割符分割为字符串数组;
    string[] Split(char[] separator,StringSplitOptions ooptions)将字符串按照指定的char分割字符串数组
(options去RemoveEmptyEntries的时候移除结果中的空白字符串)


7.字符串替换:string Repalce(string oldvalue,string,newValue);将字符串中的出现oldValue的地方替换为newValue
例子:名字替换。


8.取子字符串:string SubString(int startindex),取从位置startindex开始一直到最后的子字符串;
             string Substring(int startindex,int length),取从位置startindex开始长度为length的子字符串,如果子字符串不足length长度
    则报错


9.bool Contains(string value)判断字符串中是否含有子串value
  bool StartsWith(string value)判断字符串是否以字串value开始;
  bool EndsWith(string value)判断字符串是否以字串value结束;
  int indexof(string value): 取字串value第一次出现的位置
  int indexof(string value,int startindex)取字串从startindex位置起第一个value的位置




10类型转换
is type A is type B仅判断
type A as type B 先判断,再转换 
子类可以自动转父类,父类转子类要通过强转,为了不出错,可以先通过is判断或用as转换




11.多态-隐藏基类方法与多态的实现
子类可以有与父类方法名相同的方法
签名不同(重载)
签名相同(隐藏基类方法)
子类可以重写父类方法
虚方法
重写方法
重写基类方法一样可以调用基类方法
多态就是对象可以表现多个类型的能力
   抽象类与抽象方法由abstract修饰
如果类中的方法加上了abstract,那么这个方法叫抽象方法,同时这个方法所在的类也必须用abstract修饰
那么这个类变成抽象类了

abstract的使用注意
抽象方法没有方法体
抽象成员只能位于抽象类中
抽象类中可以有非抽象成员
抽象类的派生类必须实现抽象方法体
抽象类只能用作基类,不能被实例化

重写:不同对象对于同一个方法调用的不同行为(指不同对象收到相同消息时,会产生不同行为)



12.多态-小结
用父类实现多态
用抽象类实现多态
用接口实现多态
版本控制  要保留基类方法使用new关键字
需要重写方法时使用override关键字




13.接口
完全抽象的一种约定
接口就是用来实现的
[访问修饰符] interface 接口名
{
//接口成员定义
}
接口只有方法,属性,索引和事件的声明
接口是用来实现的,所有成员默认public

14.接口的实现
接口的实现类似于继承

接口是“多继承”
由于多继承,无法保证方法重名问题
可以显示实现接口的成员
<接口名>.方法名(){//方法体}
显示实现的接口成员必须有接口对象来调用


15.类与成员的修饰符大汇总
public internal abstract sealed static
成员(方法)
public private protected internal
protected internal
abstract ,virtual new override
static 
extern() //表示方法可以定义在内部实现在外部


16.ArrayList和HashTable
为什么要用到ArrayList(List)和HashTable(字典Dictionary)

ArrayList元素的增加,插入,删除,清空,排序,反转


HashTable的增,删,查,判存。
foreach(知道实现leumerable接口)


17.索引器
为了方便将类,结构或接口当做数组来使用
索引器用于封装内部集合或数组
定义语法
[访问修饰符]返回类型 this[索引类型 索引名]
{
get或set方法
}
索引器本质就是属性
利用索引可以用key得到项,亦可用项得到序号


18.装箱与拆箱
将值类型赋值给引用类型
对于值类型中的引用成员,保留数据
效率问题


19.泛型集合
List
Directory
默认提供命名空间,提倡使用


20.泛型类
List类对比ArrayList类来学习
Dictoinary类对比HashTable类学习

你可能感兴趣的:(黑马程序员——第三篇_知识点整理)