方法重载(overload).栈(stack).递归(2019-12-30)

方法重载需要的条件、

                     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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 需求变更与需求管理是IT项目中的重要一部分。在项目初期,需求不是很明确时,特别是在需求转化为设计的过程中,需求变更...
    Allen的简书阅读 474评论 0 0
  • 难怪“计划不如变化快”会如此被人们频频挂于嘴边。此句较为经典,我朋友中有一位经常把此杆大旗扛于肩头,乐此不疲...
    林间溪水阅读 480评论 0 0