- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
讲稿文字规范 - 网络教育精品资源共享课-上海交通大学_18106
应用软件开发(C#) 第4章 面向对象编程方法 应用软件开发(C#) 第1章 C#程序设计基础 第4章 面向对象编程方法 王德俊 上海交通大学继续教育学院 第4章 面向对象编程方法 4.1一个简单的程序 4.2 类和对象 4.3 类的继承、重载与多态 4.4 运算符的重载 4.5 接口及其实现 4.6 方法的委托 4.7 常用的几个类 4.8 命名空间 4.4 运算符的重载 4.4.1 一元运算符重载 4.4.2 二元运算符重载 4.4.3 类型转换运算符重载 4.4 运算符的重载 4.4.1 一元运算符重载 可以重载的一元运算符包括:+(取正)、-(取负)、!、~、++、--、true和false。 一元运算符重载的格式如下: 返回类型 operator 运算符(类名 对象形参) { //实现重载的语句 } 其中,operator是运算符重载的关键字。 4.4 运算符的重载 4.4.1 一元运算符重载 class Complex //虚数类 { private double RP; //实部 private double IP; //虚部 public Complex() { RP = IP = 0; } public Complex(double r, double i) { RP = r; IP = i; } public static Complex operator -(Complex c) //一元运算符重载 { Complex c2 = new Complex(); c2.RP = -c.RP; c2.IP = -c.IP; return c2; } public void Show() //输出虚数 { Console.WriteLine({0} + {1}*i, RP, IP); } } 对一元运算符“-”进行了重载,重载后的功能是:取给定的虚数相反数(虚数的实部和虚部分别变为原来的相反数),并以新的虚数返回 用下列代码对该一元运算符的重载效果进行检验: Complex c = new Complex(1,2); Complex c2; c2 = -c; //调用重载的运算符 c.Show(); c2.Show(); 输出结果如下: 1 + 2*i -1 + -2*i 4.4 运算符的重载 4.4.2 二元运算符重载 可以重载的二元运算符包括:+(加法)、-(减法)、*、/、%、、|、^、、、==、!=、、、=、=。 二元运算符重载的格式如下: 返回类型 operator 运算符(类名 对象形参1, 类名 对象形参2) { //实现重载的语句 } 4.4 运算符的重载 4.4.2 二元运算符重载 例如,在虚数类Complex中添加二元运算“+”(加法)的重载方法,其功能是将给定的两个虚数相加后形成新的虚数并返回: public static Complex operator +(Complex c1, Complex c2) //加号+重载 { Complex c3 = new Complex(); c3.RP = c1.RP + c2.RP; c3.IP = c1.IP + c2.IP; return c3; } 4.4 运算符的重载 4.4.3 类型转换运算符重载 在C#中,类型转换运算符重载的格式如下: public static implicit/explicit operator T(S 参数) { //实现重载的语句 } implicit:表示隐式转换,后者表示显式转换,由系统自动完成,在这种转换中不应该出现异常或丢失信息的情况 explicit:如果转换时可能出现异常,就需要使用显式转换。 4.4 运算符的重载 4.4.3 类型转换运算符重载 下列代码重载了从string类型到Complex类的隐式转换运算: public static implicit operator Complex(string s) { s = s.Trim().TrimEnd(i); s = s.Trim().TrimEnd(*); string[] digits = s.Split(+, -); Complex c; c = new Complex(Convert.ToDouble(digits[0]), Convert.ToDouble(digits[1])); return c; } 重载了这种转换运算符后,我们就可以进行类似下面语句的赋值: Co
您可能关注的文档
- 浙江省担保行业现状分析及模式创新研究——以中新力合担保有限公司为例.ppt
- 浙江省疾病预防控制中心crbfz.ppt
- 浙江省自学考试英语(高中起点本科)52.ppt
- 浙江省自学考试英语(高中起点本科)67.ppt
- 浙江省自学考试英语(高中起点本科)71.ppt
- 浦东新区建设健康城区(XX年度) 专项资金绩效评价方案 - 上海财政.ppt
- 浙沪豪宅09特色营销汇总 2010-102页.ppt
- 浴室水温控制系统设计浴室水温控制系统设计单片机-机械注塑模具毕业设计(论文).ppt
- 浪潮IT集团销售经理培训教材( 80页).ppt
- 浪漫满屋家居饰品店个人创业计划书_智库文档.ppt
- 2024外房企参与国家生态文明试验区建设项目合同3篇.docx
- 2024外贸中英文三方国际商务合同审核服务合同模板3篇.docx
- 2024外贸合同模板:中英文版国际贸易合同6篇.docx
- 2024外来施工单位安全生产合作协议书(年度版)3篇.docx
- 2024外教聘用合同中的特殊教育需求与个性化教学方案2篇.docx
- 2024外贸信用保险合同范本及风险防范措施3篇.docx
- 2024外房企跨界合作打造绿色生态居住区合同3篇.docx
- 2024外墙铝型板装饰装修工程安装及验收合同3篇.docx
- 2024外来施工单位安全防护责任书及执行合同3篇.docx
- 2024外墙装饰石材施工劳务分包合同书3篇.docx
文档评论(0)