基础视屏第十一天明天_第1页
基础视屏第十一天明天_第2页
基础视屏第十一天明天_第3页
基础视屏第十一天明天_第4页
基础视屏第十一天明天_第5页
已阅读5页,还剩16页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

对象的引用(S)举例:结构版的Person的赋值与类版的Person的赋值int、decimal、bool、doublebyte

枚举结构等类型(值类型)是传递拷贝;对象(引用类型)则是传递引用。方法间传递对象

String

引用类型

数组

类结构如果写构造函数那么就要把结构中所有的字段全部赋值如果在结构中写了构造函数,那么默认的构造函数还有,和类不同在类中写了有参数的构造函数,无参数的构造函数直接被干掉了并且在类中的构造函数中可以不用把所有字段都赋值堆和栈的区别(*)栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;局部值类型变量、值类型参数等都在栈内存中。堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。值类型和引用类型的区别1.将一个值类型变量赋给另一个值类型变量时,将复制包含的值。引用类型变量的赋值只复制对对象的引用,而不复制对象本身。2.值类型不可能派生出新的类型:所有的值类型均隐式派生自System.ValueType。但与引用类型相同的是,结构也可以实现接口。3.值类型不可能包含null

值:4.每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。.net中哪些是值类型?哪些是引用类型?类

别描

述值类型基本数据类型整型:int长整型:long浮点型:float字符型:char布尔型:bool枚举类型枚举:enum结构类型结构:struct引用类型类基类:System.Object字符串:string自定义类:class接口接口:interface数组数组:int[],string[]为什么要继承分别写一个Teacher类和一个Student的类,分析他们应该有哪些属性和方法.假如系统还要再加入班主任类、校长类

(Principal)、家长类......试分析这几个类的属性?代码冗余,怎么解决?冗余的解决方案继承的符号:利用继承实现Student类和Teacher类继承自Person类.Student类和Teacher类继承父类的属性和方法.Student类和Teacher类还有自己独有的属性和方法.继承的使用(S)class

Student:Person{......};class

Teacher:Person{......};

子类继承了父类的成员,子类还可以有自己的成员.

Person叫做父类(基类)

Student和Teacher叫子类(派生类)

Student继承了Person类

Person类派生了Teacher类在c#中,所有的类都直接或间接的继承自了

object类.(当我们定义一个类的时候,如果没有写:继承一个类,那么这个类就继承了object类)练习:写一个Reporter类和一个Programmer类,Driver类,他们都有一个打招呼的方法,不同的是Reporter

打招呼是说"大家好,我叫

XX,,我的爱好是XXX",Programmer的打招呼的方法是说"大家好,我叫XX,我今年

XX岁了,我已经工作XX年了"?摄影家类Photographer显示调用父类的构造方法实例化子类时是否调用了父类的构造方法?顺序如何?(子类会调用父类默认无参的)利用构造方法设置公共属性,也就是说若父类的构造方法有参数,应该如何处理呢?显示调用父类的构造方法,关键字:baseProtected(S)protected访问修饰符不允许其他非子类访问修改刚刚的练习,父类中把访问修饰符改成protected子类中还能被调用到吗?其他非子类能调用吗?继承的传递性.继承的单根性.类型转换(lsp)(S)Person

p

=new

Teacher();子类可以隐式的转换成父类.Teacher

t=(Teacher)p;is和as

typeA

istypeB

仅判断

typeA

as

TypeB

先判断,再转换

如果成功了那就是真的成功了,如果不成功返回空

//as

也是转换,但是如果转换不了的不报异常,返回来的是null//is

转换,返回的是bool值,true就是能转换,false

就是不能转换练习:自己定义一个父类Person,两个子类

Teacher和Student类.Person写一个有参数的构造方法.自己试试,子类可以自动转父类,父类转子类要通过强转.为了不出错,可以先通过is判断或用as转换.ArrayList和HashTable为什么要用ArrayList(List)和HashTable(字典Dictionary)ArrayList元素的增加、插入、删除、清空、排序、反转。ArrayList集合可以看做数组->创建一个长度为10的数组

数组长度为10,要插入新的数据,就得重新创建数组排序->长度固定,不太灵活使用集合即可方便解决这些问题可以将集合看作为“长度可变的,具有很多方法的数组”ArrayList方法引用System.Collection命名空间手动添加(必须记住命名空间)光标停在代码中,快捷键或鼠标右键(必须记住类名)学习集合可以注意归纳一下可用的方法添加数据:Add()、AddRange()---添加数组用add使用Add可以添加数据,并且与数组一样可以使用“下标”(索引)访问数据使用下标访问的数据是object类型的,必要时需要进行转换,必须满足里氏转换原则为什么要把Add参数设为object的呢?为了通用AddRange将数组或集合当中的数据批量的一个一个的加进来数组或集合中有多少个数据,新集合中就添加了多少个数据,类型等一一对应但Add同样可以将数组或集合作为数据加入,但此时加入将数组或集合作为一个项添加过去只有找到该项,才能通过“下标”访问到其中的数据练习创建一个集合,里面添加一些数字,求平均值与和ArrayList方法插入数据:Insert()使用语法:集合名.Insert(位置,值);位置的确定,使用插入好的数据来数第二个数据就是要插入的数据内容练习:有一个集合,里面存的数据是2

4

6

8

10现在要在里面插入一些数据,使这个集合中的数据变为1

2

3

4

5

6

7

8

9

10删除数据:Remove()、RemoveAt()、Clear()Remove方法arrayList.Remove(数据)删掉集合中,与“数据”相同的数据当集合中不存在这个数据时,直接忽略方法执行从左至右删掉第一个出现的数据,其后数据不考虑RemoveAt方法删掉指定索引出的数据,其后数据依次向前移动当索引超出范围后,异常Clear()ArrayList方法判断是否包含:Contains()Sort等可以处理排序功能(甚至还有Max、Min、AVG等)获得长度使用Count属性练习写一个长度为10的集合,要求在里面随机地存放10个数字(0-9),但是要求所有的数字不重复int

IndexOf(object

args)Random的方法Next()产生一个整数范围内的随机数,Next(num)产生一个小于num的非负整数,就是0到num-1这些数字Next(minNum,maxNum)产生一个在minNum到maxNum-1之间的数字,两端取得到HashTable方法HashTable的增、删、查、判存。添加数据,都是“键值对”的形式键值对均是object类型键值对中的键就是为了找数据用的,必须提供,不允许重复Hashtable使用键作为寻找的方式,是一种无序的结构得到数据使用<hasntable实例名>[键],将返回object类型的,由键对应的数据强转,使用里氏转换原则foreachforeach

(知道实现了Ieumerable接口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论