JavaSE——基础知识回顾06(补充)之方法的重载

文章目录

对昨天的知识的一个补充,关于方法的重载



前言

方法的重载是在不改变方法的名字情况下对参数列表进行修改,这样做的目的是可以使得方法来适应诸多场景,不用在不同时候来从新构建新的同名方法来进行处理了,大大提高了工作的效率


提示:以下是本篇文章正文内容,下面案例可供参考

一、方法的重载(Overload)

(1)案例演示

public class Test04{
	/**
		知识点:方法的重载
		
		含义:方法与方法之间的关系
		好处:系统会根据实参类型自动匹配到对应方法
		条件:
			1.在同一个类里
			2.方法名一致
			3.参数列表的个数或者类型不一致
			4.与返回值无关
		应用场景:
			在同一个类里,有多个方法功能一致,细节实现不一样,就可以考虑使用重载
		
		需求:编写一个方法,求两个int之和
		需求:编写一个方法,求三个int之和
		需求:编写一个方法,求两个double之和
		需求:编写一个方法,求三个double之和
		
		需求:编写一个方法,求两个int最大值
		需求:编写一个方法,求三个int最大值
		需求:编写一个方法,求四个int最大值

	*/
	public static void main(String[] args){
		
		System.out.println(add(10,20));
		
		System.out.println(getMax(10,20,30,40));
	}
	
	public static int getMax(int a,int b){
		return (a>b)?a:b;
	}
	
	public static int getMax(int a,int b,int c){
		int max = getMax(a,b);
		max = getMax(max,c);
		return max;
	}
	
	public static int getMax(int a,int b,int c,int d){
		int max = getMax(a,b);
		max = getMax(max,c);
		max = getMax(max,d);
		return max;
	}

	
	public static int add(int a,int b){
		return a+b;
	}
	
	public static int add(int a,int b,int c){
		return a+b+c;
	}
	
	public static double add(double a,double b){
		return a+b;
	}
	
	public static double add(double a,double b,double c){
		return a+b+c;
	}
}

(2)小总结

方法的重载可以使用多种不同的场景,灵活使用的话可以方便后期的开发工作中

二、面试题部分(补充与拓展)

(1)、递归算法

递归算法是一门偏向于逻辑思维的算法,面试中有很大可能性会抽查,生活中也会有涉及
概念:所谓递归就是方法自己调用自己
使用注意:
1、使用递归方法要找到 合适的规律
2、找到合适的出口(即合理使用 return语句),不然后果就是陷入死循环
3、陷入死循环的原因:调用方法,就会在栈内存中开辟空间,用于存放该方法的局部变量,
死循环的调用方法,栈内存就会满载并溢出

//错误代码演示
//如果执行以下操作 将会陷入死循环中,原因就是没有找到合适的出口
public static void main(String[] args]{
		method();
}
public static method(){
	method();
}

(2)递归案例演示

1、计算斐波那契数列(不死神兔案例)
2、计算数的阶乘

//案例一、菲波那切数列
/**
		知识点:递归案例(不死神兔案例)就是斐波那契数列
		
		概念:方法调用方法自身
		注意:
			1.找规律(前两个数的和是第三个数)
			     1,1,2,3,5,8,13,21,34,55,89,144.....
			2.找出口
		
		需求:有一对兔子,从出生后第3个月起每个月都生对兔子,
		小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,
		问n月的兔子总数为多少?
			找规律:当月兔子个数 = 上月兔子个数+上上月兔子个数
			找出口:第一个月和第二个月兔子都是1对

		
	*/
	public static void main(String[] args){
		
		System.out.println(getRabbit(9));
	}
	
	public static int getRabbit(int month){
		if(month==1 || month==2){
			return 1;
		}else{
			return getRabbit(month-1) + getRabbit(month-2);
		}
	}
//案例二
public class Test06{
	/**
		知识点:递归
		
		概念:方法调用方法自身
		注意:
			1.找规律
			2.找出口
		
		需求:编写一个方法,传入n,求n的阶乘
		
		阶乘:数学中的概念
		5! = 1*2*3*4*5	-->	5! = 4!*5
		4! = 1*2*3*4	--> 4! = 3!*4
		3! = 1*2*3		--> 3! = 2!*3
		2! = 1*2		--> 2! = 1!*2
		1! = 1			--> 1! = 1 找出口
						--> n! = (n-1)! * n 找规律
	*/
	public static void main(String[] args){
		
		int num = method(5);
		System.out.println(num);
	}
	
	public static int method(int n){
		if(n != 1){
			return method(n-1)*n;
		}else{
			return 1;
		}
	}
}

阶层的结构分析图
在这里插入图片描述

(2)小总结

本次任务主要是对上一次内容的一个补充,重点应该是在递归的理解上,以后可能会有面试题,希望能给大家一点小帮助吧

2.读入数据

代码如下(示例):

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sugar-free->小粽子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值