方法
什么是方法
- Java方法是语句的集合,它们在一起执行一个功能
- 方法是解决一类问题的步骤的有序集合
- 方法包含于类或对象中
- 方法在程序中被创建,在其它地方被引用
设计方法的原则:方法的本意是功能块,就是实现某个功能块的集合
我们设计方法的时候,最好保持方法的原子性,一个方法一个功能
命名规则: 方法名 首字母小写和驼峰规则
public static void main(String[] args) {
int a =add(3,4);
System.out.println(a);//7
}
//定义的add方法
public static int add(int a,int b){
return a+b;
}
方法的定义
Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段
-
方法包含一个方法头和一个方法体
1. **修饰符** 这是可选的,告诉编译器如何调用该方法,定义了该方法的访问类型 2. **返回值类型** 方法可能会返回值 也可能没有返回值 3. **方法名** 是方法的实际名称,方法名和参数共同构成方法签名,是自己来定义的一个名称 4. **参数类型** 参数是可选的,也可以不包含参数 参数可以是外界传过来的值也可以是写好的实参 5. **方法体** 方法体包含具体的语句,定义该方法的功能
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
方法的重载
重载就是在一个类中,有相同的函数名称,但行参不同的函数
方法重载的规则
1.方法名称必须相同
2.参数列表必须不同(个数不同,或类型不同,或参数排列顺序不同等等)
3.方法的返回类型可以相同也可以不相同
4.仅仅返回类型不同不足以称为方法的重载
方法名称相同时,编译器会根据调用方法的参数个数,参数类型等逐个去匹配,以选择对应的方法
如果匹配失败,则编译器报错
可变参数
在方法声明中,在指定参数类型后加一个省略号(…)
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在它的之前声明
public static void test1(double... numbers){} √ 是对的
public static void test2(int a,double... numbers){} √ 是对的
public static void test3(double... numbers,int a) × 是错误的
递归
递归就是A方法调用A方法,就是自己调用自己
利用递归可以用简单的程序解决一些复杂的问题,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可以描述除解题过程所需要的多次重复计算,大大的减少了程序的代码量,递归的能力在于用有限的语句来定义对象的无限集合
递归的结构包括两个部分
-
递归头: 什么时候不调用自身方法。如果没有头就会陷入死循环
-
递归体: 什么时候需要调用自身方法。
public static void main(String[] args) {
/**
* 5*4*3*2*1
* 4*3*2*1
* 3*2*1
* 2*1
* 1*1
*/
System.out.println(testNum(1)); //1
System.out.println(testNum(2)); //2
System.out.println(testNum(3)); //6
System.out.println(testNum(4)); //24
}
public static int testNum(int num) {
if (num==1){
return 1;
}
return num*testNum(num-1);
}
文档交流群:975395071