Java方法及方法重载的详解

目录

一、方法的概念及使用

1.1 方法的概念

1.2 方法的定义

1.3 方法调用的执行过程

1.4 实参和形参的关系

1.5 没有返回值的方法

二、方法的重载

2.1 方法重载存在的原因

2.2 方法重载的概念

一、方法的概念及使用

1.1 方法的概念

        方法就是一个代码片段. 类似于 C 语言中的 " 函数"。 是能够模块化的组织代码 ( 当代码规模比较复杂的时候 ).方法可以 做到代码被重复使用 , 一份代码可以在多个位置使用 .方法 让代码更好理解更简单。 直接调用现有方法开发 , 不必重复造轮子。

1.2 方法的定义

// 方法定义
修饰符 返回值类型 方法名称 ([ 参数类型 形参 ...]){
        方法体代码 ;
        [ return 返回值 ];
}
举个例子,编写一个实现两个数相加的方法.代码如下。
import java.util.Scanner;public class Test {//方法的定义public static int add(int a,int b){return (a+b);}public static void main(String[] args) {Scanner sc = new Scanner(System.in);int m = sc.nextInt();int n = sc.nextInt();int result = add(m,n);System.out.println(result);}
}

注意事项:

1. 修饰符:现阶段直接使用 public static 固定搭配(后续讲解类和对象的时候会说明)
2. 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成 void
3. 方法名字:采用小驼峰命名
4. 参数列表:如果方法没有参数, () 中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开
5. 方法体:方法内部要执行的语句
6. java 当中,方法必须写在类当中
7. java 当中,方法不能嵌套定义
8. java 当中,没有方法声明一说

1.3 方法调用的执行过程

注意事项:

1.定义方法的时候 , 不会执行方法的代码 . 只有调用的时候才会执行 .
2.一个方法可以被多次调用 .

1.4 实参和形参的关系

Java中形参是方法在调用是用来接收传递过来的值,形参的名字可以随意,对方法都没有影响,形参只是方法在定义是需要借助的一个变量,用来保存方法在调用时传递过来的值。

比如:


