当前位置: 首页 > news >正文

【Java】/*方法的使用-快速总结*/

目录

一、什么是方法

二、方法的定义

三、实参和形参的关系

四、方法重载

五、方法签名


一、什么是方法

Java中的方法可以理解为C语言中的函数,只是换了个名称而已。

二、方法的定义

1. 语法格式:

public static 返回类型 方法名 (形参列表) {

        //方法体...

        return 返回值;

}

2. public static也可以省略,后面会详细讲解这个是什么,但在现阶段我们默认加上即可。

/*示例:定义一个能实现两个整型相加的方法*/public static int add(int x, int y) {return x + y;}public static void main(String[] args) {Scanner scan = new Scanner(System.in);int x = scan.nextInt();int y = scan.nextInt();int ret = add(x, y);//调用方法System.out.println(ret);}

3. 关于return与C语言不同的地方,如果返回类型是同类不同种,且return后面数值类型的大小,小于方法返回类型,这样写是可以的,并不会报错

4. Java中的方法名必须采用小驼峰的方式命名,比如,maxNum。

5. 关于方法的声明,与C语言不同的是,Java中的方法,并不强调声明的“位置”,也就是说,方法的声明可以放在被调用前,也可以放在被调用后,不过习惯上会写在被调用前

6. 在Java中,方法必须写在类中,方法和C语言一样,不能嵌套定义

三、实参和形参的关系

和C语言一样,形参是实参的一份临时拷贝,改变形参不会影响实参。

四、方法重载

1. 问:Java中为什么会出现方法重载?

答:例如,当我们想要实现两个整型变量相加,两个浮点型类型变量相加,三个浮点型变量相加等,由于参数的个数和类别有区别,于是我们要分别定义这个类型的方法,对于取名和记忆方法的名称本身是一件很令人头疼的事,但我们可以发现上面方法有一个共同的特点,本质都是实现数值之间的加法,于是引入了方法重载的概念,在一个类中,有相同的方法名,但形参列表不同几个方法,称这几种方法被重载了
2. 方法重载的规则:
    ① 方法名称必须相同
    ② 参数列表必须不同(个数不同,或类型不同,参数排列顺序不同)
    ③ 方法的返回值类型可以相同也可以不相同
    ④ 仅仅返回值类型不同不足以称为方法重载

3. 如下图所示,我们定义了几个方法名相同,但形参列表不同的add方法,在mian方法中调用add方法时可以发现会弹出一个选项框,我们可以根据方法的参数列表,选择要使用哪一种add方法。(编译器在编译代码时,会对实参类型进行推演,根据推演的结果来确定调用哪个方法)

五、方法签名

1. 在同一个作用域中不能定义两个相同名称的标识符,比如:方法中不能定义两个名字一样的变量,那为什么类中可以定义方法名相同的方法呢?这是由于相同名称的方法它们的方法签名不同的缘故。

2. 方法签名即:经过编译器编译修改过之后方法最终的名字,具体方式:方法全路径名+参数列表+返回值类型,构成方法完整的名字。

3. 我们可以查看上图中java代码的的反汇编代码,看到不同add方法的方法签名,具体:

    ① 先对工程进行编译生成.class字节码文件

    ② 在控制台中进入到要查看的.class所在的目录

    ③ 输入:javap -v 字节码文件名字

如下图所示,红色框起来的即为三个add方法最终的名称。

   本篇文章已完结,谢谢支持哟 ^^ !!!

http://www.lryc.cn/news/347475.html

相关文章:

  • kotlin中协程相关
  • (自适应手机端)物流运输快递仓储网站模板 - 带三级栏目
  • Navicat导出表结构到Excel或Word
  • Golang编译优化——稀疏条件常量传播
  • 人工智能培训讲师咨询叶梓介绍及智能医疗技术与ChatGPT临床应用三日深度培训提纲
  • HCIP(BGP综合实验)--8
  • 深入理解C++中的Vector容器:用容器构建高效程序
  • 目标检测YOLO实战应用案例100讲-基于深度学习的交通场景多尺度目标检测算法研究与应用(下)
  • react 类组件 和 函数组件 声明周期 对比
  • 智慧变电站守护者:TSINGSEE青犀AI视频智能管理系统引领行业革新
  • 【Ubuntu20.04安装java-8-openjdk】
  • HTTPS对于网站到底价值几何?
  • Docker私有仓库Harbor
  • 48. 旋转图像/240. 搜索二维矩阵 II
  • wsl安装Xfce桌面并设置系统语言和输入法
  • 短信清空了!华为手机短信删除了怎么恢复?
  • Linux实现Flappy bird项目
  • 【python量化交易】qteasy使用教程07——创建更加复杂的自定义交易策略
  • SpringBoot整合SpringScurity权限控制(菜单权限,按钮权限)以及加上SSH实现安全传输
  • 力扣每日一题119:杨辉三角||
  • AI语音模型PaddleSpeech踩坑(安装)指南
  • 如何更好地使用Kafka? - 运行监控篇
  • 数据可视化训练第四天(模拟投掷筛子并且统计频次)
  • 4.1 编写程序,从键盘接收一个小写字母,然后找出他的前导字符和后续字符,再按顺序显示这三个字符
  • (Java)心得:LeetCode——18.四数之和
  • 网络编程套接字详解
  • 蓝桥杯备战11.歌唱比赛
  • 微信小程序中的图像奥秘:图片与Base64的华丽变身记
  • 【35分钟掌握金融风控策略25】定额策略实战2
  • 我和爬虫的故事