欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    第3章 数组.ppt

    • 资源ID:565296       资源大小:268KB        全文页数:33页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第3章 数组.ppt

    第3章 数组 第第3章章 数数 组组 3.1 一维数组一维数组 3.2 二维数组二维数组第3章 数组 3.1 一一 维维 数数 组组 一维数组是最简单的数组,在Java中,数组是作为数组类的一个实例来处理的,故可以用new运算符来建立一个数组。由于数组中每一个元素都作为一个单独的对象来考虑,因而必须逐一建立,所以定义的时候,我们必须显式或隐含地指明数组中对象的数目。下面我们分声明和引用两部分来进行介绍。第3章 数组 3.1.1 一维数组的声明和初始化 数组变量在使用之前要事先声明,其数组元素的类型可分为三类,第一类是Java的基本数据类型;第二类是Java类和接口类型(引用类型);第三类是数组类型。其一般定义格式如下:array_type array_Name;或 array_type array_Name;第3章 数组 上面两种定义方式完全等价。对C/C+熟悉的读者应该对第一种定义方式并不陌生。例如:int Array1;Object Array2;上面所给的例子只是简单的变量声明,并没有给数组分配内存空间。我们在使用数组前还必须对其进行初始化(即为其分配内存空间)。给数组元素分配内存并为数组元素赋初值的过程称为数组初始化。初始化可分为动态初始化和静态初始化。第3章 数组 1静态初始化 当数组元素的初始化值直接由括在大括号“”之间的数据给出时,就称为静态初始化。该方法适用于数组的元素不多且初始元素有限时。静态初始化往往和声明结合在一起使用,其格式如下:array_type array_Name=element1,element2;第3章 数组 其中,array_type为数组元素的类型;array_Name为数组名;element1、element2为array_type类型的数组元素初值;方括号“”表示可选项。例如:int factorial=1,2,3,4,5,6,7,8;char ch=a,A,b,B,c,C;double f=12,45.12,88.123;第3章 数组 2动态初始化 与静态初始化不同,动态初始化先用new操作符为数组分配内存,然后才为每一个元素赋初值。其一般格式如下:array_Name=new array_type arraySize;其中,array_Name是已定义的数组名;array_type为数组元素的数据类型,必须与定义时给出的数据类型保持一致;arraySize为数组的长度,它可为整型变量或常量。例如:第3章 数组.int series=new int4;for(int i=0;i4;i+)series i=i*3;.第3章 数组 3.1.2 一维数组的引用 当有了数组的声明和初始化后,与C/C+相同,就可以在程序中引用数组的元素了。数组元素的引用是通过数组名和下标值来进行的,其一般格式如下:array_Name arrayIndex 其中,array_Name为数组名,arrayIndex为数组元素的下标。数组的下标是一个int类型数,也可以使用与int类型进行自动类型转换的类型,如short、byte、char类型(使用时转换成int类型),但下标不能是long类型的数。如果非得用long类型的数定义数组的下标,则须强制转换。第3章 数组 比如:.short i;byte j;long k;int array1 i,array2j;/no errorint array3k;/error int array4(int)k;/its ok .第3章 数组 在Java语言中,数组下标从0开始,到数组长度减1结束。任何数组都有公有变量length。我们除了可以在使用时显式指出数组长度之外,也可以使用length这一数组属性。它是只读变量,只可检测,不可赋值,因为数组一旦分配内存后,其长度就不再变化。为了安全考虑,数组的存取在程序运行时实时检查,企图使用小于零或大于数组长度的下标都会引起越界异常(ArrayIndexOutofBoundException)(异常处理我们将在后面的章节中给出)。第3章 数组 例如:.int array1=new int 10;array1-1=100;/error,out of bound.array1 10=200;/error,out of bound.下面我们给出一个完整的例子,作为本节的总结。第3章 数组 例3.1 public class TimeSheetDemo public static void main(String args)int days=DialogBox.requestInt(number of days worked);int hours;hours=new int days;for(int i=0;idays;i+)hoursi=DialogBox.requestInt(hours on day+(i+1);第3章 数组 int salary=new int days;for(int i=0;idays;i+)if(hoursi=8)salaryi=15*hoursi;elsesalaryi=8*15+(hoursi-8)*20;Transcript.println(DaytHourstSalary);for(int i=0;idays;i+)第3章 数组 Transcript.println(i+1)+t+hoursi+t$+salaryi);int totalHours=0;int totalSalary=0;for(int i=0;idays;i+)totalHours=totalHours+hoursi;totalSalary=totalSalary+salaryi;Transcript.println(Total hours:+totalHours);Transcript.println(Total salary:$+totalSalary);第3章 数组 本例的功能是对员工工作的天数、日薪、日工作时间等进行统计;当每天工作时间不超过8小时时,每小时的酬金为15元,如果超过8小时,在每小时15元的基础上再累加超工作量酬金;最后对工作天数、小时数、工资进行输出。当我们输入工作天数为5天,顺序的工作小时为9、5、11、8、4后,其输出结果如图3.1所示。第3章 数组 图 3.1 第3章 数组 在该例中,类DialogBox、Transcript是作者所提供的标准类,在附录中我们会给出。该程序是在JBuilder 3.0中运行并通过的。作者提供的标准类,须在JBuilder中的project菜单项中对properites属性进行设置。由于作者把标准类安装在E:packagesgenesis目录中,故须设置为如图3.2所示。今后例子中所用到的标准类,如无特别说明,均与此例相同。第3章 数组 图 3.2第3章 数组 3.2 二二 维维 数数 组组 我们在讨论一维数组的时候谈到,数组的元素类型可以为数组,即数组的嵌套,其实,多维数组可以看作是数组的数组。也就是说,多维数组中每个元素为一个低维数组,故多维数组的声明、初始化和引用与一维数组非常相似。由于多维数组中用得较多的还是二维数组,因而我们着重讨论二维数组的属性,其他高维数组可以以此类推。第3章 数组 3.2.1 二维数组的声明和初始化 与一维数组类似,二维数组声明的一般格式如下:array_type array_Name ;或 array_type array_Name;其中,array_type为数组元素类型,可以是任意的数据类型;array_Name为数组名,可以是Java中合法的标识符。上面的定义并没有为数组元素分配内存空间,因而必须经过初始化后才能使用。第3章 数组 例如:int array1 ;/定义一个整型二维数组或 int array2;/同样定义一个二维整型数组 二维数组在实际的使用过程中也分为静态初始化和动态初始化两种。初始化的过程与一维数组相同,在此不多加理论说明,而只是以初始化实例来加以说明。第3章 数组 1静态初始化实例 .int number =1,2,3,4,5,6;char ch =a,b,c,d,e,f;.上例是在建立数组的同时用大括号中的值给它赋初值,得到了两个二维整型数组和二维字符数组。第3章 数组 2动态初始化实例.int array_int=new int33;/定义数组并为其分配存储空间long array_long=new long55;.第3章 数组 3.2.2 二维数组的引用 当我们对二维数组进行了初始化后,就可以在程序中引用数组的元素了。二维数组元素的引用是通过数组名和下标值来进行的,其一般格式如下:array_Name arrayIndex1 arrayIndex2 第3章 数组 其中,array_Name为数组名;arrayIndex1为数组元素的高维下标;arrayIndex2为数组的低维下标。二维数组中,下标同样是一个int类型数,也可以使用与int类型进行自动类型转换的类型,如short、byte、char类型(使用时转换成int类型),但下标不能是long类型的数。如果非得用long类型的数定义数组的下标,则须强制转换。熟悉C/C+的读者知道,在C/C+使用二维数组的时候,要求每一维的长度必须一致,例如在C中有如下的定义:int array 3;其对应的二维表如表3.1所示。第3章 数组 表3.1 C/C+中二维数组存储格式array00array01array0narray10array11array1narray20array21array2n第3章 数组 在Java中,却并不要求多维数组的每一维长度相同。例如,当在Java有如下的定义:int array 3=new int3;时,其对应的二维表如表3.2所示。表3.2 Java中二维数组存储格式 array00array01array0narray10array11array1marray20array21array2k第3章 数组 表3.2中并不要求n=m=k,实际应用中有可能nmk。下面我们给出一个二维数组应用的实例。例3.2 public class ProcessingMarks /*Processes students assessment marks.*/public static void main(String args)String course=Maths,English,Computer,Communication;第3章 数组 int classSize=8;int assessmentMarks=new int classSize4;/for each student for(int m=0;m4;m+)Transcript.print(coursem+t);Transcript.println();for(int i=0;iclassSize;i+)/for each assessment 第3章 数组 for(int i=0;iclassSize;i+)/for each assessment for(int j=0;j4;j+)a s s e s s m e n t M a r k s i j =(int)(26*Math.random();Transcript.print(assessmentMarksij+t);Transcript.println();第3章 数组 本例是通过二维数组assesmentMarks对学生的成绩进行统计,并按四门功课对其输出。程序中定义一维数组course来保存对应的每门功课,二维数组assesmentMarks保存每门功课的成绩。成绩由Java中Math包中的随机函数来产生,由于随机数为实数,所以须强制转换。Transcript为作者提供的标准类,见附录。程序的输出结果如图3.3所示。第3章 数组 图 3.3

    注意事项

    本文(第3章 数组.ppt)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开