Loading... # 方法定义 表示程序中可重复使用的一段代码集合可完成独立的功能 # 方法定义的格式 ```java [修饰符] 返回值类型 方法名([参数类型 形参 1, 参数类型 形参 2, ...]) { // 方法体; [return 返回值]; // 当方法需要给调用者返回值时 } ``` - 当方法无返回值时,**必须**给出返回类型 `void` - 参数列表 / 参数清单,包含参数的个数、参数类型、 参数顺序 - **方法签名**:方法名 + 方法参数列表,判断是否是同一个方法的标准 - 在同一个类中,**方法签名是唯一的**,否则编译报错 - 考虑当调用者传入数据的**范围**不合理时,该如何处理(进行参数校验) # 方法定义的位置 - 在类中,其它方法之外 - 方法之间声明顺序无规定 # 方法的调用 - main 方法由 JVM 来调用 - 使用 `static`修饰的方法:属于这个类本身,方法所在类名.方法名([实参 1, 实参 2, …]) - 无`static`修饰的方法:属于该类的对象,不属于这个类本身,使用方法所在类的**对象**来调用,对象.方法名([实参 1, 实参 2, …]) - 针对于有返回的方法,调用者可以用对应类型的变量去接收返回值,**也可以不去接收** # 方法重载 Overload ## 作用 解决了在同一个类中相同功能由于参数列表不同造成**方法名不同**的问题 ## 规则 - 两同:同类中,方法名相同 - 一不同:方法**参数列表不同** 注意:方法重载**与方法的返回值类型、修饰符无关** # 方法参数的值传递机制 方法被调用时,方法里的参数是以**值传递**的方式传递的,即传递的是实参的**副本** - 参数是基本数据类型:直接传递**实参值**的副本 - 参数是引用数据类型,传递的是实参**所引用的十六进制地址值**的副本 # 形参个数可变的方法 ```java // 与 getSum(int[] arr) 的方法签名相同 static int getSum(int... arr) { // 操作 arr 数组 } // 调用 getSum int sum = getSum(1, 2, 3, 4); int sum = getSum(); ``` - 定义方法时,在**最后一个形参的类型后**增加三点(…),表明该形参可以接受多个参数值 - 作用:调用者不用创建数组;调用时对应的实参可以没有(动态初始化一个数组长度为 0 的数组进行传递) - 本质就是一个数组参数:底层,在调用该方法的时候,用对应的实参作为元素创建一个数组,再将该数组传递给形参 - 注意:一个方法最多只有一个可变参数,必须放在参数列表最后 # 递归方法 - 一个方法的方法体实现中再次调用了方法本身 - 递归一定要向**已知方向**递归 最后修改:2022 年 07 月 30 日 © 允许规范转载 打赏 赞赏作者 赞 如果觉得我的文章对你有用,请随意赞赏