一、方法重载

1.又被称为overload

2.方法重载使用场景

功能类似的时候,尽可能仍方法名相同(但是功能不同或者不相似的时候,方法名尽量不同)

3.什么条件满足之后,可以构成方法重载

(1)在同一类中;(2)方法名不同;(3)参数列表不同:i.数量不同;ii.顺序不同;iii.类型不同

4.方法重载和什么有关系,和什么没有关系?

(1)方法重载和方法名+参数列表无关

(2)方法重载和返回值类型无关


package code_class_file;

public class D30_overload {

  public static void main(String[] args) {

      m1();

      m4(2,4);

      m5();

  }

  //以下两个方法构成重载(数量不同)

  public static void m1() {}

  public static void m1(int a) {}

  //以下两种方式构成重载(顺序不同)

  public static void m2(int a,double b) {}

  public static void m2(double a,int b) {}

  //以下两种方式构成方法重载(类型不同)

  public static void m3(int x) {}

  public static void m3(double x) {}

  //以下方法编译错误,不属于方法重载,属于方法重复

  //public static void m4(int a,int b){}

  //public static void m4(int b,int a){}

  //以下方法编译错误,不属于方法重载,属于方法错误

  //void m5(){}

  //public static void m5(){}

​

}

​

5.方法重载的具体应用

简写打印操作

  public static void main(String[] args) {

    //简写打印操作

    p("jfshafo");

  }

  public static void p(byte a) {

    System.out.print(a);

  }

  public static void p(short a) {

    System.out.print(a);

  }

  public static void p(char a) {

    System.out.print(a);

  }

  public static void p(int a) {

    System.out.print(a);

  }

  public static void p(long a) {

    System.out.print(a);

  }

  public static void p(float a) {

    System.out.print(a);

  }

  public static void p(double a) {

    System.out.print(a);

  }

  public static void p(boolean a) {

    System.out.print(a);

  }

  public static void p(String a) {

    System.out.print(a);

  }

  public static void p(String[] a) {

    System.out.print(a);

  }

二、方法递归

1.方法递归定义

答:方法调用自身调用自身,称为递归

例子:

a(){

  a();

}

2.递归是很耗费栈内存的,能不用就不用了

以下程序发生了这样的一个错误(不是异常,是错误),错误发生的时候无法挽回,只有一个结果,那就是JVM停止工作


    public static void main(String[] args) {

    dosome();

  }

  public static dosome() {

    p("dosome开始");

    dosome();

    p("dosome结束");       

  }

3.递归必须有结束条件,没有结束条件会导致栈内存溢出

4.有些情况下该功能的实现必须借助递归,例如:目录拷贝

5.​例子:用递归写一个计算1​~N的整数求和

  public static void main(String[] args) {

  int N=9;

  int resultSum = sum(N);

  System.out.println(resultSum);

  }

  public static int sum(int a) {

    if (a > 1) {

      return a+sum(a-1);

    }else {

    return 1;

    }

  }

三、源码:

D30_overload_and_recursion.java

地址:

https://github.com/ruigege66/Java/blob/master/D30_overload_and_recursion.java

2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

最新文章

  1. eclipse构建maven+scala+spark工程 转载
  2. Listener实现单态登陆
  3. DUILIB圆形头象
  4. Ip地址查询
  5. Set接口
  6. jboss jndi配置部分参数详解
  7. Oracle“不等于号”与Nulls的情况(转)
  8. php session_set_save_handler 函数的用法(mysql)(转)
  9. Javascript/Jquery 中each() 和forEach()的区别
  10. ASP.NET开发大杂烩
  11. 连接greenvpn 公司内网连接
  12. PAT乙级-1063. 计算谱半径(20)
  13. BizTalk Server 2010高可用方案
  14. C++ 用变量定义数组
  15. Spring Boot Endpoint
  16. Confluence 6 考虑使用自定义 CSS
  17. 饮冰三年-人工智能-Python-16Python基础之迭代器、生成器、装饰器
  18. CSS基础以及属性
  19. 译:1. RabbitMQ Java Client 之 "Hello World"
  20. StackExchange.Redis在net中使用

热门文章

  1. [转] java开源游戏
  2. jq css3实现跑马灯+大转盘
  3. U盘重装MacOS-Sierra系统
  4. struts的上传下载
  5. 关于Linux安装的Python和miniconda
  6. pythonday04数据类型(二)
  7. Git下载加速教程
  8. mysql注意事项
  9. SpringMVC 原理 - 设计原理、启动过程、请求处理详细解读
  10. 网页如何设置favicon.ico