方法

方法

​ 是语句的集合。组成执行一个功能

​ 解决一类问题的有序组合

​ 包含在类或对象中

​ 在程序中被创建,在其他地方被引用

​ 设计原则: 一个方法只完成一个功能 ->有利于后期的扩展

定义和调用

​ 方法的成分: 方法头+方法体

		[修饰符] 返回值类型 方法名([参数类型 参数名]){
				//	方法体
		return 返回值;

} 

调用

​ 方法名()

方法重载

​ 拥有相同的方法名,但是形参不同的方法

​ 规则: 方法名相同、参数列表不同,返回值类型可变

​ 实现理论: 当方法被调用时,编译器会根据调用方法的参数个数、类型等逐个匹配。

​ eg:

void function(int i){}

void function(double i){}

可变参数

​ 可以传递多个同等类型的方法形式

​ 在方法声明时,在指定参数类型后加一个省略号 …

​ 规则: 一个方法只能指定一个可变参数、且必须是最后一个参数。

public static void main(String[] args) {
        function(1,2,3,4,5);


    }


    public static void function(int... i){ //本质传入的就是一个数组
        for (int num : i) {
            System.out.println(num);
        }
        
    }

递归

本身 调用 本身

用处:

​ 用于把一个复杂的问题层层转化为一个与原问题类似的小问题来求解

优点:

​ 用少量的程序描述出解题过程所需要的多次重复计算,减少代码量。

结构:

​ 递归头:什么时候不调用自身方法。

​ 递归体:什么时候需要调用自身方法。

eg:

    /*
        问题描述:
            1!=1
            2!=  2*1
            3!= 3*2*1
            ...
            n! = n*....*1
     */

    public static void main(String[] args) {
        System.out.println(factorial(3));
    }

    public static int factorial(int n){
        if (n == 1){
            return 1;
        }else {
            return n*factorial(n-1);
        }

    }
使用逻辑:
	factorial(3) =>					 				 6
		3*factorial(2) =>				 		 3*2 ^
			2*factorial(1) =>                 	2*1 ^
				1*factorial(1)->return 1 =>  1  ^
   

​ 注:

​ 由于占用内存较大、不推荐使用。

​ 仅在递归层数较少时推荐使用

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值