方法重载需要的条件、
1.在同一个类里面
2.方法名相同
3.参数列表不同(参数类型,个数,顺序)
注意:
1.重载跟返回值类型没有关系
2.重载跟修饰符没有啥关系
class Demo {
public static void main(String[] dsa){
System.out.println("Hello World");
System.out.println(1);
System.out.println("a");
}
//参数个数不同,m1方法构成重载
public static void m1(){}
public static void m1(int 1){}
//参数类型不同,m2方法构成重载
public static void m2(int i){}
public static void m2(long 1){}
//参数顺序不同,m3构成方法重载,但在开发中,不这样使用
public static void m3(int i,long 1){}
public static void m3(long1, int i){}
//这样不行,会报错,方法名重名
public static void m4(){}
public static void m4(){}
//重载跟返回值类型没有关系 编译报错!
public static void m5(){}
public static int m5(){
return 1;
}
//重载跟修饰符没有啥关系 编译错误!
public static void m6(){}
public void m6(){}
}
栈(stack)
特点:先进后出,可以吧栈想象成一个桶,向里面放置元素的时候叫做压栈(push),向外取出元素的时候叫做弹栈(pop)。如果持续地向栈里进行压栈,超出栈的存储空间的话, 就会出现StackOverflowError的错误。
递归
使用方法计算1~n的和
public static void main(String[ ] dasd){
int result =sum(5);
System.out.println(result);
}
/*
n=5,5+sum(4);
n=4, 4+sum(3);
n=3, 3+sum(2);
n=2, 2+sum(1);
n=1, 1
最后 5+4+3+2+1
*/
public static int sum(int n){
if(n==1){
return 1;
}else{
return n+ sum(n-1);
}
}
递归就是方法自己调用自己,要有一个结束条件,否则会出现StackoverflowError