方法的概念
在某些语言里叫做函数,它是完成特定功能/任务的独立代码单元。
方法的作用
- 让代码易于复用,避免编写重复的代码,提高编程的效率。
- 让程序更加模块化,从而提高程序的可读性,便于后续的维护
方法的定义(声明)
修饰符 返回值类型 方法名(参数列表){方法体}
public static int sum(int m,int n){
return m+n;
}
注意:
- 若没有参数,则参数列表为空即可。
- return 表示方法结束,并返回数据给调用者。
- 若没有返回值,则声明类型为void,此时无需return.
访问修饰符
访问修饰符就是方法允许被访问的范围,如上述中的main方法,public就是访问修饰符,表示公共的,可以在Java程序的任意位置被访问。static表示静态的,表示谁可以使用该方法,类和类的对象都可以使用。
返回类型
返回类型可以是void和其他任何类型的数据(包括自己创造的数据类型)。void表示空,即该方法没有返回值。
如果一个方法存在返回值,则方法定义上的返回值类型就是该返回值的类型(可以是任意类型,包括自己创建的类型)。
方法名
方法名需要满足标识符的全部规则外还需要满足驼峰原则。
参数列表
参数列表可以省略,既没有参数,同样参数可以有多个,每个参数之间使用逗号间隔,参数由数据类型和参数名构造,类似变量的定义。
方法参数
可变参数
1.在定义方法时,可以声明数量不确定的参数,这样的参数叫可变的参数。
2.一个方法最多声明一个可变参数,并且改参数必须位于参数列表的末尾。
3.可变参数的本质是一个数组,调用时可以分开传入多个值,也可以直接传入一个数组。
4.可变参数方法换成数组不算重载,算重复定义。若有多个重载方法,则可变参数列表存在的方法是最后被访问的(如果主方法所传参数其他重载方法可以满足的话,则调用其他方法,只有其他方法都不满足的时候才会调用可变参数列表所在的方法)。
声明语法
修饰符 返回值类型 方法名(类型 参数1,类型 参数2,...,类型....参数N){}
方法重载
在同一个类中,定义多个名称相同、参数列表不同的方法,叫做方法的重载。
作用:多个重载的方法就像是一个方法,便于记忆,便于调用。
如:System.out.println(),Arrays.toString(),Math.abs()等等。
方法传值
如果方法的参数是基本数据类型,那么在方法内对参数进行修改,不会影响到传递的实际参数,如:参数互换等等。
如果主方法中声明的是数组(引用数据类型),则传值是把变量地址传过去的(数组中第一个元素的地址),在普通方法中修改变量会影响主方法的变量。传值都是传的变量里的值,基本数据类型是值本身,而引用数据类型是对象的地址。
总结:当方法的参数为引用数据类型时,在方法中对参数进行修改,对影响方法外的参数。String类型虽然是引用数据类型,但它经过方法后不会被修改。
方法递归
概念--一个方法调用它自身,被称作方法递归,递归是一个隐式的循环,会循环执行某段代码,却无需循环控制。
递归可以为某些编程问题提供最简单的解决方法,但有些递归会快速的消耗大量的cpu以及内存资源,并且递归不方便理解和阅读。