Java方法重载

重载

概念

重载就是在一个类中,有相同的函数名,但形参不同的函数

规则

  • 方法名称必须相同
  • 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)
  • 方法的返回值类型可以相同也可以不同
  • 仅仅返回类型不同不足以成为方法的重载

实现理论

方法名成相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错

package com.kuang.method;/*** @version:java version 1.8* @Author:Mr Cao* @Description:* @Date:2024-01-31 1:32*/
public class Demo02 {public static void main(String[] args) {int max=max(10,10);System.out.println(max);}//比大小public static double max(double num1,double num2){double result=0;if(num1==num2){System.out.println("num1==num2");return 0;//终止方法}if(num1>num2){result = num1;}else{result=num2;}return result;}//方法重载public static int max(int num1,int num2){int result=0;if(num1==num2){System.out.println("num1==num2");return 0;//终止方法}if(num1>num2){result = num1;}else{result=num2;}return result;}
}

命令行传参

  • 有时候你希望运行一个程序的时候在传递给他消息,这要靠传递命令行参数给main()函数实现
package com.kuang.method;/*** @version:java version 1.8* @Author:Mr Cao* @Description:* @Date:2024-01-31 1:53*/
public class Demo03 {public static void main(String[] args) {//args.length 数组长度for (int i=0;i<args.length;i++){System.out.println("args["+i+"]:="+args[i]);}}
}
F:\Code\Java\JavaSE\JavaSE\JiChuYuFa\src\com\kuang\method>javac -encoding UTF-8  Demo03.java
F:\Code\Java\JavaSE\JavaSE\JiChuYuFa\src>java com.kuang.method.Demo03 this is kaungshen

在这里插入图片描述

可变参数

可变参数也叫不定向参数

  • JDK 1.5 开始,Java支持传递同类型的可变参数给一个方法。
  • 在方法声明,在指定参数类型后加一个省略号(…)
  • 一个方法中只能指定一个可变参数,他必须是方法的最后一个参数,任何普通的参数必须在它之前声明。
package com.kuang.method;/*** @version:java version 1.8* @Author:Mr Cao* @Description:* @Date:2024-01-31 2:03*/
public class Demo04 {public static void main(String[] args) {Demo04 demo04 = new Demo04();demo04.test(1,2,3,4,5);printMax(34,3,3,2,56.5);printMax(new double[]{1,2,3});}//本质就是数组public void test(int... i){System.out.println(i[0]);System.out.println(i[1]);System.out.println(i[2]);System.out.println(i[3]);System.out.println(i[4]);}public static void printMax(double... numbers){if(numbers.length==0){System.out.println("No argument passed");return;}double result = numbers[0];//排序for(int i=1;i<numbers.length;i++){if(numbers[i]>result){result = numbers[i];}}System.out.println("The max value is "+result);}
}

递归

概念

A方法调用A方法,即自己调用自己

