文章目录
对昨天的知识的一个补充,关于方法的重载
前言
方法的重载是在不改变方法的名字情况下对参数列表进行修改,这样做的目的是可以使得方法来适应诸多场景,不用在不同时候来从新构建新的同名方法来进行处理了,大大提高了工作的效率
提示:以下是本篇文章正文内容,下面案例可供参考
一、方法的重载(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提供了大量能使我们快速便捷地处理数据的函数和方法。