又到了总结知识的时间,今天在云和学院继续学习了继承的一些运用,和集合的运用。下面就总结下来吧
理论:
显示调用父类的构造方法,关键字: base;构造函数不能被继承;子类对象被实例化的时候会先去主动的调用父类的构造函数。
如果子类与父类的方法名相同,那么我们的对象会去调用子类的对象。
父类和子类的转换
Person p = new Teacher();子类可以隐式的转换成父类.
转换的前提是转换的类确实存在着继承的关系。
访问修饰符
private : 私有成员, 在类的内部才可以访问。
类中字段和方法默认的访问修饰符 是private
public : 公共成员,完全公开,没有访问限制。
internal: 当前程序集内可以访问。
protected : 保护成员,该类内部和继承类中可以访问,不允许其他非子类访问
ArrayList集合
可以将集合看作为“长度可变的,具有很多方法的数组
只有找到该项,才能通过“下标”访问到其中的数据
ArrayList元素的增加、插入、删除、清空、排序、反转。
集合的长度用Const来表示。
• 引用System.Collection命名空间
• 手动添加(必须记住命名空间)
• 光标停在代码中,快捷键或鼠标右键(必须记住类名)
学习集合可以注意归纳一下可用的方法
添加数据:Add()、AddRange()---添加数组用add
• 使用Add可以添加数据,并且与数组一样可以使用“下标”(索引)访问数据
• 使用下标访问的数据是object类型的,必要时需要进行转换,必须满足里氏转换原则
• 为什么要把Add参数设为object的呢?为了通用
• AddRange将数组或集合当中的数据批量的一个一个的加进来
• 数组或集合中有多少个数据,新集合中就添加了多少个数据,类型等一一对应
• 但Add同样可以将数组或集合作为数据加入,但此时加入将数组或集合作为一个项添加过去
插入数据:Insert()
使用语法:集合名.Insert(位置, 值); // 位置的确定,使用插入好的数据来数 第二个数据就是要插入的数据内容
删除数据:Remove()、RemoveAt()、Clear()
Remove方法
• arrayList.Remove(数据)
• 删掉集合中,与“数据”相同的数据
• 当集合中不存在这个数据时,直接忽略
• 方法执行从左至右删掉第一个出现的数据,其后数据不考虑
RemoveAt方法
• 删掉指定索引出的数据,其后数据依次向前移动
• 当索引超出范围后,异常
Clear()
判断是否包含:Contains()
Sort等可以处理排序功能(甚至还有Max、Min、AVG等)
Next()
•产生一个整数范围内的随机数,Next(num)
HashTable方法
• HashTable的增、删、查、判存。
• 添加数据,都是“键值对”的形式
• 键值对均是object类型
• 键值对中的键就是为了找数据用的,必须提供,不允许重复
• Hashtable使用键作为寻找的方式,是一种无序的结构
• 得到数据
• 使用<hasntable实例名>[键],将返回object类型的,由键对应的数据
• 强转,使用里氏转换原则
泛型集合
• 泛型集合就是为了专门处理某种类型
• ArrayList对应的是 List<类型名>
• 在尖括号中写什么类型,这个集合就变成了什么类型的集合
• 添加数据、插入数据、索引访问数据都是这个类型的,不用考虑所有的转化问题
实操:
ArrayList集合的运用
HashTable运用
泛型集合的运用
好了,由于我对父类和子类的转换还不是太明白,所以今天很抱歉没能总结上。到明天我弄明白后在仔细的补上今天遗留下的。加油!