Java方法和数组

news2024/11/26 22:20:17

方法

Java中的方法就是c语言中的函数。

方法的定义

定义格式如下

修饰符  返回值 方法名([参数列表]){
	代码块
	[return 返回值;]
}
//方括号[]括起来代表可以没有,不是必须有的

方法名采用小驼峰命名(就是有多个单词,第一个单词首字母小写其余单词首字母大写),
方法不能嵌套定义(就是不能在方法中在定义一个方法),

例如我们定义一个加法函数

public static int add(int a, int b){
	return a + b;
}

方法的传参

方法的传参就是根据定义的方法传入对应的参数就行
例如调用上面的加法方法

int c = add(1,3);

在方法中对参数进行改变时,要注意如果参数是基本数据类型,那一般对行参改变并不会影响实参。
例如下面这个函数当传过来实参后实参并不会改变。

public static void change(int a){
	a = 5;
}

方法的重载(一词多义)

在我们现实调用函数实现加法时,有可能是3个参数相加,那我们又要重新定义一个3个参数的方法并且还不能与上一个加法方法重名。那未免太过繁琐,调用也过于麻烦。
这时在Java中我们可以实行对方法的重载来解决这种情况。
先说重载规则:
函数名必须相同,
参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不同),
与返回值无关

那下面来实现加法方法的重载

public static int add(int a, int b){
	return a + b;
}
public static int add(int a, int b,int c){
	return a + b + c;
}

在调用加法方法时,会自己根据你传的参数来判断调用哪一个。

函数递归调用

函数递归调用就是在函数自己内部在调用自己。但是一定要写好结束条件不然就会一直调用下去,导致栈溢出。
我们举个简单的递归求阶乘

public static int fac(int n){
	if( n == 1){
		return 1;
	}
	return n * fac(n - 1);
}

数组

数组的定义

类型[] 数组名 = {};//在大括号中输入所有数据初始化
类型[] 数组名 = new 类型[]{};//在大括号中输入所有数据初始化
类型[] 数组名 = new 类型[];//在中括号中输入数组大小,这种定义会直接给赋值为类型对应‘0’值

类型对应‘0’值如下
在这里插入图片描述

数组的使用

在c语言中我们要想获得数组长度需要进行计算,但在Java中只需要用数组名.length来就可以求得。

数组的for循环遍历方式有两种

int[] array = new int[10];
for(int i = 0; i < array.length; i++){
	System.out.print("%d ", array[i]);
}

for (int x : array) {
    System.out.println(x);
}

在前面的文章中介绍过数组是引用数据类型,那其实数组并不会像基本数据类型中直接变量在栈开辟一块空间来直接存储值,而是在栈上开辟空间之后存储地址,如下图
在这里插入图片描述

如此在数组作为参数传入方法时,那么实参和形参都指向堆上的同一片空间,对形参操作也会改变实参

二维数组

定义方式

类型[][] 数组名 = {{},{}};//中间的大括号不能省略在中间大括号中对对应行进行初始化
类型[][] 数组名 = new 类型[][]{{},{}};//中间的大括号不能省略在中间大括号中对对应行进行初始化
类型[][] 数组名 = new 类型[N][];//行数(N)不能省略,列可以省略

遍历方式

int[][] array = {{1,2,3},{4,5,6}};
for(int i = 0; i < array.length; i++){//array.length求出二维数组的行数
	for(int j = 0; j < array[i].length; i++){//array[i].length求出二维数组当前行的列数
		System.out.print("%d ", array[i][j]);
	}
}
for(int[] ret : array){
	for(int x : each){
		System.out.print("%d ", array[i][j]);
	}
}

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

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

相关文章

阅读送书抽奖?玩转抽奖游戏,js-tool-big-box工具库新上抽奖功能

先讨论一个问题&#xff0c;你做软件工作是为了什么&#xff1f;从高中选专业&#xff0c;就喜欢上了软件开发&#xff1f;还是当初毕业不知道干啥&#xff0c;不喜欢自己的专业&#xff0c;投入软件开发的怀抱&#xff1f;还是干着干着别的&#xff0c;突然觉得互联网行业真不…

