【Java语言基础⑤】Java编程基础——方法,数组详解

方法

1.什么是方法

方法就是一段可以重复调用的代码。假设有一个游戏程序,程序在运行过程中,要不断地发射炮弹。发射炮弹的动作需要编写100行代码,在每次实现发射炮弹的地方都需要重复地编写这100行代码,这样程序会变得很臃肿,可读性也非常差。

为了解决上述问题,通常会将发射炮弹的代码提取出来,放在一个{}中,并为这段代码起个名字,提取出来的代码可以看作是程序中定义的一个方法。这样在每次发射炮弹的地方,只需通过代码的名称调用方法,就能完成发射炮弹的动作。需要注意的是,有些书中也会把方法称为函数。

2.方法的语法格式

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,...){ 
	执行语句
	...
	return 返回值;
}

l修饰符:方法的修饰符比较多,例如,对访问权限进行限定的修饰符,static修饰符,final修饰符等,这些修饰符在后面的学习过程中会逐步介绍。

l返回值类型:用于限定方法返回值的数据类型。

l参数类型:用于限定调用方法时传入参数的数据类型。

l参数名:是一个变量,用于接收调用方法时传入的数据。

lreturn关键字:用于返回方法指定类型的值并结束方法。

l返回值:被return语句返回的值,该值会返回给调用者。

3.方法的重载

在编程语言里存在这种情况:参数不同的方法有着相同的名字,调用时根据参数不同确定调用哪个方法,这就是Java方法重载机制。

所谓方法重载,就是在同一个作用域内,方法名相同但参数个数或者参数类型不同的方法。例如,在同一个作用域内同时定义三个add()方法,这三个add()方法就是重载方法。

数组

1.数组的声明

一个数组由4个基本元素构成:数组名称、数组元素、元素索引、数据类型。在Java中,声明数组的方式如下。

数据类型[]数组名; 
数组名= new数据类型[长度];

2.不同类型数组的默认值

数据类型默认初始化值
byte、short、int、long0
float、double0.0
char一个空字符,即’\u0000’
booleanfalse
引用数据类型null,表示变量不引用任何对象
3.数组的静态初始化方式

在定义数组时只指定数组的长度,由系统自动为元素赋初值的方式称作动态初始化。在初始化数组时还有一种方式叫做静态初始化,就是在定义数组的同时就为数组的每个元素赋值。数组的静态初始化有以下两种方式。

类型[] 数组名 = new 类型[]{元素,元素,……};
类型[] 数组名 = {元素,元素,元素,……}; 

空指针异常:

在使用变量引用一个数组时,变量必须指向一个有效的数组对象,如果该变量的值为null,则意味着没有指向任何数组,此时通过该变量访问数组的元素会出现空指针异常。

4.数组的常见操作

  • 数组的遍历:在操作数组时,经常需要依次访问数组中的每个元素,这种操作称作数组的遍历。由于数组中元素较多,所以常用循环语句完成数组的遍历。在循环遍历数组时,使用数组索引作为循环条件,只要索引没有越界,就可以访问数组元素。

  • 数组中最值的获取:在操作数组时,经常需要获取数组中元素的最值。例如在一组数组中,找到最大的一个数或者最小的一个数。

  • 在数组的指定位置插入一条数据:现有数组int[] arr={10,11,13,14,15},要求将12插入到索引为2的位置。实现插入的思路如下。

    (1)初识化数组长度为5,现要求插入一个元素。因为数组一旦创建后长度是不可改变的,所以首先需要创建一个长度为6的新数组来存储插入后的所有元素。

    (2)再将原数组中的值复制到新的数组中,同时在指定位置后的元素依次向后移动一位。

    (3)最后将目标元素保存到指定位置即可。

  • 数组排序:在实际开发中,数组最常用的操作就是排序,数组的排序方法有很多,下面讲解一种比较常见的数组排序算法——冒泡排序。所谓冒泡排序,就是不断地比较数组中相邻的两个元素,较小者向上浮,较大者往下沉,整个过程和水中气泡上升的原理相似。

    接下来通过几个步骤具体分析一下冒泡排序的整个过程。

    第1步,从第一个元素开始,将相邻的两个元素依次进行比较,直到最后两个元素完成比较。如果前一个元素比后一个元素大,则交换它们的位置。整个过程完成后,数组中最后一个元素自然就是最大值,这样也就完成了第一轮比较。

    第2步,除了最后一个元素,将剩余的元素继续进行两两比较,过程与第一步相似,这样就可以将数组中第二大的元素放在了倒数第二个位置。

    第3步,以此类推,持续对越来越少的元素重复上面的步骤,直到没有任何一对元素需要比较为止。

5.二维数组

在程序中,仅仅使用一维数组是远远不够的。例如,要统计一个学校各个班级学生的考试成绩,既要标识班,又要标识学生成绩,使用一维数组实现学生成绩的管理是非常麻烦的。这时就需要用到多维数组,多维数组可以简单地理解为在数组中嵌套数组,即数组的元素是一个数组。在程序中比较常见的多维数组就是二维数组,二维数组就是指维数为2的数组,即数组有两个索引。二维数组的逻辑结构按行列排列,两个索引分别表示行列,通过行列可以准确标识一个元素。

二维数组的三种定义方式:

  1. 第一种方式是定义一个确定行的个数和列的个数的二维数组,格式如下所示:

    数据类型[][] 数组名 = new数据类型[行的个数][列的个数];
    
  2. 第二种方式是定义一个确定行数但不确定列的个数的二维数组,格式如下所示:

    数据类型[][] 数组名 = new int[行的个数][];
    
  3. 第三种方式是定义一个确定元素值的二维数组,格式如下所示:

    数据类型[][] 数组名= {{0行初始值},{1行初始值},...,{第n行初始值}}
    

如果这个分享对您有用,欢迎关注本公众号获取更多:
在这里插入图片描述

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北国137

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值