Visual_C__2008程序设计-第5章_面向对象.ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Visual_C__2008程序设计-第5章_面向对象

* 5.6 值类型与引用类型 Visual C# 2008程序设计 引用类型变量包含对其数据的引用,引用类型变量赋值的是对对象的引用,而不是复制对象的值,赋值后,两个变量对应的对象是同一个对象。引用类型包括接口、类以及数组。 例:引用同一对象的两Student变量相互影响。 例:引用不同对象的两Student变量相互影响。 1. 值类型与引用类型 * 5.6 值类型与引用类型 Visual C# 2008程序设计 在应用过程中,简单数据类型也可以转化为object类型,转化过程称为装箱;反之,从装箱以后的变量 中提取出值类型的过程则称为拆箱。 以下代码把valueType变量装箱后放到referenceType变量中: int valueType = 0; object referenceType = valueType;//装箱 以下代码则是把上例中已装箱的对象进行拆箱操作: int unBoxing = (int)referenceType;//拆箱,按int类型进行数据提取。 2. 装箱与拆箱 * 5.6 值类型与引用类型 Visual C# 2008程序设计 注意:拆箱操作中,如果装箱的原数据类型与拆箱预期的数据类型不兼容,在编译过程没有语法错误,但运行时将抛出异常: string valueType = “abc”; object referenceType = valueType;//装箱,原始数据不能转化为int类型 int unBoxing = (int)referenceType;//拆箱,按int类型进行数据提取,运行时将抛出异常 此外,由于装箱和拆箱比较耗费CPU资源,所以尽可能避免进行装箱与拆箱过程。 2. 装箱与拆箱 * 5.7 参数的传递 方法在调用时,实参将把值赋值给形参,这个过程称为实参与形参的结合,在赋值过程中,根据变量是值类型还是引用类型,分为按值传递和按引用传递。 Visual C# 2008程序设计 * 5.7 参数的传递 Visual C# 2008程序设计 向方法传递值类型变量意味着向方法传递变量的一个副本。方法内发生的对参数的更改对该变量中存储的原始数据无任何影响。 例:按值传递方式调用方法,但原始数据无任何影响。 1. 按值传递 * 5.7 参数的传递 Visual C# 2008程序设计 当通过值传递引用类型的参数时,有可能更改引用所指向的数据,如某类成员的值。但是无法更改引用本身的值;也就是说,不能使用相同的引用为新类分配内存并使之在块外保持。 例:按引用传递方式调用方法,方法内对数组中的元素进行的修改同样影响方法外的数组。 2. 按引用传递 * 5.7 参数的传递 Visual C# 2008程序设计 对于方法内部,如果修改变量本身引用的对象,则方法内的引用变量的修改不会影响方法外的原始变量的所有数据。 例:按引用方式传递参数,方法内对数组变量引用其他对象,则修改数组元素不影响原始数组。 2. 按引用传递 * 5.7 参数的传递 Visual C# 2008程序设计 在调用方法时,如需要在方法内修改值类型变量后能影响原始变量值,或者需要在方法内修改变量引用的对象后,仍使方法外的变量也自动引用方法体内的新对象,可以明确地使用ref关键字声明方法。 使用ref关键字时,方法签名中的参数列表中,需要使用ref方式传递的参数前,加上ref关键字;在调用方法时,对应实参前也加上ref关键字即可。 3. 使用ref传递参数 * 5.7 参数的传递 Visual C# 2008程序设计 例:使用ref关键字,把值类型的参数传递方式改变成按引用方式传递参数同样的效果。 例:在引用类型参数前使用ref关键字,则方法内设计形参引用新的对象后,原始参数也将引用新的对象。 3. 使用ref传递参数 * 5.7 参数的传递 Visual C# 2008程序设计 在某些情况下,参数在调用方法前无法确定对象,而是在访问体中创建新的对象,此时可以使用out关键字,out关键字的使用方法及应用效果与ref基本一致,但ref的参数在使用前需要初始化,而out关键字对应的参数可以不初始化。 4. 使用out传递参数 * 5.7 参数的传递 Visual C# 2008程序设计 例:在值类型参数前使用out关键字,则方法内对参数值的修改,影响原始参数的值。 例:在引用类型参数前使用out关键字,则调用方法前实参可以不初始化方法内设计形参引用新的对象后,原始参数也将引用新的对象。 4. 使用out传递参数 * 5.7 参数的传递 Visual C# 2008程序设计 o

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档