计算两数之和深度理解面向对象

简介: 计算两数之和深度理解面向对象

首先大家先来看第一版代码的样子。


fcfa35f056ea45f5b2d779eb3b807241.png


其次是第二版:


0049be901cdc4105b9480b06419823ca.png


从表面上看,这第二版代码无非也就是定义了两个变量,运行结果一摸一样呀,这完全没咋变呀。


可是真的是这样吗?


首先第一点:从版本一到版本二实现了一个有限到无限的扩展,什么是有限什么是无限呢,哪里表示有限了,哪里又表示无限了呢?版本一中:有限表示是5+6这里,print5+6,它的结果永远智能是11,所以是有限的,版本二中:定义了两个变量a、b,这里的a可以是任意数,b也可以是任意数,再思想上移一点就是从有限的两个数相加到无限个数相加,这里的无限个数相加怎么理解呢?话不多说直接看代码:


60b201e3960947ac861070bac39e6b52.png


这里因为a可以是任意数,所以我把5+1赋值给了a,这样再打印出a+b的结果的话就成了三个数相加,一个是5、一个是1、一个是6,也就是说这里可以是2个数相加,3个数相加,那么无限个数呢?也是可以有的。


那么再来说第二点:这里的a+b实现了一个对算法的封装,从而实现了在这里面具体的对加法的复用。那我这怎么就实现对算法封装了呢?怎么就实现对加法复用了呢?

首先是对算法的封装,算法也包括了很多种,其中也包括了运算方法,我们给他统称为算法,这里的 System.out.println(a+b); 这行代码相当于是对运算方法加法的封装,它也是算法的一种么,所以我们在这里又思想上移了一下,对算法的封装,除了加法我也还可以是减法、除法、乘法。上代码:


62c8355474904d468a634c6dbb3c6189.png


那么复用呢则是体现在,我们只需要去修改a和b的值就可以实现任意数进行相加了。


最后一句:我们做软件开发的需要有想象力和创造力,同样的代码,不同的人看到的却是不同的思想,不同的发展与未来。


目录
相关文章
|
安全 测试技术 数据安全/隐私保护
【好用的个人工具】Docker环境下部署FileDrop文件共享工具
【2月更文挑战第13天】Docker环境下部署FileDrop文件共享工具
355 2
|
12月前
|
数据采集 运维 前端开发
【Java】全套云HIS源码包含EMR、LIS (医院信息化建设)
系统技术特点:采用前后端分离架构,前端由Angular、JavaScript开发;后端使用Java语言开发。
277 5
|
安全 Java
HashMap和Hashtable的区别
HashMap和Hashtable的区别
334 2
|
Kubernetes Linux 调度
Kubernetes详解(十三)——Pod详解
Kubernetes详解(十三)——Pod详解
202 3
|
资源调度 Kubernetes 前端开发
react-intl——react国际化使用方案
react-intl——react国际化使用方案
|
缓存 TensorFlow 算法框架/工具
conda 常用命令, Non-zero exit code,You will need to adjust your conda configuration
conda 常用命令, Non-zero exit code,You will need to adjust your conda configuration
|
Dubbo Java 应用服务中间件
Spring Boot整合Dubbo+Zookeeper实现RPC调用
Spring Boot整合Dubbo+Zookeeper实现RPC调用 技术栈说明 Dubbo:Dubbo作为RPC框架,能在多个服务之间实现远程服务的调用。比如有两个独立的微服务A和B,A服务想要调用B服务时,因为两者不在同个内存空间中,不能直接调用,所以可以通过Dubbo实现这点。 功能和Spring Cloud的Feign相同,两者都是应用于微服务架构的远程调用框架 Zookeeper:作为注册中心去管理Dubbo服务,这点和Eureka、Nacos相同。 概述 通过一个示例说明Dubbo+Zookeeper在Spring Boot中的应用。 现有两个服务provider和con
434 4
|
数据可视化 PyTorch 算法框架/工具
Pytorch中张量的高级选择操作
在某些情况下,我们需要用Pytorch做一些高级的索引/选择,所以在这篇文章中,我们将介绍这类任务的三种最常见的方法:torch.index_select, torch.gather and torch.take
198 0
|
存储 Java 编译器
ThreadLocal、InheritThreadLocal、TransmittableThreadLocal
ThreadLocal、InheritThreadLocal、TransmittableThreadLocal
325 0
|
开发工具 git
在偶有几次git commit的时候出现大量额外文件选择提交?
在偶有几次git commit的时候出现大量额外文件选择提交?
306 1