​被冷落的运算符重载

基本类型可以使用运算符进行运算、比较、取反等操作。如果想使用运算符操作两个对象,我们就需要用到运算符重载。我们先看个例子,假如有个房子类,有长和宽两个属性。代码如下:

接下来我们使用House类实例化两个对象:house1、house2,再比较这两个对象是否相等。代码如下:

上面代码应该我们会写的很多,如果次数不多也没事,但如果到处判断,就会显得代码很累赘。这时我们可以重载==和!=这两个运算符,重载后就可以对两个对象进行运算符直接操作了。代码如下:

你也看到了,其实就是把if里的判断代码挪到重载方法中了,没什么了不起嘛,修改下调用的地方。代码如下:

如果项目中有50处这样的判断,那这样一封装,可以减少50个地方的代码量和出错概率。

如果你对这个简单的知识还有兴趣,我们可以接着再看个例子:假如需要将两个订单类合成一个新订单。我们通常做法是建立一个新的订单对象,然后将待合并的订单数据加到一起。代码如下:

这样写其实也没什么问题,不过重载运算符会让上面代码更简单。我们重载下+号运算符,代码如下:

调用的地方再改下,代码如下:

好了,讲完了,东西非常简单,相信大家实际开发中运算符重载肯定用的非常少。没关系,如果你对这个点有兴趣,可以去了解下。最后再补充一下,其实运算符重载在框架中运用的非常多,比如两个字符串通过加号拼接。

好了,拜拜~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

neo4j 查询同一节点的两个上级_WhatRoute for Mac(互联网流量诊断查询工具)

如果您想在不使用命令行的情况下执行流量诊断查询,那么WhatRoute是一个不错的选择。WhatRoute提供了一个干净且有条理的界面,主要提供Traceroute功能,但也可以执行Ping,域名服务查询,Whois查询以及监控进出计算机的流量…

快来参加学习.NET 挑战赛

今天访问dot.net 网站看到了一个学习.NET 挑战赛,发现已经赛程过半了,这是一个为那些想更多地了解 C# 和 .NET 的人举办的一个完全免费的课程活动,这些模块必须在 11 月底前完成。参加这个挑战赛,你必须从 .NET 学习挑战页面进入进…

excel怎么设置打印区域_别再浪费打印纸了!这样设置,Excel表格再大都能打印成一页!...

在打印Excel表格时,你是不是经常碰到过这种情况:明明排版好的表格,结果打印完却发现只显示一半......表格太宽导致无法打印在A4纸上......今天叨叨君就来分享几个有效的解决方法,教你轻轻松松将表格打印在一页纸上,一起…

xcode 修改 infodictionary_安卓系统修改复位键生效时间

文档说明本文档以SC806-CN-00(msm8909平台,Android 7)为例,说明如何修改复位键生效时间。应用背景默认情况下,按复位键,系统马上直接关机。在实际应用中,有可能由于干扰造成的抖动导致误关机行为。 为避免发生这种情况…

为什么曾经优秀的人突然变得平庸?

职场&认知洞察 丨 作者 / findyi这是findyi公众号分享的第95篇原创文章一个读者的提问:洋哥,我从小都是学霸,本硕都是985,计算机科班出身,但进入职场后却始终无法取得突破。工作5年还是基层员工,我该怎…

java编程_Java编程和C语言的比较

很多人都拿Java编程和c语言相比较,那么今天小编就来先说说个人理解吧,新手学习Java很简单,上手也很容易,只需要会拼音就可以,简单而且没有门槛,而c语言学习成本高,更需要投入较大的精力&#xf…

.NET Core3.1升级.NET5,坑还真不少...

11月11号是电商狂欢的日子,也是.NET5正式发布的日子,媳妇儿等着零点秒杀,我却在刷新着微软官网等更新,然后第一时间开始折腾。此前Scott Hunter在博客信誓旦旦.NET Core3.1平滑迁移.NET5,于是当天就去升级我的宝藏项目…

requestPermissions读写手机存储权限_泛圈云盘可为企业建立高效安全的云办公在线协同文档存储?...

泛圈企业云盘结合智能手机和无线网络,实现对任何办公地点和办公时间的无缝访问,提高办公效率。它可以连接客户原有的各种IT系统,包括OA、邮件、ERP等各种个人业务系统,使手机也可以用来操作、浏览、管理公司的所有工作事务&#x…

怎么将SVG转成PNG(.NET工具包编写)

