• 055 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 02 数组的概念


    055 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 02 数组的概念

    本文知识点:数组的概念

    数组的声明创建、初始化

    在学习数组的声明创建、初始化前,我们可以和之前的变量的声明创建、初始化进行对比来学习。
    那我们来看一下数组的声明,先来看一下语法格式。

    数组的声明

    数组声明语法格式1

    数组声明格式1:

    数据类型 [] 数组名;

    变量声明格式:

    数据类型 变量名;

    数组声明相比变量声明,在数据类型后增加了一个中括号。而数组名的命名规则和变量名的命名规则是一致的。它本身是一个标识符,要满足标识符的命名规则。并且像变量名一样,如果数组名是由一个单词组成的,所有字母都是小写的。如果由多个单词组成的,第一个单词全部小写,从第二个单词开始,首字母全部大写。

    数组声明语法格式2

    数组声明格式2:

    数据类型 数组名 [];

    说明一下,为什么数组声明有这两种形式:
    因为其他的编程语言,比如说C语言,C++,大家都是把中括号写在数组名的后面(即和我们学习的Java数组声明语法格式2相同)。Java为了和其他编程语言进行区分呢,Java就创建了自己的命名方式。就是把中括号写在数据类型的后面(数组声明语法格式1)。那么,第一种数组声明的语法格式才是我们在Java进行数组声明的时候,常用的形式。

    案例练习如何声明数组——使用2种语法格式

    声明一个整型数组如下:

    int [] myIntArray ;
    int myIntArray [];

    以上两种声明方式都是正确的。
    当然,如果你要生成其他类型的数组呢,就把相应的数据类型的名称进行改变即可。比如我们生成一个char类型的数组、生成字符串String类型的数组。
    记住:字符串本身是一个类。这块内容后续我们学习面向对象的内容后,就知道了。借助类可以创建对象,所以String作为一个类,创建String类型的数组就是对象数组

    以上是数组的声明。
    然后我们看下数组的创建。

    数组的创建

    数组创建形式1:

    先声明、后创建
    1、先去声明一个数组
    2、再去创建数组

    如何创建呢?数组创建形式1:

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

    new是一个关键字,在后面的面向对象程序中呢,我们会遇到很多次new,new关键字其实是在创建一个对象。目前我们先知道有这个概念即可。对于数组问题,我们知道new是在创建数组即可。

    例题:声明并创建一个长度为10的整型数组:

    int [] arr;//声明数组
    arr = new int[10];//创建数组
    

    数组创建形式2:

    声明数组的同时创建数组:
    这个类似变量的初始化,但是数组中不叫初始化,稍后我们对初始化的内容进行演示。
    数组创建形式2:

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

    注意:
    1、创建数组时,数组长度必须被指定,如果没有指定,是错误的。
    2、声明时(赋值号=)左边的中括号写在数组名之前、数组名之后都是正确的。
    mark

    数组在内存中的存储

    我们前面学习变量的时候学习了:定义一个变量之后,变量就会在内存中存储。同样地,定义数组之后,也会在内存中分配内存空间,用来存储数组中的数据。而数组比较特别的一点是:数组在内存中分配的,肯定是一段连续的内存空间

    比如,我们定义一个整型的数组a:

    int [] a = new int [5];
    

    a是一个长度为5的整型数组,会在内存中开辟一块连续的内存空间。并且数组的默认值,对于整型数组来说,它的默认值都是0。所以我们知道,在这片连续的内存空间当中,每个数组元素的值都为0。就是说,长度为5的数组,它肯定有5个元素。那么这5个元素,它的每一个元素的元素值都是0。而我们的数组名本质是一个对象(数组是引用数据类型,即类类型,类创建的就是对象),它(数组名)是指向数组的第一个元素。这点在后面进行方法传值的时候是非常重要的。

    mark

    这是数组的存储形式,需要注意的是:
    数组的数组元素都有默认的元素值。后面我们会学习,其他数据类型创建的数组的数组元素的默认值都是什么!

    这里,我们在强调一点,即局部变量。局部变量(在主方法中、在循环中我们学习的)都是没有默认值的。我们之前遇到过类似的问题,我们需要给局部变量进行赋值的。但是数组是有默认值的。因为数组的本质是对象

    数组的初始化

    初始化的定义:声明的同时给变量赋值
    我们前面看到的new 数据类型[数组长度]; 不叫初始化,而叫做创建对象。
    mark
    注意:
    1、元素之间用逗号分隔(英文逗号)
    2、整个代码书写都必须是在英文输入法状态之下的 否则,会报错。
    上面的问题也是初学者经常会犯的错误。

    那么数组长度是什么呢?数组长度:数组初始化时所给元素的个数,即为数组长度
    比如上面的例子中:

    int [] arr = {1,2,3,4,5,6,7,8,9,10};
    

    从1到10共计10个元素,那么数组长度就是10。

    接下来,我们再看一下数组元素的引用

    数组元素的引用

    前面提到过了,总说定义长度为10的数组,那么对于数组当中的每一个元素是如何进行表示的呢?
    我们来看一下语法格式:

    数组名[数组元素下标]

    这里面,注意一下,数组元素下标是整型的数字,并且数组元素下标是从0开始的,其实整个“数组名[数组元素下标]“ 这样一个整体, 我们可以把这个整体看做是一个变量名

    我们看一下数组元素的引用的一个图例。

    int [] a = {1,2,3,4,5,6,7,8,9,10};
    

    10个元素对应10个连续的内存空间中。注意:数组一定是存放在连续的内存空间中。

    我们把:
    第1个元素表示为a[0], 注意,数组下标从0开始。
    第2个元素表示为a[1]
    第3个元素表示为a[2]
    ……
    第10个元素表示为a[9]

    这就类似变量和变量值之间的对应关系。比如,我们定义一个变量n:

    int n = 10;
    

    那么,n是变量名,10是变量值。同样的,a[0]表示数组a给1个位置处的数组元素起的名字,所以,我们说可以把a[0]这个整体看做一个变量名。而它所对应的值就是1。

    数组元素引用的问题中,始终要记得:数组元素下标是从0开始。重要的事我已经说了三遍,不行你回顾文章数一数。
    mark

    数组的长度

    上面数组初始化的时候提过,数组长度就是数组元素的个数
    在数组中,还有一个属性 ,叫做length。length属性是表示数组长度的。如何使用属性呢?
    使用格式:

    数组名.length

    使用方法类似我们前面从键盘接收数据时用到的sc.nextInt(); nextInt()有括号,而length属性没有括号。因为nextInt()是方法,需要括号。而length是属性,不需要括号。这些后面面向对象的知识会涉及到,现在有个了解就好了。(其实都是引用数据类型,对象引用属性或者对象饮用方法的形式)

    Scanner sc = new Scanner(System.in);
    sc.nextInt();
    

    mark

  • 相关阅读:
    Core Location定位
    iOS中的round/ceil/floorf函数略解
    NSDateFormatter相关整理
    iOS使用NSMutableAttributedString 实现富文本(不同颜色字体、下划线等)
    自定义带DropDownTable的TextField(事件)
    自定义带DropDownTable的TextField(UI部分)
    读取json文件内容
    在UITextview中添加链接属性的文字
    自定义弹出框Alter
    给UIView加上点击事件
  • 原文地址:https://www.cnblogs.com/xlfcjx/p/13692267.html
Copyright © 2020-2023  润新知