Java基础语法5--数组/javadoc工具

版权声明:本篇文章由IT_CREATE整理 https://blog.csdn.net/IT_CREATE/article/details/82560749

数组概述

在C语言的学习中,我们已经知道:数组是存储在一个连续的内存块中的元素集合。数组中的每个元素必须是相同的数据类型,并且通过索引进行区分。数组中的第一个元素的索引为0。

在Java中,创建数组有两个步骤:

  • 声明一个对数组的引用;
  • 使用new关键字初始化数组,并指定数组的大小。

在Java中,数据要么是基础数据类型的,要么是一个引用类型。而数组不是八种基础数据类型之一,所以数组是引用类型。所以,一个数组需要一个引用来访问它,并且需要new关键字来初始化。

要声明一个数组引用,可以用中括号。例如,如下的语句声明了一个对int类型数组的引用:

 

int [] sums;

在Java中,声明数组时,我们也可以将括号放在数组名后。例如:

 

int sums [];

这是为了保持对C和C++的兼容性。我们推荐将括号放在数组名前面,因为这样可以使用引用声明更清晰。

数组的大小在数组实例化时决定。将一个整数放在中括号中来指定数组的大小。例如,如下的语句将sums赋值为一个有20个元素的新数组:

 

sums = new int[20];

我们可以声明一个数组类型的引用,并且在同一语句中初始化该数组对象。如下的语句声明了一个对double类型数组的引用temps,temps在同一语句中被赋值为一个新的有31个元素的double类型数组:

 

double [] temps = new double[31];

数组对象是使用new关键字初始化的,在数组对象分配内存空间后,数组元素被初始化。

 

访问数组

数组中的元素通过用对该数组的一个引用、一个用于描述我们要访问数组哪一个元素的整型索引值来访问。数组的第一个元素的索引为0,第二元素的索引为1,依此类推。

例如,如下的语句声明了一个有20个整型元素的数组,并给分别给元素赋值,第一个元素是1,第二个元素是2,最后一个元素是191:

 

int [] sums = new int[20];

sums[0] = 1;

sums[1] = 2;

sums[19] = 191;

 

数组长度

如果数组sums的大小为20:

 

int [] sums = int[20];

sums的最后一个元素的索引为19。如果使用索引20,虽然编译器会允许编译,但是它是无效的。数组的索引是从0开始的,最大索引值比数组的长度小1。

注:(数组名.length)是获取数组的长度

 

引用数组

java中有九种类型的数组:八种基础数据类型中每一种是一种数组类型、引用类型的数组类型。sums和temps数组就是基础数据类型数组的示例。我们可以声明任何引用类型的数组。例如,如下的语句声明了一个Employee类型的引用数组:

 

Employee [] myCompany;

这样,变量myCompany就可以指向任何Employee类型的引用数组。

如下的语句将一个新的有500个元素的Employee类型引用数组赋值给myCompany:

 

myCompany = new Employee[500];

该数组有500个Employee类型的引用,每个都初始化为null。

数组myCompany中的元素可以和基础数据类型数组一样,通过索引来访问。

引用数据类型的操作同基本数据类型操作一样,通过索引访问。

在上述操作完成后,还要进行以下操作,上面只是声明了数组有多少引用,还没有实例化对象,所以,我们需要对每个元素进行实例化,如:

 

 

myCompany[0] = new Employee();

 

 

数组初始化

在Java中,我们可以用一条语句声明一个数组引用,实例化一个数组,并且填充数组元素。这个过程称为数组初始化,它对创建一个包含已知数据的小数组是很有用的。

数组初始化程序在创建数组时,不需要使用new关键字。数组中的元素使用大括号列出,元素和元素之间用逗号分隔开。例如,如下的数组初始化程序创建了一个有五个int类型元素的数组:

 

int [] odds = {1, 3, 5, 7, 9};

 

数组复制

因为数组的大小是固定的,所以在使用数组时,经常不得不创建一个更大或更小的数组,然后将已存在的数组的内容复制到新的数组中。我们可以编写一个for循环将一个数组的内容复制给另一个,也可以用System类中的静态方法arraycopy()。

arraycopy()方法的签名如下:

 

public static void arraycopy(Object source, int sourcePos, Object destination, int destinationPos, int length)

sourcePose指示要复制的源数组,而destinationPos指示要复制给哪个目标数组。length参数代表要复制的元素的数目。

 

多维数组

以上讨论的数组都是一维数组。在Java中,我们还可以创建多维的数组。与一维数组一样,多维数组也是对象,需要一个引用。该引用是在数据类型和变量名之间用多个中括号来声明的。例如,如下的语句声明了一个对一个二维int类型数组的引用:

 

int [] []  sums;

当初始化二维数组时,必须用两个int类型整数来指定行数和列数。例如,如下的语句将sums赋值为一个新的10X12个int类型元素的数组:

 

sums = new int[10][12];

这个数组有120个int类型元素,因为在内存中有10个含有12个元素的int类型数组。引用sums指向一个大小为10的数组,每个数组又包含10个int类型的数组引用。10个int类型的数组引用中的每一个又指向一个有12个int类型元素的数组,所以该数组就有120个元素。

三维数组,和其他多维数组的声明方式是一样的。

 

Java文档工具javaDoc

Java语言一个独特且特别有用的功能就是javadoc工具,使用该工具,可以获取Java源代码中的注释,并生成HTML页面。这就鼓励开发者在代码中添加注释,因为产生的HTML网页可以让同事和其他需要了解一个类的人所用,并且不需要看实际的源代码。

Java SE API的文档就是使用javadoc工具生成的。该文档可以在Sun的网站http://java.sun.com/javase上找到。我们可以下载该文档,也可以在线浏览。

运行javadoc工具可以为每个类创建HTML页面,页面中包含有类的详细信息。类页面的信息包括类的继承层次、字段的摘要、构造器和方法,以及每个字段、构造器和方法的详细描述。

javadoc工具查找源代码中以如下格式出现的特殊注释:

 

/**

*/

与类的通用信息有关的注释直接出现在类声明之前,而与类的字段、方法或构造器有关的注释直接出现在类成员声明之前。此外,我们还可以使用如下javadoc标记之一来表述特定类型的注释信息:

  • @author:表示源代码的作者名称。
  • @depracated:表示随着程序版本的提升,当前类成员已经过期,仅为了保证兼容性依然存在,以此告之开发者不应再用这个API。
  • {@docRoot}:代表当前页面要输出到的针对于根目录的相对路径。
  • @exception:被方法所用,列出抛出的异常。
  • {@link 包.类#成员的链接文字}:创建一个对特定类成员的链接。
  • {@linkplain 包.类#成员的链接文字}:如{@link}相同,但是用纯文本字体代替了代码字体。
  • @param:用于描述方法的形式参数。
  • @return:用于描述方法的返回值。
  • @see:创建一个“参见”XX条目的链接,如类、方法、变量等。
  • @since:描述成员存在或改变时的版本号。
  • @serial、@serialField和@serialData:用于串行化用途。
  • @throws:与@exception标记相同。
  • {@value}:用于显示常量静态字段的值。
  • @version:描述类的软件版本。

总结

本章内容总结如下:

  • 数组是存储在连续内存块中的元素集合。数组的长度是固定的,一旦声明后就不能增长或缩小。数组的大小用数组的length属性来获得。
  • 数组可以使用new关键字或者使用数组初始化器初始化。

javadoc工具可以产生包含类信息的HTML页面,该页面中包含在源代码中出现的任何javadoc注释。

猜你喜欢

转载自blog.csdn.net/IT_CREATE/article/details/82560749