Java之方法

方法(函数)

Java中的方法必须定义在类或接口中。

package day2;import java.util.Scanner;public class way {public static void main(String[] args) {int arr[] = new int[5];Scanner sc = new Scanner(System.in);for (int i = 0; i < arr.length; i++) arr[i] = sc.nextInt();test(arr);System.out.println(arr[0]);}//定义一个方法public static void test(int arr[]) {for (int i : arr) {System.out.print(i + " ");}//可以直接改变main函数当中的值arr[0] = 10;System.out.println();}}

在 Java 中,当你将变量传递给方法时,传递方式取决于变量的数据类型:基本数据类型(如 int, double, boolean 等)是通过值传递的,而对象引用(如数组、对象等)是通过引用传递的,也就是可以在方法当中改变对象的值的。

方法重载的基本概念

定义

方法重载指在同一个类中,方法名相同但参数列表(参数类型、个数或顺序)不同的多个方法。返回类型可以相同也可以不同,但仅凭返回类型的不同,不能实现方法重载。

规则

  1. 方法名相同:所有重载的方法必须具有相同的方法名。
  2. 参数列表不同:重载的方法必须在参数列表上有区别,可以通过以下方式实现:
    • 参数的类型不同
    • 参数的个数不同
    • 参数的顺序不同
  3. 返回类型可以相同也可以不同返回类型不是方法重载的依据,不能仅通过返回类型的不同来实现方法重载。
  4. 访问修饰符和异常声明可以不同:方法的访问修饰符(如publicprivate)和抛出的异常类型可以不同,但这不会影响方法重载

方法重载的示例

以下是一个简单的示例,展示如何在Java中实现方法重载:

public class Calculator {// 加法方法,两个整数public int add(int a, int b) {return a + b;}// 加法方法,三个整数public int add(int a, int b, int c) {return a + b + c;}// 加法方法,两个双精度数public double add(double a, double b) {return a + b;}// 加法方法,两个整数和一个双精度数public double add(int a, int b, double c) {return a + b + c;}
}

在上述示例中,Calculator 类中定义了多个名为 add 的方法,它们通过不同的参数列表来实现重载:

  1. add(int a, int b):接受两个整数参数。
  2. add(int a, int b, int c):接受三个整数参数。
  3. add(double a, double b):接受两个双精度数参数。
  4. add(int a, int b, double c):接受两个整数和一个双精度数参数。

根据传入参数的不同,Java编译器会自动选择最匹配的方法进行调用。

public class Main {public static void main(String[] args) {Calculator calc = new Calculator();int sum1 = calc.add(2, 3); // 调用 add(int, int)int sum2 = calc.add(1, 2, 3); // 调用 add(int, int, int)double sum3 = calc.add(2.5, 3.5); // 调用 add(double, double)double sum4 = calc.add(1, 2, 3.5); // 调用 add(int, int, double)System.out.println("sum1: " + sum1); // 输出: sum1: 5System.out.println("sum2: " + sum2); // 输出: sum2: 6System.out.println("sum3: " + sum3); // 输出: sum3: 6.0System.out.println("sum4: " + sum4); // 输出: sum4: 6.5}
}

注意事项

  1. 避免模糊调用:在方法重载时,参数类型和顺序的变化可能导致调用时的歧义,尤其是在自动类型转换的情况下。例如:

    public void display(int a, double b) { ... }
    public void display(double a, int b) { ... }// 调用
    display(1, 2); // 编译器无法确定调用哪个方法,可能导致编译错误
    

  2. 返回类型不参与重载:仅通过改变返回类型而不改变参数列表,无法实现方法重载。例如:

    public int compute(int a) { ... }
    public double compute(int a) { ... } // 编译错误
    

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

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

相关文章

五、创建型(建造者模式)

建造者模式 概念 建造者模式是一种创建型设计模式&#xff0c;通过使用多个简单的对象一步步构建一个复杂的对象。它将一个复杂对象的构建过程与其表示分离&#xff0c;从而使同样的构建过程可以创建不同的表示。 应用场景 复杂对象构建&#xff1a;当一个对象有多个属性&…

vue2项目的路由使用history模式,刷新会导致页面404的问题

在vue2项目中&#xff0c;如果我们使用的路由是history模式&#xff0c;刷新会导致页面404&#xff0c;解决方法很简单&#xff0c;在vue.config.js文件中的devServer下增加historyApiFallback: true; 代码如下: module.exports {devServer: {historyApiFallback: true,} }

【js逆向学习】极志愿 javascript+python+rpc

JSRPC使用方式 逆向目标逆向过程逆向分析1、什么是 websocket2、websocket的原理3、总体过程3.1 环境说明3.2 python服务端代码3.3 python客户端代码 4、Sekiro-RPC4.1 执行方式4.2 客户端环境4.3 参数说明4.4 SK API4.5 python代码调试4.6 代码注入流程 逆向总结 逆向目标 网…

AI资深导师指导-ChatGPT深度科研工作应用、论文撰写、数据分析及机器学习与AI绘图

2022年11月30日&#xff0c;可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5&#xff0c;将人工智能的发展推向了一个新的高度。2023年4月&#xff0c;更强版本的ChatGPT4.0上线&#xff0c;文本、语音、图像等多模态交互方式使其在…

太速科技-607-基于FMC的12收和12发的光纤子卡

基于FMC的12收和12发的光纤子卡 一、板卡概述 本卡是一个FPGA夹层卡&#xff08;FMC&#xff09;模块&#xff0c;可提供高达2个CXP模块接口&#xff0c;提供12路收&#xff0c;12路发的光纤通道。每个通道支持10Gbps,通过Aurora协议&#xff0c;可以组成X4&#xff0…

LivePortrait:创新的肖像动画技术与深度伪造的预防措施

文章链接&#xff1a;https://arxiv.org/pdf/2407.03168 代码仓库&#xff1a;https://liveportrait.github.io 在数字媒体和娱乐领域&#xff0c;将静态肖像照片转换成动态视频是一个引人入胜的话题。最近&#xff0c;由快手科技的研究团队发表在arXiv上的一篇论文介绍了一种…

MySQL 中的 GROUP BY 使用

MySQL 中的 GROUP BY 使用指南 GROUP BY 是 SQL 中一个非常强大的语句&#xff0c;用于将查询结果按指定的列进行分组&#xff0c;并对每个分组执行聚合函数。它常常与聚合函数&#xff08;如 COUNT、SUM、AVG、MIN 和 MAX&#xff09;结合使用&#xff0c;以生成汇总信息。 …

有千元以内的高性价比自动猫砂盆吗?双十一必看选购攻略!

对于经常外出的铲屎官来说&#xff0c;自动猫砂盆真的是一个必需品&#xff0c;不仅仅是上班出差&#xff0c;节假日旅游出行&#xff0c;小到外出逛街&#xff0c;大到五六天&#xff0c;自动猫砂盆都能完美解决猫屎残留在猫砂盆里无人照料的问题&#xff0c;毕竟猫屎放久了&a…

SpringBoot框架下旅游管理系统的创新设计与实现

第二章 相关技术简介 2.1 JAVA技术 本次系统开发采用的是面向对象的Java作为软件编程语言&#xff0c;Java表面上很像C&#xff0c;但是Java仅仅是继承了C的某些优点&#xff0c;程序员很少使用的C语言的特征在Java设计中去掉了。Java编程语言并没有什么结构&#xff0c;它把数…

【C语言系统编程】【第一部分:操作系统知识】1.3.实践与案例分析

1.3 实践与案例分析 1.3.1 案例分析&#xff1a;实现一个简单的Shell 本节将通过一个简单的Shell程序来展示如何使用C语言中的高级操作系统功能&#xff0c;包括命令行解析、进程管理&#xff08;fork和exec&#xff09;、管道和重定向。 1.3.1.1 解析命令行输入 在实现She…

Java | Leetcode Java题解之第461题汉明距离

题目&#xff1a; 题解&#xff1a; class Solution {public int hammingDistance(int x, int y) {int s x ^ y, ret 0;while (s ! 0) {s & s - 1;ret;}return ret;} }

图论day56|广度优先搜索理论基础 、bfs与dfs的对比(思维导图)、 99.岛屿数量(卡码网)、100.岛屿的最大面积(卡码网)

图论day56|广度优先搜索理论基础 、bfs与dfs的对比&#xff08;思维导图&#xff09;、 99.岛屿数量&#xff08;卡码网&#xff09;、100.岛屿的最大面积&#xff08;卡码网&#xff09;&#xff09; 广度优先搜索理论基础bfs与dfs的对比&#xff08;思维导图&#xff09;&…

音视频入门基础:FLV专题(12)——FFmpeg源码中,解析DOUBLE类型的ScriptDataValue的实现

一、引言 从《音视频入门基础&#xff1a;FLV专题&#xff08;9&#xff09;——Script Tag简介》中可以知道&#xff0c;根据《video_file_format_spec_v10_1.pdf》第80到81页&#xff0c;SCRIPTDATAVALUE类型由一个8位&#xff08;1字节&#xff09;的Type和一个ScriptDataV…

电影选票选座系统|影院购票|电影院订票选座小程序|基于微信小程序的电影院购票系统设计与实现(源码+数据库+文档)

电影院订票选座小程序 目录 基于微信小程序的电影院购票系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户功能实现 2、管理员功能实现 &#xff08;1&#xff09;影院信息管理 &#xff08;2&#xff09;电影信息管理 &#xff08;3&#xff09;已完成…

Linux 环境chrony设置服务器间时间同步一致

服务器&#xff1a; master01: slave02: slave03: 安装chrony安装&#xff1a; yum -y install chrony 设置以master01为时间服务器&#xff0c;其他服务器同步master01时间 master01的chrony.conf配置: server ntp1.aliyun.com iburst allow all local stratum 10重启ch…

VUE 开发——Vue学习(二)

一、watch侦听器 作用&#xff1a;监视数据变化&#xff0c;执行一些业务逻辑或异步操作 简单写法 <div id"app"><textarea v-model"words"></textarea></div><script>const app new Vue({el:#app,data: {words: },watch…

在北京能不能设计一款可以多屏展示的调度桌

在北京这座科技与创新并蓄的国际大都市&#xff0c;设计一款集高效、智能与多屏展示功能于一体的调度桌&#xff0c;不仅是一个技术挑战&#xff0c;更是对未来工作场景的一次深刻探索与重塑。那么&#xff0c;在北京能不能设计一款可以多屏展示的调度桌呢? 随着信息技术的飞速…

AI产品经理指南:我是谁,从哪来,到哪去|对谈字节AI产品负责人Vanessa,面试了100位AI产品经理后的心得总结

AI 正在改变各行各业&#xff0c;或许首当其冲受到影响的就包括离 AI 最近的一群人——产品经理。 Vanessa 在字节负责 AI 产品工作&#xff0c;我们从「面试了 100 位 AI 产品经理」的心得总结开始&#xff0c;聊了聊究竟什么是「AI 产品经理」&#xff1f;Vanessa资深的产品经…

docker-compose查看容器日志和实时查看日志

要查看 docker-compose up 过程中容器启动的错误日志&#xff0c;可以使用以下方法&#xff1a; ### 1. **使用 docker-compose logs 命令** 1. 在终端中进入包含 docker-compose.yml 文件的目录。 2. 运行以下命令来查看所有容器的日志&#xff1a; bash docker-compose…

QT元对象系统特性详细介绍(信号槽、类型信息、动态设置属性)(注释)

目录 一、元对象系统简介 二、信号和槽 三、类型信息 四、动态设置属性 一、元对象系统简介 QT中的元对象系统Q_OBJECT并不是C标准代码&#xff0c;因此在使用时需要QT的MOC&#xff08;元对象编译器&#xff09;进行预处理&#xff0c;MOC会在编译时期读取C代码中的特定宏…