轻松学C#之运算符重载课件.pptx

轻松学C#之运算符重载课件.pptx

ID:57258727

大小:586.83 KB

页数:24页

时间:2020-08-04

轻松学C#之运算符重载课件.pptx_第1页
轻松学C#之运算符重载课件.pptx_第2页
轻松学C#之运算符重载课件.pptx_第3页
轻松学C#之运算符重载课件.pptx_第4页
轻松学C#之运算符重载课件.pptx_第5页
资源描述:

《轻松学C#之运算符重载课件.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章运算符重载C#允许用户根据所创建的类来定义运算符的含义,该过程称为运算符重载。通过重载运算符,可以扩展运算符在类中的作用。运算符重载的优点是:它允许将新的类类型无缝隙地整合进用户自己的编程环境中,这种类型扩展是面向对象语言包括C#的一种重要功能。本章将详细讲解运算符重载的使用。9.1什么是运算符重载运算符重载是根据用户所创建的类来定义运算符的含义。这样运算符的作用完全由用户决定,同时类和类之间的运算符含义可以不同。换句话说,通过运算符的重载改变了运算符运算的规则,可以扩展运算符在类中的作用。通常情况下,运算符只允许数与数、数与数据和数据与数据之间的运

2、算。通过运算符的重载,不同类型的对象都可以进行运算。如下图所示,在教师类Teacher中,通过教师级别的增加,其相应属性也会改变。一般的运算符不能满足这种运算,所以就必须重新定义运算符的规则,这样就产生了运算符的重载。它能让我们更方便的使用不同的运算符。9.2如何重载运算符运算符重载是一个特殊的方法。其语法形式如下图所示。其中,运算符重载方法的访问修饰符必须是public;该方法必须是静态方法;public和static满足一个,就可以了;operator是运算符重载的关键字;op表示要重载的运算符;参数列表表示调用该方法所要传递的参数。【示例9-1】以下

3、代码演示对Team类实现加号运算符的重载。publicstatic是修饰符。Team表示运算的结果类型。operator是运算符重载的关键字。oper1和oper2是Team类类型的两个参数。注意:该参数类型必须是对象或者结构。如果不是,会提示如下错误信息:运算符的参数必须是包含类型。9.2.1一元运算符重载一元运算符只有一个操作数。常见的一元运算符包括非运算(-)、自增运算符(++)和自减运算符(--)。一元运算符重载语法如下图所示。【示例9-2】定义了一个银行账号类Program。通过将非运算符(-)重载,实现将银行账号金额清空的功能。其中,参数必须是

4、对象或者结构类型,否则会提示错误信息:一元运算符的参数必须是包含类型。【示例9-3】定义了一个银行卡类Program。通过自增运算符重载,实现银行卡升级的功能。【示例9-4】定义了一个人年龄的类Program。通过自减运算符重载,实现这个公司的级别的查看。重载自增与自减运算符,只需要返回自增或自减的值,但不改变主调对象。其中,应特别主意前缀和后缀的区别。9.2.2二元运算符重载二元运算符的重载与一元运算符的重载类似。常见的二元运算符有加法(+)、减法(—)。二元运算符重载格式如下图所示。【示例9-5】介绍通过定义类Program。利用重载二元运算符加法(+

5、)运算将整型值加到Program类型对象的各个坐标上,实现坐标轴的平移。示例9-5中将运算符“+”重载,给原本的“+”赋予另一层含义,即将各个x轴、y轴、z轴都相加。实现了坐标轴的平移。9.3关系运算符重载关系运算符,如“==”或“>”,也可以重载。重载关系运算符返回true或false值。重载后的关系运算符可以用于条件表达式。关系运算符重载必须对他们成对重载。例如,如果重载==运算符,那么就必须重载!=运算符。成对重载的运算符有:“==”和“!=”、“<”和“>”、“>=”和“<=”。关系运算符重载格式如下图所示。【示例9-6】利用重载“<”和“>”,判

6、断三个对象的大小,输出最大对象。在该例中,返回数据类型必须是bool,否则会提示错误。错误信息如下:无法将类型”bool”隐式转换为”重载关系运算符.Program”而且,如果重载“<”运算符,那么也必须重载“>”运算符,否则编译器会报错。错误信息如下:运算符”重载关系运算符.Program.operator>(重载关系运算符.Program,重载关系运算符.Program)”要求也要定义匹配的运算符”<”9.4重载true和false关键字true和false也能够作为一元运算符进行重载。一旦给一个类实现了true和false的重载,用户就能够使用该类的

7、对象控制if、while、for和do..while语句,或者在问号表达式中使用它们。通用格式如下图所示。其中,true和false运算符必须成对重载,不能只重载其中一个。两个方法的返回值都是bool类型。【示例9-7】演示如何在Program类中实现true和false的重载。只要至少有一个坐标不为0,那么Program对象就为真。如果所有坐标都是0,那么对象为假。注意:(1)true和false可以作为两个操作符被重载,并且如果重载true那么必然需要重载false,否则编译器会报错。错误信息如下:运算符”重载true和false.Program.op

8、eratortrue(重载true和false.Program)”

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。