CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

JAVA学习基础之数组和方法-永久免费的源码丞旭猿

章、数组和方法

41数组

数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组和多维数组。

4-1-1、一维数组

一维数组可以存放上千万个数据,并且这些数据的类型是完全相同的。

要使用java的数组,必须经过两个步骤:

  1. 声明数组

  2. 分配内存给该数组

声明形式一:

数据类型 数组名[ ]=null; //声明一维数组

数组名=new 数据类型[长度]; //分配内存给数组

声明形式二:

数据类型[ ] 数组名=null;

数组的声明格式里,数据类型是声明数组元素的数据类型,常见的类型有整型、浮点型和字符型等;数组名是用来统一这组相同数据类型的元素名称,其命名规则和变量的相同,建议使用有意义的名称为数组命名。数组声明后实际上是在栈内存中保存了此数组的名称,接下来便是要在堆内存中配置数组所需的内存,其中长度是告诉编译器,所声明的数组要存放多少个元素,而new则是命令编译器根据括号里的长度在内存中开辟相应的空间。

变量的命名规则:第一个单词的首字母小写,之后每个单词的首字母大写

堆栈内存的解释:

数组操作中,在栈内存中保存的永远是数组的名称,只开辟了栈内存空间数组是永远无法使用的,必须有指向的堆内存才可以使用,要想开辟新的堆内存则必须使用new关键字,之后只是将此堆内存的使用权交给了对应的栈内存空间,而且一个堆内存空间可以同时被多个栈内存空间指向,即:一个人可以有多个名字,人就相当于堆内存,名字就相当于栈内存。

4-1-2数组的静态初始化

之前定义的数组都是动态初始化数组,所有的内容在数组声明的时候并不具体的指定,而都是以默认值的形式出现。

静态初始化就是指在数组定义之后,直接指明其内容。

4-1-3、排序

在数组中,排序操作是一种比较常见的算法。下面通过一个简单的例子来演示数组排序操作:

4-1-4、二维数组

如果说要吧把一维数组当成几何中的线性图形,那么二维数组就相当于是一个表格。

二维数组声明的方式和一维数组类似,内存的分配也一样是用new这个关键字,其声明与分配内存的格式如下所示:

动态初始化:

数据类型 数组名[ ][ ];

数组名=new 数据类型[行的个数][列的个数];

静态初始化:

数据类型 数组名[ ][ ]=new 数据类型[行的个数][列的个数];

二维数组的存储:

声明整型数组score,同时为其开辟一块内存空间:

int score[ ][ ]=new int[4][3];

整型数据score可保存的元素有4*3=12个,而在java中,int数据类型所占用的空间为4个字节,因此该整型数组占用的内存共为4*12=48个字节。

4-1-5、多维数组

从一、二维数组可以发现,想要提高数组的维数,只要在声明数组的时候将索引与中括号再加一组即可,所以三维数组的声明为int score[ ][ ][ ],而四维数组为int score[ ][ ][ ][ ]……,以此类推。

4-2、方法的声明及使用

方法就是一段可重复调用的代码段,例如:有某段长度约100行的代码,要在多个地方使用此段代码,如果在各个地方都重复编写此总分代码的话,则肯定会比较麻烦,而且此部分代码如果修改的话也比较困难,所以此时可以将此部分代码定义成一个方法,以供程序反复调用。

方法的定义格式:

public static 返回值类型 方法名称(类型 参数1,类型 参数2,……){

方法的主体

程序语句; 方法的主体

[return表达式];

}

在此定义的方法,因为其可以直接使用主方法(main())调用,所以将方法声明处加上了public static两个关键字。

定义一个方法在主方法中调用:

如果在返回值类型上写上的是一个void,则表示此方法没有返回值,则就不能使用return返回内容。

在printInfo()中定义了很多行的代码,这些代码在调用的时候只需要调用方法名称即可。

在定义方法的时候也是有命名规范要求的:第一个单词的首字母小写,之后每个单词的首字母大写。

一个有返回值的方法:

4-3、方法的重载

方法的重载就是方法名称相同,但参数的类型和参数的个数不同,通过传递参数的个数及类型不同以完成不同功能的方法调用。

从程序中可以发现add()方法被重载了三次,而且每次重载时的参数类型或个数都有不同,所以在调用的时候,会根据参数的类型和个数自动进行区分。

注意事项:方法的重载一定只是在参数上的类型或个数不同。

方法重载一定是根据参数的类型或个数来判断的。

4-4、使用return结束一个方法

return可以返回一个方法的结果,也可以结束一个方法。

4-5、方法的递归调用

递归调用是一种特殊的调用形式,是方法自己调用自己。

例如:完成一个数字的累加操作,除了可以使用循环的方式完成,也可以通过递归的方式:

在运用递归调用方法时,一定要明确的写出方法的结束判断,否则会出现操作的内在溢出。

4-6、数组的引用传递

一个方法可以接收一个数组,也可以返回一个数组,如果方法接收一个数组的话,则此方法对数组所做的修改全部被保留下来。

方法除了可以接收数组之外,也可以通过方法返回一个数组,只需要在返回值类型上,明确的声明出返回的类型是数组即可。

4-7、范例讲解

4-6-1、定义排序方法

以上只是完成了整型数组的排序操作,如果一个操作中即要求可以排序整型也可以排序浮点型等各种数据,如果分别实现则会比较麻烦,所以在java中为了数组操作方便,提供了一个支持。

4-6-2数组拷贝

可以将一个数组中指定位置的内容拷贝给另外一个数组,如果,此时要设计方法的话,则此方法应该传递多少个参数呢?

  1. 源数组

  2. 源数组的开始点

  3. 目标数组

  4. 目标数组的开始点

  5. 拷贝的长度

对于这样的拷贝功能,在java中也是有所支持的,直接使用java提供的一个操作语句即可。

4-8java新特性对数组的支持

在JDK1.5(J2SE5.0)之后,Java中为了方便开发,引入了大量的新特性,如:可变参数、foreach输出。

4-81可变参数

在JDK1.5之前,一个方法在调用的时候必须根据其规定的参数传递参数,规定了五个,就必须传递五个,但是在JDK1.5之后,为了让方法更加具有灵活性,使用了可变参数的概念,即:方法中可以接收的参数不再是固定的,而是随着需要传递的,可变参数的定义格式如下:

返回值类型 方法名称(类型 …… 参数名称){}

所有的可变参数接收之后都是以数组的形式保存下来的,所以直接按数组的方式接收即可:

4-82foreach输出

此语句也是新的特性,而且在以后的开发中也会使用到。

数组的输出一般都会使用for循环,但在JDK1.5之后,为了方便数组的输出,提供了一种foreach语法,此语法的使用格式如下:

for(数据类型 变量名称:数组名称){

……

}

举报/反馈

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容