java基础—方法重载(overload)
一、方法的重载
方法名一样,但参数不一样,这就是重载(overload)。
所谓的参数不一样,主要有两点:第一是参数的个数不一样,第二是参数的类型不一样。只要这两方面有其中的一方面不一样就可以构成方法的重载了。
1 package cn.galc.test;
2
3 public class TestOverLoad {
4
5 void max(int a, int b) {
6 System.out.println(a > b ? a : b);
7 }
8
9 /*
10 * int max(int a, int b) {
11 * return a > b ? a : b;
12 * }
13 */
14
15 void max(float a, float b) {
16 System.out.println(a > b ? a : b);
17 }
18 }
这里有void修饰符的两个max方法名字相同,但它们的参数类型不一样,所以可以构成重载。而int max(int a , int b)方法与void max(int a, int b)方法是不构成重载的,现在它们是重名的两个方法,在一个类中声明两个重名的方法是不允许的,编译会出错。方法名一样,参数类型一样,只有返回值不一样,这个不构成重载,因为方法可以这么调用,调用一个方法时可以不使用的它返回值,所以当调用这两个方法时,把整型的数传进去,由于两个方法都是一样的名字,一样的参数类型,所以编译器无法区分到底要调用的是哪一个方法。构成重载深层次的原因:只要这两个方法编译器能区分开来,在调用的时候知道要调用的是哪一个,不会产生混淆,这两个方法就构成重载。
再看下面这两个方法:
1 int max(int a, int b) {
2 System.out.println("调用的int max(int a, int b)方法");
3 return a > b ? a : b;
4 }
5
6 int max(short a, short b) {
7 System.out.println("调用的int max(short a, short b)方法");
8 return a > b ? a : b;
9 }
这两个方法也是可以构成重载的,因为编译器一看到整数,就会把它当作int类型。所以当把整数传进来的时候,编译器首先调用的是max(int a , int b)这个方法。而要想调用max(short a ,short b)这个方法,那么就得在main方法里面这样写:
1 public static void main(String[] args) {
2 TestOverLoad t= new TestOverLoad();
3 t.max(3,4); //这里调用的是max(int a , int b)这个方法
4 short a = 3;
5 short b = 4;
6 t.max(a, b); //这里调用的是max(short a , short b)这个方法。
7 }
二、构造方法的重载
与普通方法一样,构造方法也可以重载
1 package cn.galc.test;
2
3 public class Person {
4
5 int id;
6 int age;
7
8 /**
9 * 构造方法
10 */
11 public Person() {
12 id=0;
13 age=20;
14 }
15
16 /**
17 * 构造方法重载一
18 * @param i
19 */
20 public Person(int i) {
21 id=i;
22 age=20;
23 }
24
25 /**
26 * 构造方法重载二
27 * @param i
28 * @param j
29 */
30 public Person(int i,int j) {
31 id=i;
32 age=j;
33 }
34 }
java基础—方法重载(overload)的更多相关文章
- Java基础-方法重载和方法重写的区别
什么是java方法重载 (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. (2) ...
- Java之方法重载篇(我重载了,你要如何来调用我。。)
一.课前引言 请看一下代码,你发现什么特殊之处了吗? public class MethodOverload { public static void main(String[] args) { ...
- Java基础-方法(method)的应用
Java基础-方法(method)的应用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 方法就是定义在类中,具有特定功能的一段小程序,方法也称为函数(function),方法可以接 ...
- 方法重载overload与方法重写overwrite
方法重载overload: 在同一个类中,出现相同的方法名,与返回值无关,参数列表不同:1参数的个数不同 2参数类型不同 在调用方法时,java虚拟机会通过参数列表来区分不同同名的方法 方法重写ove ...
- java的方法重载
1丶java的方法重载特性 满足以下条件的两个或多个方法构成“重载”关系:(1)方法名相同 (2)参数类型不同,参数个数不同或者参数类型的顺序不同 像System.out.println一样,就是重载 ...
- Java-Runoob-高级教程-实例-方法:01. Java 实例 – 方法重载
ylbtech-Java-Runoob-高级教程-实例-方法:01. Java 实例 – 方法重载 1.返回顶部 1. Java 实例 - 方法重载 Java 实例 先来看下方法重载(Overloa ...
- Java笔记 —— 方法重载和方法重写
Java笔记 -- 方法重载和方法重写 h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: red ...
- Java基础——方法的调用
Java基础--方法的调用 总结: 1. 在同一个类中-- 对于静态方法,其他的静态和非静态方法都可以直接通过"方法名"或者"类名.方法名"调用它. 对 ...
- 《Java基础——方法的调用》
Java基础--方法的调用 总结: 1. 在同一个类中-- 对于静态方法,其它的静态和非静态方法都可以直接通过"方法名"或者"类名.方法名"调用它. 对 ...
随机推荐
- QxOrm 1.2.9 下载 以及编译方法 简介.
QxOrm 是一个基于QT开发的数据库方面的ORM库,功能很强大,是QT C++数据开发方面的好工具. 目前已经更新1.3.1 .但 不幸的是 它的官网http://www.qxorm.com/ 莫名 ...
- JAVA编写的断点续传小程序
上了一周的课,今天终于可以休息了,太棒了,今天闲着无聊使用java语言写了一个断点续传的小程序来分享给大家, 首先要下载个用于网络请求的框架:我这里给出地址,是用的Apache的HttpClient: ...
- DOM核心API
是什么? 是各大浏览器提供的针对HTML和XML文档的一个API(Application Programming Interface应用程序编程接口).DOM描述了一个层次化的节点树,容许开发人员对D ...
- ORA-01950:表空间“USERS”中无权限
ORA-01950:表空间“USERS”中无权限 解决方案: A)确认给用户授权了resource角色 B)取消限制 ALTER USER "HCCPMS" QUOTA UNLIM ...
- SWT的基本组件使用
1按钮组件(Button) (1)Button组件常用样式 SWT.PUSH按钮 SWT.CHECK多选按钮 SWT.RADIO单选按钮 SWT.ARROW箭头按钮 SWT.NONE默认按钮 SWT. ...
- BZOJ 4236: JOIOJI map瞎搞
分别记录J,O,I,的个数 cnt[char][i] 表示处理到第i位,char的个数 显然当且仅当 cnt[J][i] - cnt[O][i] == cnt[J][j-1] - cnt[O][j-1 ...
- ORACLE索引的作用及用法
https://blog.csdn.net/qq_34895697/article/details/52425289
- js和jq中常见的各种位置距离之offset()和position()的区别(二)
offset()返回的是相对于当前文档的坐标,position()返回的是相对于其定位的祖辈元素的坐标. 使用position()方法时事实上是把该元素当绝对定位来处理,获取的是该元素相当于最近的一个 ...
- springboot springmvc 抛出全局异常解决方法
springboot中抛出异常,springboot自带的是springmvc框架,这个就不多说了. springmvc统一异常解决方法这里要说明的是.只是结合了springboot的使用而已.直接上 ...
- Azure 虚拟机安全加固整理
这篇文档不是原创,只是基于Azure官网上的Doc进行了相关链接的整理,从简单层面的安全设置,到更高层面的安全架构考量,以及Azure安全的白皮书及最佳实践,送给需要的你们,定有一款适合你! 做好数据 ...