面向对象之再谈方法

对上一篇《方法的定义和使用》的知识进阶

一、方法的重载
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。存在同名的方法,即为方法的重载。重载与返回值类型无关,只看参数列表,且参数列表必须不同(个数或类型)。调用时,是根据方法参数列表的不同来区别应调用哪个具体的方法。

总结为:两同一不同,即同一个类、相同方法名、不同的参数列表。

如何确定调用类中哪一个方法:先看方法名---再看参数列表。


经常碰见的面试题:方法的重载与重写的区别?

二、可变形参的方法
javase5.0提供了Varargs机制,允许直接定义能和多个实参相匹配的形参,从而,用更简单的方式,来传递个数可变的实参(0/1/多个)。在javase5.0之前是采用数组形参来支持个数可变的实参。


具体使用:

  1. 可变个数形参的格式:数据类型 ... 变量名。
  2. 当调用可变个数形参的方法时,传入的参数格式可以是1个/0个/多个。
  3. 可变个数形参的方法与本类中(方法名相同,形参不同的方法)之间构成重载。
  4. 可变个数形参的方法与本类中(方法名相同,形参类型也相同)的数组之间不构成重载,不能共存。
  5. 可变个数形参在方法的形参中,必须声明在末尾。
  6. 可变个数形参在方法的形参中,最多只能声明一个。
  7. 当需要遍历(传入的个数不确定的参数)时,可以把它作为数组进行遍历。


三、方法参数的值传递机制(重点)


方法形参的传递机制:值传递
 
形参:方法定义时,声明的小括号内的参数
实参:方法调用时,实际传递给形参的数据
如果参数是基本数据类型,此时实参赋给形参的是,实参真实存储的数据值。
如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值。

四、递归方法recursion

  1. 递归方法:一个方法体内调用他自己。
  2. 方法递归包含了一种隐式的循环,他会重复执行某段代码。但这种重复执行无须循环控制。
  3. 递归一定要向已知方向递归,否则就变成了无穷递归,类似于死循环。



posted @ 2021-05-22 15:03  泥鱼生长  阅读(42)  评论(0)    收藏  举报