<font face="微软雅黑" size=5 color=#660000 >
Java学习笔记Day11
一、前情回顾
第十天学习了JVM内存的基本知识以及方法基础知识。为下周的面向对象的学习做准备。
二、今日学习内容
(一)、方法重载
1、什么条件满足后构成了方法重载?
在同一个类中,方法名相同,参数列表不同(数量、顺序、类型不同)
2、方法重载和什么有关系,和什么没有关系?
与方法名和参数列表有关系。
3、例子
需要调用一个输入int整型数字和double类型的数字的方法,由于功能相似,可以使用同一个方法名。
public class Printf {
public static void main(String[] args) {
sum(6,8);
sum(6.66,8.88);
sum(6L,8L);
}
public static void sum(int x,int y) {
System.out.println(x+y);
}
public static void sum(double x,double y) {
System.out.println(x+y);
}
public static void sum(long x,long y) {
System.out.println(x+y);
}
}
(二)、方法递归
1、使用循环结构对1-N这N个数进行求和。
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int sum=0;
int n=input.nextInt();
for(int i=1;i<=n;i++) {
sum+=i;
}
}
2、什么是递归?
就是方法自身调用自身。递归算法非常消耗栈内存,能不用就不用。
但是在一些特殊的地方需要使用递归。
public class Digui {
public static void main(String[] args) {
int n=4;
int number=sum(n);
}
public static int sum(int n) {
if(n==1) {
return 1;
}
return n+sum(n-1);
}
}
这里进入sum(n)之后,又会再次调用sum(n-1),所有的值处理好了就会完成1-N的求和。
3、递归和循环结构各有什么特点呢?
列出你的猜想并可以通过实践验证。
4、尝试画出递归时候的JVM内存图像。
三、下周学习目标:
面向对象相关内容
|