一、方法是什么
原子性:一种方法只能完成一个功能,这样利于后期拓展。
下面来展示一个简单的方法:
这个是比较简单的方法。
二、方法的构成
(viod表示空的意思)
具体的写法是这样的:
在看一个简单的方法:
三、方法的调用
四、方法重载
重载就是在一个类中,有相同的函数名称,但是形参不同的函数。
五、可变参数
来看例子,
其实这个例子中有许多我都不太明白,在后面的学习中应该能懂。
六、递归
递归简单来说就是数学里的 “!”举个例子:
1!=1
2!=2*1
3! =3*2*1
5!=5*4*3*2*1
...
这就是用代码的形式表达递归,可以看到在sout里面输入对应的数,方法就能计算出对应数的递归。
我们来解释一下f(4)在递归里面的演示过程:可以看到方法里面有n*f(n-1),所以输入4可以得到4*f(3),而f(3)仍然是方法里面的字符,所以f(3)仍然会走方法,得到3*f(2),以此类推...
当得到f(1)=1时,这一串数字里面就没有方法的f了,就可以一个一个往回乘了,最终就是1*2*3*4=24。在这个过程中大致可以分为这样几个阶段:
(图中是以f(5)为例,实际不影响)
一个是边界条件,就是使这个停止的一个条件,在本例中f(1)=1就是边界条件,因为当数字乘到1时就不会再出现f方法了;
一个是前阶段,可以理解为f(4)=4*f(3),f(3)=3*f(2)...这个阶段,在这个阶段的目的可以看作把所有算式中的f方法都去除,去除到没有f方法就可以进行下一阶段了;
最后一个是返回阶段,也就是4*3*2*1这个阶段,得出最后的数为24。
七、作业
这一章的作业是写一个计算器,一开始我打算用scanner实现交互,在用方法写加减乘除,然后在scanner中识别输入的符号就能调用相应的方法,但最后发现在写方法的时候无法实现类似if(num1+num2){}这样的语句,所以就g了。最后还是在网上找到了大佬码的内容,试着理解了一遍,也写出来了。在这个过程中我发现自己用scanner后不关闭,而且写switch也没有加break,导致出现穿透现象,一开始还想不明白,后面一看才知道...说明基础还是没有掌握牢固。最后打上自己写的作业:
最后实现的交互是这样子的:
方法的学习到这里就结束啦!