Java-5.方法
01- 方法
- 方法是解决一类问题的步骤的有序组合
- 包含于类或对象中
- 在程序中被创建,在其他地方被引用
设计原则:
最好保持方法的原子性,一个方法只完成1个功能
02-定义和调用
定义
方法包含一个方法头和一个方法体
所有部分
修饰符 返回值类型 方法名(参数类型 参数名){
方法体
return 返回值;
}
- 修饰符:可选,告诉编译器如何调用该方法,定义方法的访问类型
- 返回值类型:方法可能会返回值
- 无返回值:关键字void
- 方法名:方法的实际名称,方法名+参数表=方法签名
- 参数类型:参数列表指方法的参数类型、顺序和参数的个数。参数可选,方法可以不包含任何参数
- 实参或变量:方法被调用,传递值给参数
- 形式参数:方法被调用,用于接受外界输入的数据
- 方法体:包含具体的语句,定义方法的功能
调用
调用方法:对象名.方法名(实参列表)
Java支持2种调用方法的方式,根据方法是否返回值来选择
1.方法返回一个值:
int larger=max(30,40);
2.方法返回void
03-重载
定义
在一个类中,有相同的函数名称,但形参不同的函数
规则
- 名称必须相同
- 参数列表必须不同[个数、类型、参数排列顺序]
- 返回类型可相同/不同
- 只有返回类型不同->不能构成方法的重载
实现理论
方法名称相同时,编译器会根据调用方法的参数个数、类型去逐个匹配,选择对应方法,如果匹配失败,则编译器报错
命令行传参
实现先运行程序,再传递消息:
用传递命令行给main()函数
可变参数
-
JDK1.5开始,Java支持传递同类型的可变参数给一个方法
-
在方法声明中,在指定参数类型后加一个省略号(…)
-
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明
04-递归
(重点)
-
A方法调用A方法
-
利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述岀解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。
递归结构包括两个部分
-
递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
-
递归体:什么时候需要调用自身方法
package com.kuang.method;
public class Demo05 {
// 阶乘n! n*n-1*...*1
public static void main(String[] args) {
System.out.println(f(5));
}
/* 1! 1
2! 2*f(1)
...
n! n*f(n-1)*f(n-2)*...*1
*/
public static int f(int n){
if(n==1){
return 1;
}
else {
return n*f(n-1);
}
}
}