Java连载30-方法重载、方法递归
一、方法重载
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-方法重载、方法递归的更多相关文章
- Java 方法重载 方法重写
方法重载规则 参数个数不同 参数个数相同,但参数列表中对应的某个参数的类型不一样 方法的返回类型和参数名称不参与重载 "编译期绑定",,因为未产生对象,只看参数.引用类型绑定方法 ...
- JAVA构造方法与方法是啥意思,方法重载方法覆盖俗谈
构造函数跟构造方法是一样的,只是称呼不同; C语言里叫函数,Java里叫方法. 成员方法必须有返回类型即使是没有返回,也要写上void 构造方法没有返回类型,而且和类名一样!一个类里面,一看就知道了譬 ...
- C# Webservice中如何实现方法重载--(方法名同名时出现的问题)
本文摘抄自:http://blog.sina.com.cn/s/blog_53b720bb0100voh3.html 1.Webservice中的方法重载问题(1)在要重载的WebMethod上打个M ...
- Java基础03 构造器与方法重载
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在方法与数据成员中,我们提到,Java中的对象在创建的时候会初始化(initial ...
- 要想学好Java编程,构造器、方法重载、this关键字、垃圾回收机制,这4关一定要过!
有人说,你应该关注时事.财经,甚至流行的电影.电视剧,才有可能趁着热点写出爆文:有人说,你别再写“无聊”的技术文了,因为程序员的圈子真的很小,即便是像鸿洋那样的招牌大牛,文章是那么的干货,浏览量有多少 ...
- java方法——重载2
什么是Java方法重载 方法重载的定义 1 对于同一个类,如果这个类里面有两个或者多个重名的方法,但是方法的参数个数.类型.顺序至少有一个不一样,这时候局构成方法重载. END 方法重载示例 1 pu ...
- Java 方法重载和多态
先来看看什么是方法重载? 方法重载的要求是:方法名相同,参数列表不同(不同的参数类型或者参数顺序或者参数个数).至于方法的其他部分,如方法返回值类型和修饰符,与方法重载没有任何关系.最好加上@Over ...
- Java基础03 构造器与方法重载(转载)
显式初始化要求我们在写程序时就确定初始值,这有时很不方便.我们可以使用构造器(constructor)来初始化对象.构造器可以初始化数据成员,还可以规定特定的操作.这些操作会在创建对象时自动执行. 定 ...
- Java笔记 —— 方法重载和方法重写
Java笔记 -- 方法重载和方法重写 h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: red ...
随机推荐
- git常用指令整理
git常用指令一览表 GIT指令 说明 git add . 将全部文件的内容加到Git索引以便执行commit. 这个指令不会检查文件夹中是否有文件被删除. 要注意的是,只有执行" git ...
- java高并发系列 - 第24天:ThreadLocal、InheritableThreadLocal(通俗易懂)
java高并发系列第24篇文章. 环境:jdk1.8. 本文内容 需要解决的问题 介绍ThreadLocal 介绍InheritableThreadLocal 需要解决的问题 我们还是以解决问题的方式 ...
- 【Node.js】 bodyparser实现原理解析
为什么我们需要body-parser 也许你第一次和bodyparser相遇是在使用Koa框架的时候.当我们尝试从一个浏览器发来的POST请求中取得请求报文实体的时候,这个时候,我们想,这个从Koa自 ...
- 用友网络科技Java高级开发面试题(2019)
面试时间:2019年8月18日上午9:30 面试岗位:Java高级开发 面试形式:电话面试 这些天在boss上逛了下,看见北京Java开发工资比较诱人,便萌生了去北京的想法,做一名北漂的程序猿.约了几 ...
- java中安全的单例与不安全的单例
java中安全的单例与不安全的单例 1.内部静态类(安全的) public class Singleton { private static class SingletonHolder{ privat ...
- 关于python中str数据类型的内置常用方法(函数)总结
str基本数据类型常用功能 center(self,width,fllchar=none) 内容居中,width表示总长度,fllchar表示空白处默认为 ...
- 教你如何认识人脸识别开发套件中的双目摄像、3D结构光摄像头、单目摄像头的区别及详细讲解
深圳市宁远电子提供的人脸识别模组可支持双目摄像头和3D结构光摄像头,在客户咨询中经常有被问到双目的为什么会比单目的成本高,区别在哪里,他们的适用于哪些场景呢?在此,深圳市宁远电子技术工程师就为大家详细 ...
- Ng-Matero 0.1 发布了!
Ng-Matero 0.1 终于发布了!周末折腾了两天,结果最后发版还是出了点意外,好在今天补了一版. 距离 Ng-Matero 发布第一版已经过去了一个多月,然后很颓废地休息了半个多月,最近项目的关 ...
- docker方式部署elk日志搜索平台
Docker部署ELKF操作文档 前提介绍 1.之前搭建elk+f+k使用原生系统软件安装方式,由于docker镜像日趋成熟,docker官网和elastic官网都有相关镜像和各自安装文档可供参考,各 ...
- BeanUtils开发包的使用
对内省技术有了一定的了解之后,我们就可以来学习一下BeanUtils开发包的使用了. 我们先假设一个情景,有一个JSP文件,如果要将该JSP文件中表单数据封装到Servlet文件应该怎么办?此时方法显 ...