Java方法和数组

方法

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.mzph.cn/bicheng/9506.shtml

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

相关文章

酷柚易汛ERP源码部署/售后更新/搭建/上线维护

一款基于FastAdminThinkPHPLayui开发的ERP管理系统&#xff0c;帮助中小企业实现ERP管理规范化&#xff0c;此系统能为你解决五大方面的经营问题&#xff1a;1.采购管理 2.销售管理 3.仓库管理 4.资金管理 5.生产管理&#xff0c;适用于&#xff1a;服装鞋帽、化妆品、机械机电…

Vue3自定义指令封装-按钮权限控制v-permission、hasPermissions

背景&#xff1a;平常所接触到的系统权限控制&#xff0c;大部分都是菜单、路由级别的控制&#xff0c;但后台管理系统中&#xff0c;很多操作都是与职责和角色挂钩的&#xff0c;同样一个列表&#xff0c;不同人的操作列并不都一样&#xff0c;有些页面存在一些含有重要数据的…

B+树(B+ Tree)

B树&#xff08;B Tree&#xff09;是一种对B树&#xff08;B-Tree&#xff09;的改进版本&#xff0c;它在数据库系统和文件系统中作为索引结构得到了广泛的应用&#xff0c;特别是在磁盘存储的场景下。B树保留了B树的基本特征&#xff0c;如自平衡、多路分支等&#xff0c;但…

excel中怎么跳转到指定的单元格?

也许你会有这样的需求&#xff0c;如A1单元格中显示B100这种单元格地址&#xff0c;怎么做以点一下就跳转到B100&#xff1f; 一、设置公式 B1HYPERLINK("#"&MID(CELL("FILENAME",A1),FIND("]",CELL("FILENAME",A1))1,99)&&…

java-函数式编程-jdk

背景 函数式接口很简单&#xff0c;但是不是每一个函数式接口都需要我们自己来写jdk 根据 有无参数&#xff0c;有无返回值&#xff0c;参数的个数和类型&#xff0c;返回值的类型 提前定义了一些通用的函数式接口 IntPredicate 参数&#xff1a;有一个&#xff0c;类型是int类…

VSCode(安装)

前言 VSCode&#xff08;全称&#xff1a;Visual Studio Code&#xff09;是一款由微软开发且跨平台的免费源代码编辑器。该软件支持语法高亮、代码自动补全&#xff08;又称 IntelliSense&#xff09;、代码重构、查看定义功能&#xff0c;并且内置了命令行工具和 Git …

Redis面试高频问题

什么是缓存穿透 ? 怎么解决 ? 缓存穿透是指查询一个一定不存在的数据&#xff0c;如果从存储层查不到数据则不写入缓存&#xff0c;这将导致这个不存在的数据每次请求都要到数据库去查询&#xff0c;可能导致数据库挂掉。这种情况大概率是遭到了攻击。解决方案的话&#xff0…

C++ 实现一个不能被copy的类

文章目录 实现一个不能被copy的类1.先实现父类2.代码实现 小结 实现一个不能被copy的类 1.先实现父类 一个类不能被copy&#xff0c;首先肯定是构造函数没有。其次&#xff0c;拷贝构造不能有赋值构造函数也不能有 基于这三点&#xff0c;就容易实现了。下边看看代码。 2.代…

spring开发问题总结(持续更新)

开始 最近在做项目的时候&#xff0c;总遇到一些大小不一&#xff0c;奇形怪状的问题。 现在终于有时间来总结一下遇到的问题&#xff0c;以备复习之用。 以下提到的问题经过简化&#xff0c;不代表任何项目代码或问题。 问题1&#xff1a;未完成任务状态搜索结果有误&#x…

【贪心算法】Leetcode 134. 加油站【中等】

加油站 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发&#xff0c;开始时油箱为空。 给定两个整数数组 gas 和…

【Android】自定义View不显示的一种问题

需求 在自定义View里面添加一种颜色表示某个数据到达了某个状态 问题 颜色没有显示 问题分析 在代码中定义一种颜色和画笔 private int wathetBlue;private Paint backgroundWathetBlue;在init方法里面初始化 wathetBlue Color.argb(205, 165, 209, 254);backgroundWat…

5月游戏市场迎来新的体验,网易两款游戏重磅出炉

易采游戏网5月9日消息&#xff0c;随着科技的飞速发展&#xff0c;手机游戏已经成为人们休闲娱乐的重要方式。在这个领域&#xff0c;网易作为国内领先的游戏开发商&#xff0c;一直致力于为玩家带来高品质的游戏体验。近日&#xff0c;网易携手国际大厂Square Enix&#xff0c…

2024年数维杯高校数学建模竞赛(B题) 建模解析| 生物质和煤共热解问题的研究 |小鹿学长带队指引全代码文章与思路

我是鹿鹿学长&#xff0c;就读于上海交通大学&#xff0c;截至目前已经帮200人完成了建模与思路的构建的处理了&#xff5e; 本篇文章是鹿鹿学长经过深度思考&#xff0c;独辟蹊径&#xff0c;实现综合建模。独创复杂系统视角&#xff0c;帮助你解决数维杯的难关呀。 完整内容可…

Flink物理分区概念与分类详解

Apache Flink是一个分布式流处理框架&#xff0c;它允许在大规模数据流上进行实时计算。在Flink中&#xff0c;数据如何在不同的任务&#xff08;Task&#xff09;之间传输是一个关键因素&#xff0c;直接影响到系统的性能和可扩展性。物理分区&#xff08;Physical Partitioni…

在线教育系统平台软件,在线教育市场需求怎么样呢?

在线教育发展至今&#xff0c;通过互联网技术&#xff0c;有效地缓解了我国师资不足、优质教育资源供给不均等问题。根据速途研究院公开数据显示&#xff0c;中国在线教育用户规模呈稳定增长趋势&#xff0c;增长率也在逐年提高。我国在线教育市场需求如何? 一、市场预期&…

QML基础语法七

模型视图代理 1. 模型&#xff1a;数据及其结构&#xff0c;多种QML创建模型 2. 视图&#xff1a;显示数据容器&#xff0c;数据可以通过列表或表格的形式显示 3. 委托&#xff1a;控制数据如何在视图中显示&#xff0c;委托获取、封装了模型中每个数据&#xff0c;需要通过委…

创建Spring Boot项目及配置

目录 一、创建项目所需要的插件 1、安装插件 二、创建项目 三、创建项目所面临的常见问题。 1、IDEA不能识别 2、无效的发行版本 3、确认jar包是否下载成功 一、创建项目所需要的插件 1、安装插件 首先需要在IDEA插件里面搜索Spring&#xff0c;选择Spring Boot Helper…

如何去掉溢出内容的overflow属性滚动条

在CSS中&#xff0c;如果你设置了overflow属性为auto或scroll&#xff0c;并且内容确实超出了容器的大小&#xff0c;那么浏览器会自动显示滚动条。但是&#xff0c;如果你想在某些情况下隐藏这些滚动条&#xff0c;有几种方法可以尝试&#xff0c;但请注意&#xff0c;这些方法…

政安晨:【Keras机器学习示例演绎】(四十一)—— 使用预先训练的词嵌入

目录 设置 简介 下载新闻组 20 数据 让我们来看看这些数据 清洗数据并将数据分成训练集和验证集 创建词汇索引 加载预训练的词嵌入 建立模型 训练模型 导出端到端模型 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: TensorFlow与…