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

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

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


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的值就可以实现任意数进行相加了。


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


目录
相关文章
|
前端开发 Java Maven
解决ServletException: Circular view path异常的方法
解决`ServletException: Circular view path`异常涉及检查视图路径配置、请求处理逻辑、依赖版本冲突,以及使用重定向、注意`forward`和`include`的使用。检查代码中是否存在循环调用并修正,参考Spring MVC文档和Stack Overflow相关问题。
632 1
|
JSON JavaScript 数据格式
jwt-auth插件实现了基于JWT(JSON Web Tokens)进行认证鉴权的功能。
jwt-auth插件实现了基于JWT(JSON Web Tokens)进行认证鉴权的功能。
344 1
|
3月前
|
安全 JavaScript Java
Python中None与NoneType的真相:从单例对象到类型系统的深度解析
本文通过10个真实场景,深入解析Python中表示“空值”的None与NoneType。从单例模式、函数返回值,到类型注解、性能优化,全面揭示None在语言设计与实际编程中的核心作用,帮助开发者正确高效地处理“无值”状态,写出更健壮、清晰的Python代码。
386 3
|
6月前
|
Linux 虚拟化 iOS开发
Rocky Linux 10 x86_64 OVF (sysin) - VMware 虚拟机模板
Rocky Linux 10 x86_64 OVF (sysin) - VMware 虚拟机模板
390 35
Rocky Linux 10 x86_64 OVF (sysin) - VMware 虚拟机模板
|
5月前
|
供应链 搜索推荐 前端开发
跨境卖家必看!2025年1688图片搜索相似商品新功能解锁全球供应链
1688图片搜索商品接口支持通过上传图片查找相似商品,适用于电商选品、竞品分析与供应链溯源。具备高精度匹配与灵活筛选功能,可识别多角度及局部特征,并支持结合类目、价格、起订量等参数过滤结果,提升选品效率与购物体验。
|
数据采集 运维 前端开发
【Java】全套云HIS源码包含EMR、LIS (医院信息化建设)
系统技术特点:采用前后端分离架构,前端由Angular、JavaScript开发;后端使用Java语言开发。
324 6
|
8月前
|
关系型数据库 MySQL 数据库
|
缓存 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
512 4
|
存储 Java 编译器
ThreadLocal、InheritThreadLocal、TransmittableThreadLocal
ThreadLocal、InheritThreadLocal、TransmittableThreadLocal
378 0