day05
什么是方法
完成某一个特定功能的代码块
定义方法格式
修饰符 返回值类型 方法名(参数列表){ //代码省略... return 结果; }
注意
静态方法可以直接调用静态方法
定义方法的两个明确
明确参数列表
该方法在完成一个功能时,需要的参数有几个,参数的类型是什么,需要在我们明确给出的。
明确返回值类型
方法的功能完成之后,是否有结果返回,如果有,使用return 将结果返回给调用者。没有返回值void
什么情况下,我们用return, 除了void以外的都要有return
定义方法注意事项
定义位置:类中方法外,不能嵌套定义
方法必须先定义,再使用
void表示无返回值,不需要书写return
不能在return后面写代码,return意味着方法结束,所有后面的代码记永远都不会执行,属于无效代码
定义方法时()中的参数,我们称之为:形式参数,在调用该方法时传递的参数,我们称之为:实际参数
调用方法三种形式
直接调用
:直接写方法名调用
赋值调用
:调用方法,在方法前面定义变量,接收方法返回值
输出语句调用
:在输出语句中调用方法
注意事项
不能用输出语句调用void无返回值类型的方法。因为方法执行后没有结果,也就打印不出任何内容
方法重载
方法重载概述
在同一个类中,具有相同的方法名, 参数列表不同(参数的个数及类型不同及顺序不同),与返回值类型和访问修饰符无关
参数列表:个数不同,数据类型不同,顺序不同。
重载方法调用:JVM通过方法的参数列表,调用不同的方法。
方法参数传递引用类型
测试代码
public class ArgsDemo02 { public static void main(String[] args) { int[] arr = {10, 20, 30}; System.out.println("调用change方法前:" + arr[1]);//20 change(arr); System.out.println("调用change方法后:" + arr[1]);//200 } public static void change(int[] arr) { arr[1] = 200; } } 结论
对于引用类型的参数,形式参数的改变,影响实际参数的值
结论依据
引用数据类型的传参,传入的是地址值,内存中会造成两个引用指向同一个内存的效果,所以即使方法弹栈,堆内存中的数据
也已经是改变后的结果