前端技术交流群

欢迎来到前端筱园用户交流&#xff01;这是一个专注于前端编程技术、学习资源和行业动态的讨论平台。在这里&#xff0c;你可以分享经验、提问、回答问题&#xff0c;与其他前端开发者一起学习和成长。 &#x1f31f;亲爱的朋友们&#x1f31f; 大家好&#xff01;感谢你们一直…

《Tam》论文笔记(下)

3 Method 3.1. The Overview of Temporal Adaptive Module 正如我们在第1节中讨论的&#xff0c;视频数据通常表现出由相机运动和速度变化等因素引起的复杂时间动态。因此&#xff0c;我们的目标是通过引入具有视频特定内核的时间自适应模块 (TAM) 来解决这个问题&#xff0c…

一键自动化博客发布工具,用过的人都说好(infoq篇)

infoq的博客发布界面也是非常简洁的。首页就只有基本的标题&#xff0c;内容和封面图片&#xff0c;所以infoq的实现也相对比较简单。 一起来看看吧。 前提条件 前提条件当然是先下载 blog-auto-publishing-tools这个博客自动发布工具,地址如下&#xff1a;https://github.c…

营收如泡沫,利润如刀片,万辰集团万店梦想下的阴影

&#xff08;作者注&#xff1a;本文建议配乐《泡沫》阅读&#xff01;&#xff09; 从“食用菌第一股”转型为“量贩零食第一股”的首个财年&#xff0c;万辰集团新业务发展迅猛。 财报显示&#xff0c;2023年公司量贩零食业务实现营业收入87.59亿元&#xff0c;同比增长1305…

微火全域运营平台的优缺点分别是什么?

随着全域运营赛道的兴起&#xff0c;微火全域运营平台在市场占有率持续走高&#xff0c;与之相关的各类问题也层出不穷。其中&#xff0c;微火全域运营平台是什么、微火全域运营平台的优缺点等与平台本身相关的问题长期位居话题榜前列。 所谓微火全域运营平台&#xff0c;就是由…

京东手势验证码-YOLO姿态识别+Bézier curve轨迹拟合

这次给老铁们带来的是京东手势验证码的识别。 目标网站&#xff1a;https://plogin.m.jd.com/mreg/index 验证码如下图: 当第一眼看到这个验证码的时候&#xff0c;就头大了&#xff0c;这玩意咋识别&#xff1f;&#xff1f;&#xff1f; 静下心来细想后的一个方案&#xf…

使用apache和htaccess对目录访问设置密码保护配置教程

对目录设置密码保护配置说明 我们有时候访问某些网站的时候&#xff0c;要求输入用户名和密码才能访问。这是为了保护隐私&#xff0c;只让经过许可的人访问。 在本教程中主要介绍两种方法&#xff0c;一种是通过apache httpd.conf配置文件对管理后台目录设置密码保护&#xff…

ESP32引脚入门指南(四):从理论到实践(PWM)

引言 ESP32 作为物联网领域的明星微控制器&#xff0c;除了强大的Wi-Fi和蓝牙功能&#xff0c;还内置了丰富的外设资源&#xff0c;其中就包括高级的PWM&#xff08;脉冲宽度调制&#xff09;功能。本文将深入探讨ESP32的PWM引脚&#xff0c;解析其工作原理&#xff0c;并通过…

分布式与一致性协议之Quorum NWR算法

Quorum NWR算法 概述 不知道你在工作中有没有遇到过这样的事情:你开发实现了一套AP型分布式系统&#xff0c;实现了最终一致性&#xff0c;且业务接入后运行正常&#xff0c;一切看起来都那么美好。 可是突然有同事说&#xff0c;我们要拉这几个业务的数据做实时分析&#xf…

进口原装二手 Keysight86142B 是德86142A 高性能光谱分析仪

进口原装二手 Keysight86142B 是德86142A 高性能光谱分析仪 内置测试应用程序 • 10 pm 波长精度 • 快速双扫法 • 覆盖 S、C 和 L 波段 Keysight 86142B是一款台式光谱分析仪&#xff08;OSA&#xff09;&#xff0c;最适于对功率和波长精度、动态范围和低偏振敏感性都要…

