目录
1.方法的基本语法
1.1什么是方法?(method)
对于方法我的基本理解就是给你复杂的代码找了一个箱子装了起来,在你需要的时候你可以直接把这个箱子拿过来用的,其实简单来说这个箱子装的是你已经写好的代码,在你需要的地方你可以直接拿出来用的。不用在重复你写的代码,这样子的话是比较麻烦的。
1.2方法定义语法
举个简单的例子:实现两个数相加,按照正常的代码我们会这样子写。
下面是用上方法之后的代码:
注意事项:在定义是可以没有参数,但是如果有的话一定要定义参数的类型,否则可能会报错。
定义时,返回值也可以没有但是没有的时候你的返回值类型应该是void。
定义时为形参,调用时则为实参。
定义必须在类中。
1.3方法调用的执行过程
基本规则:定义的时候是不会执行方法的代码,只有调用后才执行。
调用时会将形参赋值给实参。
传递完毕后会执行到方法体代码中。
执行完毕会回到方法调用位置继续往下执行。
一个方法可以被多次使用。
继续用两个数相加举例:
可以发现我们多次调用add来进行执行代码。
1.4实参和形参的关系
当你交换两个变量的时候你会发现用方法其实并没有将其交换而是直接打印的是我原本的值,打印的仅仅只是形参的值而不是实参的,就适当你在方法里面写的仅仅只是实参进行赋值的东西,而不是你将要打印的东西。
实际打印出来这两个数字是没有交换的,所以打印的是形参的值而不是实参的。可以看出来对x和y修改并不影响a和b。
可以用数组来解决这个问题:
1.5没有返回值的方法
方法的返回值是可选的,可以有也可以没有。因为不全是main函数。
2.方法的重载
2.1重载解决的问题
在一段代码中,可能会遇到不同类型的但是却在一个代码块的情况下,为了不至于那么麻烦去进行分步代码,多以可以用到重载,当然这是解决不同类型的问题时才会用到,如果两个根本不是一个方式进行运算的那么代码会出错的。
2.2使用重载
代码示例:
不难看出方法的名字都叫add,但是又int相加的和double相加的,有的是两个相加有的是三个相加,所以同一个方法名字,提供不同的版本实现,称为方法重载。
2.3重载的规则
针对同一类:
方法名相同。方法的参数不同(参数个数或者参数类型)。方法的返回值类型不影响重载。
这就是会报错,因为已经定义了方法。
当两个方法的名字相同,参数也相同,但是返回值不同的时候不构成重载。
3.递归方法
3.1递归的概念
一个方法在执行递归的时候是要调用自身的,就是递归,要推导递推公式,而且要有一个趋近于中止的条件。
代码示例:
3.2递归过程的分析
思考方式:不要去展开直接横向思考就好,如果展开的话会很麻烦。其实可以考虑是一个自身循环的过程当你的代码再往下执行时会返回去继续执行直到最后,然后会带着最后的那个值继续执行你前面的代码。