java方法

      在学完java的基本语法后,进入了方法的学习。方法是一种模块化的组织代码,我们在创建项目时,需要用方法来表达我们的思想,例如我们想要求得两个数的最大值,就可以写出如下方法:

        如图我们可以看出方法的组成——public static+返回值+方法名(形参列表){方法体;}。如果我们想要引用这个方法就需要调用方法名,代入实参,且要用在main方法或者其他方法中,方法名的命名要采用小驼峰的形式。方法的传参和c语言有所不同,它是按值传递的,形参实际上只是实参的一份拷贝。方法的返回值也有很多返回值类型如:int,void,return等,要与方法名的类型匹配,方法中的方法名其实是可有可无的,具体情况要看业务需求。要特别注意,方法体中return后面的语句是不会被执行的。

        上文中提到了求两个数的最大值可以用方法,那么求三个值的最大数呢?我们可以再定义一个方法,让上一个方法求出来的最大值和第三个数比较,从而求得三个数的最大值。我们将这种两个叠加使用叫做方法的重载(overload)。方法重载有四个需要注意的地方——1.方法的名称相同;2.方法的参数列表不同(参数的个数或类型);3.返回值不做要求,可以不同;4.必须要在同一个类中。例如求三个数的最大值我们可以在原来的基础上做出如下优化:

            在我们遇到一些复杂的问题时,例如求得斐波那契数列第n个数,就要用到方法中的“嵌套”——递归,实质上是在定义方法时调用自己本身,但要有一个趋近于终止的条件,否则会发生栈溢出异常(StackOverFlowError),函数的调用会占用栈上的内存,栈的内存一般为1M到2M。求得斐波那契数列第n个数的程序如下:

斐波那契数列问题时典型的多路递归类型,而前面讲到的求最大值问题为单路递归。斐波那契数列问题由于计算量呈指数增长,所以不建议用递归的方法解决,相比之下更推荐用迭代,计算速度明显快于递归。在运用递归方法时,核心思想是找出终止条件,推出递归公式,另外,不要尝试展开代码,要横向思考,更易于写出程序,少走弯路。

        

       

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值