asp.net论坛指南系统

说明文档 运行前附加数据库.mdf&#xff08;或sql生成数据库&#xff09; 主要技术&#xff1a; 基于asp.net架构和sql server数据库 登陆可查看 浏览记录 TA的发布 TA的回复 TA的收藏 TA的点赞 管理员登陆可以查看举报管理 编辑管理 认证审核 帖子置顶申请审核 运行环境…

【数据处理系列】深入理解递归特征消除法(RFE):基于Python的应用

目录 一、递归特征消除法介绍 二、方法介绍 三、导入数据并选择模型 (一)导入数据 (二) 递归特征消除需要选择模型吗 四、RFE方法进行递归特征消除法 五、RFECV方法进行递归特征消除法(建议使用这种方法) 即交叉验证递归特征消除法 (一)参数介绍 (二)python使用RFECV…

我们真的需要5G吗?再读《5G将是一个彻底的失败通信技术》

目录 投入与产出不成正比 《5G将是一个彻底的失败通信技术》 无线通信技术体制 无线通信技术演进 5G需求 移动通信与WiFi 5G之局 未来之路 参考 投入与产出不成正比 2018年开始大规模装备5G设备&#xff0c;因此2018年被称为5G元年。一般5G基站的寿命为8年左右&#…

GeoServer 任意文件上传漏洞分析研究 CVE-2023-51444

目录 前言 漏洞信息 代码审计 漏洞复现 前言 时隔半月&#xff0c;我又再一次地审起了这个漏洞。第一次看到这个漏洞信息时&#xff0c;尝试复现了一下&#xff0c;结果却很不近人意。从官方公布的漏洞信息来看细节还是太少&#xff0c;poc不是一次就能利用成功的。也是当时…

工器具管理(基于若依)

文章目录 前言一、工器具管理项目总览 二、入库功能1. 前端1.1 界面展示1.2 具体操作实现1.3 js文件 2. 后端2.1 工器具信息回显2.2 工器具入库 三、领用功能1. 前端1.1 界面展示1.2 具体实现操作1.3 js文件 2. 后端2.1 工器具信息回显2.2 工器具领用 遇到的问题1. 同一页面展示…

2024最新版守约者二级域名分发系统源码,提供全面的二级域名管理服务

主要功能 二级域名管理&#xff1a;我们的系统提供全面的二级域名管理服务&#xff0c;让您轻松管理和配置二级域名。 下 载 地 址 &#xff1a; runruncode.com/php/19756.html 域名分发&#xff1a;利用我们先进的域名分发技术&#xff0c;您可以自动化地分配和管理域名&…

【教程向】从零开始创建浏览器插件(二)深入理解 Chrome 扩展的 manifest.json 配置文件

第二步&#xff1a;深入理解 Chrome 扩展的 manifest.json 配置文件 上一次我们已经着手完成了一个自己的浏览器插件&#xff0c;链接在这里&#xff1a;我是链接 在本篇博客中&#xff0c;我们将更详细地探讨 Chrome 扩展中的 manifest.json 文件。这个文件是每个浏览器扩展…

keep健身小程序源码搭建/部署/上线/运营/售后/更新

基于FastAdminThinkPHPUniApp&#xff08;目前仅支持微信小程序和公众号&#xff09;开发的健身相关行业微信小程序&#xff0c;程序适用于健身房、瑜伽馆、游泳馆、篮球馆等健身培训场所。平台拥有课程售卖、课程预约、多门店管理、私教预约、教练端、会员卡办理、在线商城、分…

超分辨率专题 | 3 种方法、4 个教程、10 个数据集,一文 Get 核心知识点

2010 年 12 月&#xff0c;清华大学电子工程系教授苏光大接到一通不寻常的电话&#xff0c;内蒙古自治区准格尔刑警队的警员拿着一张模糊不清的犯罪嫌疑人人脸图像&#xff0c;向苏光大寻求帮助。 「这张图像是由路边的监控摄像头拍摄的&#xff0c;像素非常低&#xff0c;肉眼…