一、方法重载

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

Java连载30-方法重载、方法递归的更多相关文章

  1. Java 方法重载 方法重写

    方法重载规则 参数个数不同 参数个数相同,但参数列表中对应的某个参数的类型不一样 方法的返回类型和参数名称不参与重载 "编译期绑定",,因为未产生对象,只看参数.引用类型绑定方法 ...

  2. JAVA构造方法与方法是啥意思,方法重载方法覆盖俗谈

    构造函数跟构造方法是一样的,只是称呼不同; C语言里叫函数,Java里叫方法. 成员方法必须有返回类型即使是没有返回,也要写上void 构造方法没有返回类型,而且和类名一样!一个类里面,一看就知道了譬 ...

  3. C# Webservice中如何实现方法重载--(方法名同名时出现的问题)

    本文摘抄自:http://blog.sina.com.cn/s/blog_53b720bb0100voh3.html 1.Webservice中的方法重载问题(1)在要重载的WebMethod上打个M ...

  4. Java基础03 构造器与方法重载

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在方法与数据成员中,我们提到,Java中的对象在创建的时候会初始化(initial ...

  5. 要想学好Java编程,构造器、方法重载、this关键字、垃圾回收机制,这4关一定要过!

    有人说,你应该关注时事.财经,甚至流行的电影.电视剧,才有可能趁着热点写出爆文:有人说,你别再写“无聊”的技术文了,因为程序员的圈子真的很小,即便是像鸿洋那样的招牌大牛,文章是那么的干货,浏览量有多少 ...

  6. java方法——重载2

    什么是Java方法重载 方法重载的定义 1 对于同一个类,如果这个类里面有两个或者多个重名的方法,但是方法的参数个数.类型.顺序至少有一个不一样,这时候局构成方法重载. END 方法重载示例 1 pu ...

  7. Java 方法重载和多态

    先来看看什么是方法重载? 方法重载的要求是:方法名相同,参数列表不同(不同的参数类型或者参数顺序或者参数个数).至于方法的其他部分,如方法返回值类型和修饰符,与方法重载没有任何关系.最好加上@Over ...

  8. Java基础03 构造器与方法重载(转载)

    显式初始化要求我们在写程序时就确定初始值,这有时很不方便.我们可以使用构造器(constructor)来初始化对象.构造器可以初始化数据成员,还可以规定特定的操作.这些操作会在创建对象时自动执行. 定 ...

  9. Java笔记 —— 方法重载和方法重写

    Java笔记 -- 方法重载和方法重写 h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: red ...

随机推荐

  1. bottombar——Fragment

    首先是依赖   compile 'com.hjm:BottomTabBar:1.1.1' 下面是activity.xml文件 <RelativeLayout xmlns:android=&quo ...

  2. React的新特性 ---- Hooks ---- 的基本使用

    一.react-hooks概念 React中一切皆为组件,React中组件分为类组件和函数组件,在React中如果需要记录一个组件的状态的时候,那么这个组件必须是类组件.那么能否让函数组件拥有类组件的 ...

  3. testlink搭建教程

    1,下载testlink安装包   请加QQ群299524235,在群文件中下载     2.配置Apache环境和PHP环境   解压testlink文件到Apache中, 通过127.0.0.1/ ...

  4. intellij idea 2019 安装使用教程

    一.安装 idea   2019.2   链接:https://pan.baidu.com/s/1acx_P23W463it9PGAYUIBw 提取码:4bky 双击运行idea.exe 点击Next ...

  5. spring事务在实际项目开发中的使用

      一, 事务的一些基础知识简单回顾一下,讲的不是很深入,网上博客很多. 1,关于事务的四大特性:原子性.隔离性.一致性.隔离性 本文不再赘述: 2,事务的隔离级别:读未提交,读已提交,可重复读,串行 ...

  6. Go-json解码到结构体-踩坑

    package main import ( "encoding/json" "fmt" ) type User struct { Name string `js ...

  7. 02 http和https协议

    1. HTTP协议 简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写, 是用于从万维网(WWW:World Wide Web )服务器传输超文本到本 ...

  8. Luogu P1462 && P1951

    首先有两个最短路,可以考虑把一个东西拿出来二分,也就是可以二分最小值,但是注意不要用SPFA他死了,可以用Dij跑最短路,再二分,效率会大大提高 1.SPFA #include<bits/std ...

  9. input的onchange 和oninput事件

    一个小的功能,也体现了了这几天写程序过程中的遇到的一些常发事件,准备有时间研究一下jQuery和原生js,问题的出现:使用jQuery获取到的节点到底是属于什么,有些事件 居然不能用,就如我今天用到的 ...

  10. Unity进阶:用AssetBundle和Json做了一个玩家登陆界面

    版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...