public class Test {public static int getSum(int N){  //N是形参return N*(N+1)/2;}public static void main(String[] args) {getSum(10);getSum(100);}
}

如上代码,N是形参,用来接收方法调用时传递的值,10和100是实参,在方法调用时,形参N用来保存实参10和100.

注意:在Java中,实参的值永远都是拷贝到形参中,形参和 实参本质是两个实体。

1.5 没有返回值的方法

方法的返回值是可选的,根据自己的需求,返回值可有可无,没有返回值时,返回值类型必须是void

如下代码就是一个没有返回值的方法:

public class Test {public static void print(int x,int y){System.out.println("x = "+x+"\ny = "+y);}public static void main(String[] args) {int x = 10;int y = 20;print(x,y);}
}

二、方法的重载

2.1 方法重载存在的原因

我们先来看下面代码:

public class Test {public static int add(int a,int b){return a+b;}public static void main(String[] args) {int a = 10;int b = 20;int ret = add(a,b);System.out.println("ret = "+ ret);double a1 = 5.2;double b1 = 6.6;double ret1 = add(a1,b1);System.out.println("ret1 = "+ ret1);}

如上代码会报错,

由于参数类型不匹配 , 所以不能直接使用现有的 add 方法。为了解决以上问题,在学习Java之前,大家可能会使用暴力的方法解决,也就是写两个不同的方法,分别来实现整型的加法的浮点型的加法。但是在学习Java之后,我们不再使用暴力的方法,而是使用方法重载的方法来解决这一问题。

2.2 方法重载的概念

Java 中,如果多个方法的名字相同,参数列表不同,则称该几种方法被重载了。
举例代码来说明吧。
public class Test {public static int add(int a,int b){return a+b;}public static double add(double a,double b){return a+b;}public static double add(double a,double b,int c){return a+b+c;}public static void main(String[] args) {int a = 10;int b = 20;int ret = add(a,b);System.out.println("ret = "+ ret);double a1 = 5.2;double b1 = 6.6;double ret1 = add(a1,b1);System.out.println("ret1 = "+ ret1);double a2 = 2.5;double b2 = 4.6;int  c2 = 15;double ret2 = add(a2,b2,c2);System.out.println("ret2 = " + ret2);}

如上代码,我们发现,我们三个方法,而且方法名字也相等,都是add,只是参数类型以及参数数量或者类型的顺序不同而已,这其实就是所谓的方法重载。

注意:

1. 方法名必须相同
2. 参数列表必须不同 ( 参数的个数不同、参数的类型不同、类型的次序必须不同 )
3. 与返回值类型是否相同无关
4. 编译器在编译代码时,会对实参类型进行推演,根据推演的结果来确定调用哪个方法
以上就是方法重载相关知识的详解,欢迎大家来我的评论区进行讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/627578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务优雅停机SpringBoot

什么是优雅停机 ​ 优雅停机指的是Java项目在停机时需要做好断后工作。如果直接使用kill -9 方式暴力的将项目停掉,可能会导致正常处理的请求、定时任务、RMI、注销注册中心等出现数据不一致问题。 ​ 如何解决优雅停机呢?大致需要解决如下问题&#xf…

【Linux】 RPM 命令参数使用

rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由 RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。 常用命令组合: -ivh&a…

GZ075 云计算应用赛题第8套

2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷8 某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台,平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenSt…

x-cmd pkg | tokei - 代码行数统计工具

目录 简介首次用户技术特点竞品和相关作品进一步阅读 简介 tokei 是一个使用 Rust 编写的显示有关代码统计信息的命令行工具,可以分门别类的统计目录内的代码行数。 tokei 具有良好的跨平台性,可以在 Linux、macOS、Windows 等多种平台上安装运行。 首…

林江院长:让斜视的孩子改“斜”归正,“正视”未来

读写时跳行、不敢和别人对视、拍照时不敢看镜头......这些不便是不少斜视患儿每天都在经历的日常。 斜视是目前儿童常见的眼科疾病之一,该眼病不仅给孩子的外在形象带来影响,更重要的是会影响双眼视功能及身心健康,其危害不容小觑。 7岁男孩晓…

程序员晋升管理者后的自我修养

谈到技术管理,首要的一点就是管理者的角色认知问题,因此本篇文章的主要内容就是如何增强管理者的角色认知,持续提升自我管理能力。 作为管理者,首要任务就是要认清自我并管理好自己,要树立对管理者角色的正确认知&…

【线路图】 DC-DC升压恒压控制驱动芯片 2.8-40V AP8100

说明 AP8100 是一款外围电路简单的 BOOST 升压恒压控 制驱动芯片,适用于 2.8-40V 输入电压范围的升压恒 压电源应用领域,启动电压可以低至 2.5V 。 芯片会根据负载的大小自动切换 PWM , PFM 和 BURST 模式以提高各个负载端的…

AI魔幻巨制电影《权力的游戏:重生之战》

AI魔幻巨制电影《权力的游戏:重生之战》 《冰与火之歌》龙妈雪诺后裔是谁?你相信龙族的力量可以改变维斯特洛大陆的命运吗? 在《权力的游戏:重生之战》中,维斯特洛大陆再次陷入混乱之中,但这一次的混乱并非…

Redis 交互模式

交互模式(Interact Mode) 安装 Redis 时通常连带安装了一个 Redis CLI (apt install redis 或者是 apt install redis-cli 类似的)。在本博客中将会对 redis-cli 中的常用命令做一个使用介绍,下文中以黑色代码块表示在…

Python单元测试框架:pytest常用测试报告类型

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 先前博客有介绍pytest测试框架的安装及使用,现在来聊…

Linux用户提权

新建用户 用root账户修改文件,添加信任用户 使用sudo提权,可以使用 **root删除新建账户**

JavaScript:JQuery.Ajax之错误调试帮助信息

JQuery.Ajax之错误调试帮助信息 代码: $(document).ready(function() {$("#info").click(function() {$.ajax({url: "/v1/getInfo",type: "post",data: { id: 1 },dataType: "json",success: function(msg) {alert(msg);}…

联想小新M7268一体机常用功能和操作步骤

联想小新M7268黑白激光多功能打印一体机,小身材、大智慧,小心M7268身材十分娇小,净尺寸方面为350*275*135mm(长*宽*高)(手工测量),在实际使用时,小新M7268所占空间要略大…

js find方法的使用

JavaScript中的数组find()方法用于查找满足指定条件的第一个数组元素,并返回该元素。 find()方法的语法如下: array.find(callback[, thisArg]) 其中,array是要进行查找的数组,callback是一个回调函数,用于定义查找…

【笔记】认识电机

认识电机 电机一些概念永磁同步电机永磁体定子和转子励磁电磁感应定律 AC Optimal Power Flow功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右Smart…

读论高质量供给引领和创造新需求有感

文章摘要: 自让萨伊提出产品“出卖或需求”的过程是“生产给产品创造需求”3这一被后世称之为“萨伊定律”的论断之后,在古典经济学发展的一百多年里,其成为经济理论和政策的基本依据,阿尔弗雷德马歇尔更是基于此构建了新古典经济…

基于4G数采终端的供热管网在线监测方案

我国大部地区全面进入到冬季,北方各地已开启冬季供暖,以保障居民生活所需。由于城市化的发展,城市内各供热区域愈发分散、供热管道漫长、供热环境复杂,对于供热管网及换热站点的监测和维护提出了诸多挑战。 方案介绍 针对提高供热…

伪协议绕过总结记录(本地文件包含、远程文件包含、SSRF)

目录 本地文件包含&远程文件包含 php://filter String Filters (字符串过): Conversion Filters (转换过滤):

浅析五种 React 组件设计模式

作为一名 React 开发者,你可能会面临下面几个问题: 如何构建一个高复用度性的组件,使其适应不同的业务场景?如何构建一个具有简单 API的组件,使其易于使用?如何构建一个在 UI 和功能方面具有可扩展性的组件…

代码随想录算法训练营第三十五天|860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球

题目&#xff1a;860.柠檬水找零 文章链接&#xff1a;代码随想录 视频链接&#xff1a;LeetCode:860.柠檬水找零 题目链接&#xff1a;力扣题目链接 图释&#xff1a; class Solution { public:bool lemonadeChange(vector<int>& bills) {unordered_map<int…