- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java语言程序设计 第4章 数组 4.1 一维数组 4.2 案例实践2:约瑟夫环问题 4.3 二维数组 4.4 案例实践3:K-Means聚类 4.1 一维数组 数组(Array)是由若干具有相同类型的元素构成的有序集。 数组中的元素可以是基本类型,也可以是对象类型,但同一数组中的所有元素必须具有相同的类型——如int数组和字符串数组分别表示数组中所有元素是int类型和字符串类型。 数组中元素的总个数称为数组的长度(Length),每个元素在数组中所处的位置称为该元素的下标(Index),通过下标来定位数组中的某个元素。 若能以一个下标定位到数组中的元素,此时的数组称为一维数组。 Java中的数组与C/C++有较大区别,读者在学习时应予以注意。 4.1 一维数组 声明一维数组 1. 此处的方括号不代表可选项,而是数组特有的语法。数组名左侧的类型并非指数组的类型,而是指数组中元素的类型。因此,前一种声明方式更能体现数组的实质——推荐这种方式,而后一种声明方式则与C的语法一致。 2. 不管数组中的元素是何种类型,数组本身是一种对象类型。至于数组对象所属的具体类型,则交由系统维护,对编程者是透明的。 3. 声明数组时不能在方括号中指定数组长度,而要在创建数组时指定。如下面的代码存在语法错误: 4.1 一维数组 创建一维数组 仅仅声明数组,数组元素并未被分配内存单元,因此,声明数组后要进行创建的操作——为数组元素分配内存单元,否则不能访问该数组。 1. new关键字右侧的类型必须与声明时指定的类型一致。 2. 长度不能省略,其可以是任何值为int型的表达式(但不能为负数)。若长度是byte、short或char型,则自动提升为int型。 3. 可以在声明的同时创建数组,也可以先声明,再单独创建,如: 4. 创建数组后,各元素的值均为默认值。 4.1 一维数组 创建一维数组 从内存的角度看,数组名实际上代表着数组对象的引用,被分配在栈中,而数组中的元素则被分配在堆中。 与其它编程语言一样,Java中的数组也占据着一段连续的内存单元,因此数组具有随机存取(Random Access) 的特性。 4.1 一维数组 创建一维数组 也可以在声明数组的同时为各元素指定初值: 1. 多个初值彼此以逗号隔开,初值的个数决定了数组的长度。花括号中可以没有任何初值,此时数组长度为0。此外,结束花括号后有一个分号。 2. 系统先根据初值个数创建出数组,然后将各初值按顺序赋给各元素。 3. 若初值个数较多,且具有一定规律,则通常采用循环结构在运行时为各元素赋值,而不采用此种方式。 4.1 一维数组 创建一维数组 4. 各初值的类型要与声明的类型一致。若不一致,则系统会试图将初值类型自动转换为声明的类型,若不能转换,则视为语法错误,如: 5. 不允许先声明数组,再单独赋以初值,如: 4.1 一维数组 访问一维数组 1. 取得数组长度 Java中的任何数组都有一个名为length的属性——标识着数组长度,编程者可以通过“数组名.length”的形式动态取得数组长度 ,如: 2. 访问数组元素 与C一样,Java也通过下标来访问数组中的元素。对于一维数组,通过一个下标即能定位到数组中的元素,其语法格式如: 4.1 一维数组 访问一维数组 ① 下标可以是任何值为int型的表达式。此外,尽管下标也位于方括号中,但其与数组长度的意义完全不同——前者用于访问数组元素,后者用于创建数组。 ② Java从语法层面取消了指针,故不支持如C/C++中“*(a+i)”那样通过元素所占的地址来访问数组元素a[i]。 ③ 下标从0开始,第i个元素的下标是i-1,即下标与自然计数之间相差1。 ④ 为方便编写以及阅读程序,声明数组时,可以将数组长度增1,并约定下标为0的那个元素不用,以统一下标与自然计数。 Java程序在运行时,系统会检查数组元素的下标是否越界(即不在0~数组长度-1范围内)。若越界,则抛出名为IndexOutOfBoundsException的错误。而C/C++并不检查下标,当访问越界下标对应的元素时,不会提示任何错误(但得到的值是不确定的),从这个角度看,Java比C/C++更安全。 【例4.1】 4.1 一维数组 访问一维数组 3. 访问数组整体 Java允许通过数组名将数组作为整体进行访问,如: 第2、4行其实是修改数组对象的引用a,使其指向新的数组对象。 4.1 一维数组 增强型for循环 从JDK 5开始提供了快速访问数组全部元素的新语法——增强型for循环 (也称for-each循环)。
您可能关注的文档
- 小红书软文营销.docx
- 小红书软文营销实践操作指引.docx
- 疫情下的企业公关:新潮传媒裁员与老乡鸡董事长手撕联名信.docx
- 直播营销实践报告1.docx
- 直播营销实践报告2.docx
- 自媒体账号运营实践方案.docx
- 坚果pro产品培训资料.pdf
- 坚果pro手机内部培训资料.pdf
- Java编程第00章-课前.ppt
- Java编程第01章-概述.ppt
- 2024年晴隆县幼儿园教师招教考试备考题库汇编.docx
- 2024年晋中健康学院马克思主义基本原理概论期末考试题必考题.docx
- 2024年景谷县招教考试备考题库附答案.docx
- 2024年晋中信息学院马克思主义基本原理概论期末考试题最新.docx
- 2024年昭通学院马克思主义基本原理概论期末考试题必考题.docx
- 2024年普定县幼儿园教师招教考试备考题库附答案.docx
- 2024年景东县幼儿园教师招教考试备考题库最新.docx
- 2024年晋中学院马克思主义基本原理概论期末考试题附答案.docx
- 2024年晋中健康学院马克思主义基本原理概论期末考试题含答案.docx
- 2024年普定县招教考试备考题库含答案.docx
原创力文档


文档评论(0)