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

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

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


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


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


目录
相关文章
|
8月前
数学基础从高一开始3、集合的基本运算
数学基础从高一开始3、集合的基本运算
72 0
|
8月前
数学基础从高一开始4、集合的基本运算2
数学基础从高一开始4、集合的基本运算2
54 0
|
5月前
|
机器学习/深度学习 存储 人工智能
矩阵乘法运算:在这看似枯燥的数字组合中,究竟蕴含着怎样令人称奇的奥秘?
【8月更文挑战第19天】矩阵乘法不仅是数学概念,还在工程、图像处理及AI等领域发挥核心作用。例如,通过矩阵乘法可精确实现图像变换;在神经网络中,它帮助模型学习和优化以识别图像和理解语言。两个矩阵A(m×n)与B(n×p)相乘得C(m×p),其中C[i,j]为A的第i行与B的第j列元素乘积之和。尽管面临维度匹配等挑战,矩阵乘法仍在持续推动技术创新。下次享受智能服务时,不妨想想背后的矩阵乘法吧。
88 3
|
7月前
|
算法 Java Go
斐波那契数列是一个非常经典的数学问题,在计算机科学中也经常被用作算法设计和分析的例子。
斐波那契数列是一个非常经典的数学问题,在计算机科学中也经常被用作算法设计和分析的例子。
|
8月前
n!的位数:面向对象的解法
n!的位数:面向对象的解法
28 1
|
8月前
|
算法 搜索推荐 程序员
第四十四练 请以递归方式实现计算阶乘的函数
第四十四练 请以递归方式实现计算阶乘的函数
57 1
离散数学_第二章:基本结构:集合、函数、序列、求和和矩阵(1)
离散数学_第二章:基本结构:集合、函数、序列、求和和矩阵(1)
227 0
|
算法
数据结构上机实践第十周项目2 - 用二叉树求解代数表达式
数据结构上机实践第十周项目2 - 用二叉树求解代数表达式
126 0
数据结构上机实践第十周项目2 - 用二叉树求解代数表达式
|
算法
杭电oj HDOJ 2050 折线分割平面(递推)算法 数学逻辑(由分割平面转化而来)
杭电oj HDOJ 2050 折线分割平面(递推)算法 数学逻辑(由分割平面转化而来)
146 0
杭电oj HDOJ 2050 折线分割平面(递推)算法 数学逻辑(由分割平面转化而来)
|
人工智能 BI
具体数学-第4课(多重求和方法一)
今天讲了多重求和,也就是一个和式由多个下标来指定。 首先是最简单的形式
188 0
具体数学-第4课(多重求和方法一)