Java 方法重载 (Overload)
对重载 (Overload) 的认识
为什么要用方法重载:
- 对于功能类似的方法来说,因为参数列表不一样,如果定义不同名称的方法,太麻烦且难以记忆。
- 为了解决这个问题,引入方法的重载。
重载的定义:
- 多个方法的名称一样,但参数列表不一样。
例子:
不使用方法重载
定义三个功能类似的方法
- public class TestOverload {
- public static int sumOne(int a) {
- return a;
- }
- public static int sumTwo(int a, int b) {
- return a + b;
- }
- public static int sumThree(int a, int b, int c) {
- return a + b + c;
- }
- }
- public class TestOverload {
使用这三个方法
- public static void main(String[] args) {
- System.out.println(sumOne(1));
- // 输出 1
- System.out.println(sumTwo(1, 2));
- // 输出 3
- System.out.println(sumThree(1, 2, 3));
- // 输出 6
- }
- public static void main(String[] args) {
使用方法重载
定义三个功能类似的方法
- public class TestOverload {
- public static int sum(int a) {
- return a;
- }
- public static int sum(int a, int b) {
- return a + b;
- }
- public static int sum(int a, int b, int c) {
- return a + b + c;
- }
- }
- public class TestOverload {
使用这三个方法
- public static void main(String[] args) {
- System.out.println(sum(1));
- // 输出 1
- System.out.println(sum(1, 2));
- // 输出 3
- System.out.println(sum(1, 2, 3));
- // 输出 6
- }
- public static void main(String[] args) {
注意:
方法重载的相关因素:
参数个数不同
- public static int sum(int a) {
- return a;
- }
- public static int sum(int a, int b) {
- return a + b;
- }
- public static int sum(int a) {
参数类型不同
- public static int sum(int a, int b) {
- return a + b;
- }
- public static int sum(long a, long b) {
- return (int) (a + b);
- }
- public static int sum(int a, int b) {
参数的多类型顺序不同
- public static int sum(int a, double b) {
- return (int) (a + b);
- }
- public static int sum(double a, int b) {
- return (int) (a + b);
- }
以上的三个因素都可以进行方法的重载
- public static int sum(int a, double b) {
方法重载的不相关因素:
与参数的名称无关
- public static int sum(int a, int b) {
- return a + b;
- }
- public static int sum(int x, int y) {
- return x + y;
- }
- public static int sum(int a, int b) {
与方法的返回值无关
- public static double sum(int a, int b) {
- return a + b;
- }
- public static int sum(int a, int b) {
- return a + b;
- }
以上的三个因素都不可以进行方法的重载
- public static double sum(int a, int b) {
总结:
如果有功能类似的方法,可以使用方法重载,这样不仅容易记忆,调用起来也方便。
Java 方法重载 (Overload)的更多相关文章
- java 方法重载overload
一.方法的重载 方法名一样,但参数不一样,这就是重载(overload). 所谓的参数不一样,主要有两点:第一是参数的个数不一样,第二是参数的类型不一样.只要这两方面有其中的一方面不一样就可以构成方法 ...
- 方法重载overload与方法重写overwrite
方法重载overload: 在同一个类中,出现相同的方法名,与返回值无关,参数列表不同:1参数的个数不同 2参数类型不同 在调用方法时,java虚拟机会通过参数列表来区分不同同名的方法 方法重写ove ...
- java方法——重载2
什么是Java方法重载 方法重载的定义 1 对于同一个类,如果这个类里面有两个或者多个重名的方法,但是方法的参数个数.类型.顺序至少有一个不一样,这时候局构成方法重载. END 方法重载示例 1 pu ...
- java基础—方法重载(overload)
一.方法的重载 方法名一样,但参数不一样,这就是重载(overload). 所谓的参数不一样,主要有两点:第一是参数的个数不一样,第二是参数的类型不一样.只要这两方面有其中的一方面不一样就可以构成方法 ...
- java方法重载(overload)、重写(override);this、super关键简介
一.方法重载: 条件:必须在一个类中,方法名称相同,参数列表不同(包括:数据类型.顺序.个数),典型案例构 造方重载. 注意:与返回值无关 二.方法重写: 条件: (1)继承某个类或实现某接口 (2 ...
- Java方法重载
Java允许一个类中定义多个方法,只要参数列表不同就行了.如果同一个类中包含了两个或者两个以上的方法的方法名相同,但形参列表不同,则被称为方法重载. /* 参数类型不同的重载 */ public cl ...
- Java 方法重载,方法重写(覆盖),继承等细节注意
1.方法重载(method overload)的具体规范 如果有两个方法的方法名相同,但参数不一致,那么可以说一个方法是另一个方法的重载. 一.方法名一定要相同. 二.方法的参数表必须不同,包括参数的 ...
- Java 方法重载和多态
先来看看什么是方法重载? 方法重载的要求是:方法名相同,参数列表不同(不同的参数类型或者参数顺序或者参数个数).至于方法的其他部分,如方法返回值类型和修饰符,与方法重载没有任何关系.最好加上@Over ...
- Java 方法重载与引用数组类型
1.方法重载 1)方法的签名 方法的签名包含方法名和参数列表 一个类中,不可以有两个方法的签名完全相同,即一个类中不能有两个方法的方法名和参数列表都一样. public class Test{ pu ...
随机推荐
- .net core 3.0 Signalr - 03 使用MessagePack压缩传输内容
## MessagePack基础介绍 Signalr默认使用的是json形式传递数据,但是signalr提供了灵活的扩展,支持MessagePack形式序列化数据,以增加性能降低网络传输的效果,极大的 ...
- python爬虫添加请求头和请求主体
添加头部信息有两种方法 1.通过添加urllib.request.Request中的headers参数 #先把要用到的信息放到一个字典中 headers = {} headers['User-Agen ...
- Redis与数据库数据一致性
文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. 可能谈到保持Redis与Mysql双库的数据一致性,可能很多人最先想到的方案就是读请求和写请求串行化,串到一个 ...
- Python 命令行参数解析工具 argparse
为什么需要argparse 开门见山,举一个简易计算器代码的例子,其中sys.argv用来读取脚本执行时后面传入的参数. def calculator(x, y, operation): if &qu ...
- 你不可错过的Java学习资源清单
学习Java和其他技术的资源其实非常多,但是我们需要取其精华去其糟粕,选择那些最好的,最适合我们的,同时也要由浅入深,先易后难.基于这样的一个标准,我在这里为大家提供一份Java的学习资源清单. Ja ...
- QCustomPlot 基础
QCutomPlot简介 官网网址及介绍 https://www.qcustomplot.com/ QCustomPlot is a Qt C++ widget for plotting and da ...
- 神奇的Java僵尸(defunct)进程问题排查过程
现象描述 大概1个月多以前 在启动脚本中增加了tail -f 用来启动后追踪日志判断是否启动成功 后发现无法执行shutdown.sh(卡住 利用curl) 然后无奈使用kill -9 但通过ps - ...
- 简单自定义mybatis流程!!
----简单自定义mybatis流程----一.首先封装daoMapperxml文件和sqlMapconfig配置文件,如何封装:(1).封装我们的Mapper.xml文件,提取名称空间namespa ...
- CS231n:Python Numpy教程
Python 基本数据类型 容器 列表 字典 集合 元组 函数 类 Numpy 数组 访问数组 数据类型 数组计算 广播 SciPy 图像操作 MATLAB文件 点之间的距离 Matplotlib 绘 ...
- Spring Boot WebFlux 集成 Mongodb 数据源操作
WebFlux 整合 Mongodb 前言 上一讲用 Map 数据结构内存式存储了数据.这样数据就不会持久化,本文我们用 MongoDB 来实现 WebFlux 对数据源的操作. 什么是 MongoD ...