  • 利用递归可以用简单的程序来解决一些复杂的问题,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大较少了程序的代码量,递归的能力在于用有限的语句来定义对象的无限集合。
  • 递归结构包括两个部分
    • 递归头:什么时候不调用自身方法,如果没有头,将陷入死循环
    • 递归体:什么时候需要调用自身方法。
package com.kuang.method;/*** @version:java version 1.8* @Author:Mr Cao* @Description:* @Date:2024-01-31 2:23*/
public class Demo06 {
//递归思想public static void main(String[] args) {System.out.println(f(5));}//2! 2*1//3! 3*2*1//5! 5*4*3*2*1//1!1public static int f(int n){if(n==1) {return 1;}else{return n*f(n-1);}}
}

在这里插入图片描述

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

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

相关文章

MySQl基础入门③

上一遍内容 接下来我们都使用navicat软件来操作数据了。 1.新建数据库 先创建我门自己的一个数据库 鼠标右键点击bendi那个绿色海豚的图标&#xff0c;然后选择新建数据库。 数据库名按自己喜好的填&#xff0c;不要写中文&#xff0c; 在 MySQL 8.0 中&#xff0c;最优的字…

【MATLAB】语音信号识别与处理:卷积滑动平均滤波算法去噪及谱相减算法呈现频谱

1 基本定义 卷积滑动平均滤波算法是一种基于卷积操作的滤波方法&#xff0c;它通过对信号进行卷积运算来计算移动平均值&#xff0c;以消除噪声。该算法的主要思想是将滤波窗口的加权系数定义为一个卷积核&#xff0c;对信号进行卷积运算来得到平滑后的信号。这样可以有效地去…

Java基于微信小程序的高校讲座预约系统,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

前端面试练习24.3.6

前言&#xff1a; 今天就是复习回顾一下websocket&#xff0c;之前有个AI项目使用到了这个&#xff0c;有点久远了&#xff0c;回顾一下大致过程和难点。 一些知识点&#xff1a; 1.单工&#xff0c;半双工&#xff0c;全双工 单工&#xff1a; 数据只能沿着一个方向传递&…

项目打包至私有maven仓库

文章目录 step1: 下载源项目到本地&#xff0c;确保编译无问题step2: maven配置文件settings.xmlstep 3: 项目的pom.xml配置要发布的仓库地址step 4: 执行deploy命令即可将项目打包至远程仓库 step1: 下载源项目到本地&#xff0c;确保编译无问题 step2: maven配置文件setting…

线性代数笔记11--矩阵空间、秩1矩阵

1. 矩阵空间 所有的 3 3 3 \times 3 33矩阵构成的空间 M M M。 考虑空间 M M M的子空间 上三角矩阵对称矩阵对角矩阵 3 x 3 3x3 3x3矩阵空间的基: [ 1 0 0 0 0 0 0 0 0 ] [ 0 1 0 0 0 0 0 0 0 ] [ 0 0 1 0 0 0 0 0 0 ] [ 0 0 0 1 0 0 0 0 0 ] [ 0 0 0 0 1 0 0 0 0 ] [ 0 0 …

Vector Search和专用Search Nodes:现已正式发布

我们非常高兴地推出了 Atlas Vector Search 和 Search Nodes 的正式发布版本 (GA)&#xff0c;为 Atlas 平台增添了更多价值。 自从在公开预览版中发布 Atlas Vector Search 和带有 Search Nodes 的专用基础架构以来&#xff0c;我们注意到&#xff0c;对于使用向量优化搜索节…

【Python 常用脚本及命令系列 2.4 -- 如何使用 .pyc 文件】

文章目录 如何使用 .pyc 文件 如何使用 .pyc 文件 在 Python中&#xff0c;.pyc文件是由Python源文件.py编译生成的字节码文件。这些文件通常不包含可以直接阅读的源代码&#xff0c;但是可以由Python解释器直接执行。如果别人给了你一个.pyc文件&#xff0c;你可以按照以下步…

信息安全、网络安全以及数据安全三者之间的区别

随着信息技术的飞速发展&#xff0c;网络安全、信息安全、数据安全等词汇在平时出现的频率越来越高&#xff0c;尤其是数据安全&#xff0c;是大家都关心的一个重要话题。事实上&#xff0c;有很多人对网络安全、信息安全、数据安全的概念是区分不清的&#xff0c;下面由我帮大…

js 将对象转换为数组,两个对象的属性相同合并相加

1、定义两个对象&#xff0c;属性相同的值相加&#xff0c;并将值赋值为数组中对象属性相同的 定义数组 var titleDate [{name: JKJInputQty,field: restQty,icon: config.ossUrl /afl-data-screen/images/icon-all-input.png,value: 0,titleNames: JKJInputQty,span: 3}, …

分布式概念-理论篇

分布式是一个描述计算机系统或应用架构的术语&#xff0c;它指的是将一个大型的系统或服务拆分成多个小的、独立的子系统或服务&#xff0c;这些子系统或服务可以在不同的计算机或服务器上运行&#xff0c;并通过网络进行通信和协作&#xff0c;从而共同完成整个系统的功能。 …

C#,回文分割问题(Palindrome Partitioning Problem)算法与源代码

1 回文串 “回文串”是一个正读和反读都一样的字符串&#xff0c;初始化标志flagtrue&#xff0c;比如“level”或者“noon”等等就是回文串。 2 回文分割问题 给定一个字符串&#xff0c;如果该字符串的每个子字符串都是回文的&#xff0c;那么该字符串的分区就是回文分区。…

DataLoader

import torchvision from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter# 准备的测试数据集 数据放在了CIFAR10文件夹下test_data torchvision.datasets.CIFAR10("./CIFAR10",trainFalse, transformtorchvision.transfor…

Qt入门(一)Qt概述

Qt是什么&#xff1f; Qt是一个跨平台应用开发框架。 Qt既包括了一系列的Qt库&#xff0c;还包括诸多配套的开发工具如QtCreater&#xff0c;GUI Designer。Qt本身是由C开发的&#xff0c;但是也提供了其他编程语言的接口。 Qt的定位以及同类 学一种技术&#xff0c;最重要的是…

PDF控件Spire.PDF for .NET【安全】演示:加密 PDF 文档

加密PDF是人们常用的保护PDF的方法。无论对于公司还是个人&#xff0c;使用PDF加密来设置一些限制都是必不可少的。为了使PDF文档可供未经授权的用户阅读但无法修改&#xff0c;加密的PDF文档需要两个密码&#xff1a;所有者密码和用户密码。本节将特别介绍一种通过 Spire.PDF …

从mysql 数据库表导入数据到elasticSearch的几种方式

从MySQL数据库导入数据到Elasticsearch有几种方式&#xff0c;主要包括以下几种&#xff1a; 1. 使用Logstash&#xff1a; Logstash是一个开源的数据收集引擎&#xff0c;可以用来从不同的数据源导入数据到Elasticsearch。它具有强大的数据处理能力和插件生态系统&…

ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

scanf从缓冲区读值、检查缓冲区与读取失败

先看一段代码&#xff1a;代码① #include <Windows.h> int main() { int n 0; while (scanf( "%d", &n) ! EOF) // 如果输入a死循环 { printf( "b\n"); //getchar(); Sleep(1000); } return 0; } 此程序的输出结果是 输出…

透明多级分流系统(用户端缓存和负载均衡)

部件考虑 有些设备位于客户端或者网络边缘&#xff0c;能够迅速响应用户请求&#xff0c;避免给cpu和数据库带来压力&#xff0c;比如&#xff0c;本地缓存&#xff0c;内容分发网络&#xff0c;反向代理等。 有些设备处理能力能够线性扩展&#xff0c;易于伸缩&#xff0c;应…

探索程序员职业迷宫:选择适合自己的职业赛道

作为现代社会中备受青睐的职业之一&#xff0c;程序员的职业赛道就如同一座错综复杂的迷宫&#xff0c;充满了挑战与机遇。在这个迷宫中&#xff0c;有着前端的绚丽花园、后端的神秘洞穴以及数据科学的深邃密室&#xff0c;每一条路径都蕴藏着无限可能和发展空间。而如何选择适…