【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.mzph.cn/web/10709.shtml

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

相关文章

windows server 2019 安装 docker环境

一、根据官方说明进行安装 , 看起来过程相当简单, 但问题还是有的 准备 Windows 操作系统容器 | Microsoft Learn // 一个 powershell 脚本,该脚本配置环境以启用与容器相关的 OS 功能并安装 Docker 运行时。 Invoke-WebRequest -UseBasicParsing "https://r…

【Docker】Ubuntu下Docker的基本使用方法与常用命令总结

【Docker】docker的基本使用方法 镜像image与容器container的关系基本命令- 查看 Docker 版本- 拉取镜像- 查看系统中的镜像- 删除某个镜像- 列出当前 Docker 主机上的所有容器,包括正在运行的、暂停的、已停止的,以及未运行的容器- 列出当前 Docker 主机…

【信息系统项目管理师知识点速记】沟通管理:管理沟通

管理沟通是确保项目信息流通顺畅的关键流程,涉及到信息的收集、生成、传播、存档、检索、监管及最终处理,以促进项目团队与利益相关者的有效互动。这一过程不仅关乎信息的发布,更侧重于信息的恰当格式与精准送达,同时鼓励利益相关者的积极参与,包括信息补充、澄清和讨论。…

《二十一》QT QML编程基础

QML概述 QML(Qt Meta-Object Language)是一种声明性语言,它被用于描述Qt框架中用户界面的结构和行为。QML提供了一种简洁、灵活的方式来创建动态和交互式的界面。 QML基于JavaScript语法,通过使用QML类型和属性来定义界面的元素…

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (三)

基于 LlaMA 3 LangGraph 在windows本地部署大模型 (三) 大家继续看 https://lilianweng.github.io/posts/2023-06-23-agent/的文档内容 第二部分:内存 记忆的类型 记忆可以定义为用于获取、存储、保留以及随后检索信息的过程。人脑中有多…

Mac 使用:Micosoft Remote Desktop 远程优化

Micosoft Remote Desktop远程优化 服务器 远程会话环境设置 WinR打开运行,输入gpedit.msc 找到计算机配置->管理模板->Windows组件->远程桌面服务->远程桌面会话主机->远程会话环境。下面这几个打开,有效提高rdp性能。 rdp协议同时使用…

自动驾驶---Behavior Planning之EUDM

1 背景 在前面的博客中,为读者朋友们阐述了自动驾驶Planning模块基于MCTS行为规划的文章《自动驾驶---Behavior Planning之MCTS》,博客中引用的论文的主要思想是以蒙特卡洛树来实现行为规划。今天,我们继续探寻另一种行为规划的策略,主角依然是香港科技大学。 熟悉的读者大…

vim 文件内容替换 cat 合并文件

vim 文件内容替换 第一步:首先要进入末行模式(在命令模式下输入冒号:) 第二步:根据需求替换内容 ① 只替换光标所在这一行的第一个满足条件的结果(只能替换1次) :s/要替换的关键词/替换后的关键词 回…

计数排序,基数排序,桶排序

目录 计数排序: 基数排序: 桶排序: 计数排序: 计数排序是一种非比较型整数排序算法,特别适用于一定范围内的整数排序。它的核心思想是使用一个额外的数组(称为计数数组)来计算每个值的出现次数,然后根据这些计数信…

C语言中错误处理的基本实现

引入头文件依赖&#xff1a; 标准输入输出流&#xff1a;#include <stdio.h>获取错误信息&#xff1a;#include <string.h>&#xff0c;strerror通过这个头文件获取文件流&#xff1a;#include <stdlib.h>&#xff0c;fprintf通过这个头文件获取错误编号&…

hadoop生态圈集群搭建(持续更新240512)

Hadoop生态圈 Linux1.修改ip地址2.重启network服务3.安装插件4.关闭防火墙5.创建用户6.创建目录7.修改目录的所属主和所属组为lxy8.修改主机名:hadoop102 (注意名字后面不要加空格)9.修改hosts文件10.等插件都装完后再重启Linux11.把xshell的登录用户换成lxy &#xff08;注意&…

【TC3xx芯片】TC3xx芯片时钟监控

目录 前言 正文 1.时钟监控概念 1.1 时钟监控原理 1.2时钟监控配置寄存器

Node.js 的补充适用场景

Node.js 的适用场景相当广泛&#xff0c;以下再补充一些具体的使用场景&#xff1a; 服务器端应用开发&#xff1a; Node.js特别适合于构建高性能、高并发、低延迟的服务器端程序。它可以用来开发Web服务器、API服务器、实时通讯服务器等。Node.js的高性能和事件驱动的非阻塞I…

day09-常用API异常

1.时间日期类 1.1 Date类&#xff08;应用&#xff09; 计算机中时间原点 1970年1月1日 00:00:00 时间换算单位 1秒 1000毫秒 Date类概述 Date 代表了一个特定的时间&#xff0c;精确到毫秒 Date类构造方法 方法名说明public Date()分配一个 Date对象&#xff0c;并初始化…

【大数据】HDFS

文章目录 [toc]HDFS 1.0NameNode维护文件系统命名空间存储元数据解决NameNode单点问题 SecondaryNameNode机架感知数据完整性校验校验和数据块检测程序DataBlockScanner HDFS写流程HDFS读流程HDFS与MapReduce本地模式Block大小 HDFS 2.0NameNode HANameNode FederationHDFS Sna…

使用注解的方式进行配置RabbitMQ

引入依赖&#xff1a; <dependency><groupId>org.springframework.amqp</groupId><artifactId>spring-rabbit-test</artifactId><scope>test</scope></dependency> 配置application.yml server:port: 8082 spring:rabbitmq…

pyqt5报错:AttributeError: ‘mywindow‘ object has no attribute ‘setCentralWidget‘

第一种解决方法是&#xff1a;AttributeError: ‘mywindow‘ object has no attribute ‘setCentralWidget‘_attributeerror: mywindow object has no attribute-CSDN博客 第二种解决方法是&#xff08;推荐&#xff09;&#xff1a; 直接把这段代码复制在 ui转 py文件的后面…

什么是JVM中的程序计数器

在计算机的体系结构中&#xff1a; 程序计数器&#xff08;Program Counter&#xff09;&#xff0c;通常缩写为 PC&#xff0c;是计算机体系结构中的一个寄存器&#xff0c;用于存储下一条指令的地址。程序计数器是控制单元的一部分&#xff0c;它的作用是确保程序能够按正确…

用 Python 和 AkShare 进行个股数据清洗:简易多功能方法

标题:用 Python 和 AkShare 进行个股数据清洗:简易多功能方法 简介: 本文介绍了如何使用 Python 和 AkShare 库对个股数据进行清洗和处理。个股数据经常需要进行清洗以用于分析、建模或可视化。我们将介绍一些简单但功能强大的方法,包括数据加载、缺失值处理、重复值检测和…

心理应用工具包 psychtoolbox 绘制小球走迷宫

psychtoolbox 是 MATLAB 中的一个工具包&#xff0c;对于科研人员设计实验范式来说是不二之选&#xff0c;因为它可以操作计算机的底层硬件&#xff0c;精度可以达到帧的级别。 文章目录 一、实验目的二、psychtoolbox 的下载安装三、Psychtoolbox 的基本使用四、完整代码 一、…