序一天,作者在深圳湾吹风时突然想到自己还有 20 多位粉丝,所以决定每周至少要水一篇文章。众所周知,一篇文章要有封面,正痛苦时,.NET 官方网站更新了一大波质量上乘的插图;高兴之余,发觉平台不支…

ghelper怎么在手机上用_当长时间不用手机玩《崩坏3》、《战双》

崩坏3、战双,虽然是手机游戏,作为一个PC党,我还是热衷于用电脑玩游戏。用电脑玩游戏可以把画质全部开到最大,依旧可以顺畅地进行游戏。手机就不行,即使是苹果,把画质拉满,依旧会有卡顿。特别是崩…

System.Text.Json中时间格式化

转自:Rayomcnblogs.com/Rayom/p/13967415.html简介.Net Core 3.0开始全新推出了一个名为System.Text.Json的Json解析库,用于序列化和反序列化Json,此库的设计是为了取代Json.Net(Newtonsoft.Json)时间格式化的不足System.Text.Json的优点就不…

windows server 启用 vss_windows服务器常用的安全加固方法

Windows操作系统本身已经提供了多种安全机制,如标识与鉴别、访问控制、用户账户控制、安全审计、文件系统。但是,这并不意味着操作系统就固若金汤。事实上,任何一个Windows版本都或多或少的存在着漏洞,而且在不断的被挖掘出来。Wi…

说说 C# 9 新特性的实际运用

前言你一定会好奇:“老周,你去哪开飞机了?这么久没写博客了。”老周:“我买不起飞机,开了个铁矿,挖了一年半的石头。谁知铁矿垮了,压死了几条蜈蚣,什么也没挖着。”所以,…

thinkpad笔记本散热风扇_十代酷睿笔记本低至2999元 你可以入手了_笔记本新闻

这年头3000元能干什么?买一套化妆品还是一套乐高积木?现在很严肃地告诉你,可以买一台笔记本,而且是搭载英特尔第十代酷睿处理器的轻薄笔记本——联想ThinkPad 翼14 Slim。联想ThinkPad 翼14 Slim轻薄笔记本其搭载了英特尔十代酷睿…

BenchmarkDotNet v0.12x新增功能

起因在看.Net 官方博客 .Net 5性能优化 中,发现测试性能的BenchmarkDotNet版本已经是v0.12.1,然后去看BenchmarkDotNet文档,发现还是有不少新的特性.v0.12.0支持多个运行时(API改进),增加对.Net 5支持支持DotNet创建BenchmarkDotNet项目(项目模版)增加NativeMemoryProfiler(目前…

centos amd双显卡_PCIe4.0和PCIe3.0对显卡性能差别大吗?

众所周知,AMD X570、B550主板,包括RX3000系列显卡,率先支持了PCIe 4.0协议,高达32GB/s带宽,相比现在的PCIe3.0带宽足足翻了一倍,也是AMD新平台一大卖点,然而intel却无动于衷,并各种表…

我画着图,FluentAPI 她自己就生成了

在 Newbe.ObjectVistor 0.3 版本中我们非常兴奋的引入了一个紧张刺激的新特性:使用状态图来生成任意给定的 FluentAPI 设计。开篇摘要 在非常多优秀的框架中都存在一部分 FluentAPI 的设计。这种 API 设计更加符合人类自言语言描述。使得代码更加具备可读性。在 New…

java爬虫基础知识,Java网络爬虫基础知识

引言Java 网络爬虫具备很好的扩展性可伸缩性,其是目前搜索引擎开发的重要组成部分。例如,著名的网络爬虫工具 Nutch 便是采使用 Java 开发,该工具以 Apache Hadoop 数据结构为依托,提供了良好的批解决支持。Java 网络爬虫涉及到 J…

.NET5都来了,你还不知道怎么部署到linux?最全部署方案,总有一款适合你

随着2020进入4季度,.NET5正式版也已经与大家见面了。不过,尽管 .NET Core发布已经有四五年的时间,但到目前为止,依旧有很多.NET开发者在坚守者.NET4,原因不尽相同,但最大的问题可能还是不熟悉Linux&#xf…

好用的平板电脑_平板选择华为M6,这里有几点建议

大家好,我是师兄。平板几乎已经成大学生生活中必备的物品之一了,现在的学生实在是太会享受了。作为华为M6的重度使用用户,在这里给大家在购买华为平板M6时提几点建议。1.质量挺好的,品制有保证购买华为平板M6已经半年了&#xff0…