Java程序设计修改-ch05

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|章数组、字符串与Java常用类数组是相同类型的数据按顺序组成的一种复合数据类型。利用数组可以简化程序,并能完成众多功能。字符串是程序设计中要经常用到的,Java使用java.lang包中的String类来创建一个字符串变量。对于字符串有很多相应的操作,本章重点对字符串类型的变量与其它类型变量的相互转换做了详细的介绍,同时还介绍了与字符串有关的其它操作。Java类库中提供了丰富的类和方法,这些类和方法都是精心设计的,其运行效率高、质量高。正确地使用数组,字符串及Java常用类可以编写出功能强大,简练实用的程序,本章将对这三个方面做一介绍。本章要点数组的定义及使用。字符串的常用操作:类型转换,比较等。Java常用类的使用。本章难点多维数组与对象数组的用法。Vector类的使用学习目标掌握数组的定义及使用。掌握字符串的基本使用。掌握Java常用类的一般用法。5.1数组数组是连续内存单元中一组名字和数据类型相同的数据元素的有限集合。数组可以用来保存和处理一组数据类型相同的数据元素。数组中的每个数据元素称作一个数组元素。通过数组名加数组下标,来使用数组中的数据,下标从0开始。当把一维数组中的每个数据元素定义为一个一维数组时,就构成了Java语言的二维数组,依此类推,还可以有三维数组甚至更多维数组。另外,Java语言还可以构造出不规则数组。5.1.1一维数组1.一维数组的声明声明一个数组就是要确定数组名、数组的维数和数组元素的数据类型。数组名是符合Java标识符定义规则的用户自定义标识符。数组的维数用方括号(“[]”)的个数来确定,对于一维数组来说,只需要一对方括号。数组元素的数据类型可以是Java的任何数据类型,如基本类型(int、float、double、char等),类(class)或接口(interface)等。数组的声明格式如下:类型标识符数组名[];或类型标识符[]数组名;本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|例如:intabc[];double[]example2;数组定义后,系统将给数组分配一个内存单元,用于指示数组在内存中的实际存放位置。由于在数组变量定义时,数组元素本身在内存中的实际存放位置还没有给出,所以,此时该数组名的值为空(null)。2.一维数组的初始化因为Java的数组声明中并未指出数组元素的个数,系统无法知道需要给这个数组分配多大的内存空间。要想使一个数组占有所需要的内存空间,必须指出数组元素的个数,在Java程序中把这一工作放在数组的初始化时进行。数组经过初始化后,其长度(即可存放的元素个数)就不可再改变。Java数组的初始化可以通过直接指定初值的方式来完成,也可以用new操作符来完成。(1)直接指定初值的方式用直接指定初值的方式对数组初始化,是在声明一个数组的同时将数组元素的初值依次写入赋值号后的一对花括号内,给这个数组的所有数组元素赋上初始值。这样,Java编译器可通过初值的个数确定数组元素的个数,为它分配足够的存储空间并将这些值写入相应的存储单元。例如:int[]a1={23,-9,38,8,65};这条语句声明数组名为a1,数组元素的数据类型为整型(int,占4个字节),共有5个初始值,故数组元素的个数为5。这样一个语句为Java分配存储空间提供了所需要的全部信息,系统可为这个数组分配5*4=20个字节的连续存储空间。经过初始化后,使a1[0]=23,a1[1]=-9,a1[2]=38,a1[3]=8,a1[4]=65。其存储空间分配及各数组元素的初始值如图5.1所示。注意Java中的数组下标从0开始。a1[0]a1[1]a1[2]a1[3]a1[4]23-938865图5.1数组a1的初始化(2)用关键字new初始化数组用关键字new初始化数组,只为数组分配存储空间而不对数组元素赋初值。用关键字new来初始化数组有两种方式:第一种方式:先声明数组,再初始化数组。这实际上由两条语句构成,格式如下:类型标识符数组名[];数组名=new类型标识符[数组长度];其中,第一条语句是数组的声明语句,第二条语句是初始化语句。应该注意的是:两条语句中的数组名、类型标识符必须一致。数组长度通常是整型常量,用以指明数组元素的个数。例如:inta[];a=newint[9];第二种方式:在声明数组的同时用new关键字初始化数组。这种初始化实际上是将上面所述的两条语句合并为一条语句罢了。格式如下:本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|类型标识符数组名[]=new类型标识符[数组长度];或类型标识符[]数组名=new类型标识符[数组长度];例如:int[]a=newint[10];Java语言规定,在数组分配内存单元后,系统将自动给每个数组元素赋值,并规定:数值类型的元素初值为0,逻辑类型的数组元素初值为false,类类型的数组元素初值为null。在使用数组时[]即可位于数组名前,也可以位于数组名后,如int[]a和inta[]都是合法的。3.一维数组的使用当数组初始化后就可通过数组名与下标来引用数组中的每一个元素。一维数组元素的引用格式如下:数组名[数组下标]其中:数组名是经过声明和初始化的标识符;数组下标是指元素在数组中的位置,数组下标的取值范围是0~(数组长度-1),下标值可以是整数型常量或整数型变量表达式。例如,在有了“int[]a=newint[10];”声明语句后,下面的两条赋值语句是合法的:a[3]=25;a[3+6]=90;但a[10]=8;是错误的。这是因为Java为了保证安全性,要对引用时的数组元素进行下标是否越界的检查。这里的数组a在初始化时确定其长度为10,下标从0开始到9正好10个元素,因此,不存在下标为10的数组元素a[10]。在Java语言中,数组也是一种对象。数组经初始化后就确定了它的长度,对于每个已分配了存储空间的数组,Java用一个数据成员length来存储这个数组的长度值。【例5_1】数组的声明、初始化和其长度的测定。本例中定义了一个整型数组,然后在屏幕上显示出这个数组。代码如下://文件名:Exam5_1.javapublicclassExam5_1{publicstaticvoidmain(Stringargs[]){inta[]={23,-9,38,8,65};//定义数组并赋初值intn=a.length;//取出数组的长度System.out.println(数组的长度是:+n);for(inti=0;in;i++)//依次显示数组中的元素System.out.println(a[i]);}}本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|特殊的一维数组-命令行参数在Java应用程序中我们必须写publicstaticvoidmain(String[]args)主方法。main方法中有一个参数是字符串数组args,这个数组的元素args[0],args[1]……args[n]的值都是字符串。args就是命令行的参数。在Java解释器解释用户的字节码文件时,可以包括需要传给main方法的参数。一般形式为:java类文件名字符串1字符串2……字符串n其中,类文件名和各字符串间用空格分隔。例如,在执行类Exam5_2时,命令行的输入是JavacExam5_2goodbetterbest这里,args[0]代表参数“good”,args[1]代表参数“better”,args[2]代表参数“best”,这时数组的长度为3。【例5-2】命令行参数数组的使用如图5-3所示,通过命令行参数输入若干内容,以倒序在屏幕上显示。图5-3命令行参数程序运行结果代码如下://Exam5_2.javapublicclassExam5_2{voidrun(String[]a){intn=a.length;本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|(inti=n-1;i=0;i--)System.out.println(a[i]);}publicstaticvoidmain(Stringargs[]){Exam5_2ee=newExam5_2();ee.run(args);}}程序分析:由于要倒序显示,所以用for循环时,从下标最高的元素开始循环。Java的数组在定义时要求定义数组的长度,但是这个字符串数组的长度是与用户输入的参数个数确定的,是不定的,所以这是一个特殊的一维数组。5.对象数组前面讨论的数组的数据类型都是简单的基本类型,即数组元素是简单数据类型。但实际问题中往往需要把不同类型的数据组合成一个有机的整体,以便于引用。例如,一名学生的姓名、性别、年龄和各科学习成绩等都与这名学生紧密相关,而一个班(乃至更多)的学生又都具有这些属性,如表所示。如果将这些数据项定义为相互独立的简单变量是难以反映它们之间的内在联系的,应当将它们组织在一起形成一种数据结构。这种数据结构在过去的结构化程序设计中被称为记录或结构体,而在面向对象的程序设计中把这种结构也称为对象。由自定义的对象作为数组元素所构成的数组被称为对象数组,也就是说,对象数组是指数组的每一个元素都是具有相同属性的对象,或者说,如果一个类有若干个对象,我们可以把这一系列同类的对象用一个数组来存放。如表5-1所示学生情况表,可用一个对象数组来存放。表5-1学生情况表编号姓名性别入学成绩20050701001李小平男49020050701002张华男53020050702003孙晓月女47020050702004王明明女51320050702005刘玉女46920050703006周丽萍女48720050703007李军男532……………………【例5_3】参考表5-1学生情况表,要求将每个学生作为一个对象,建立输出对象的全部数据成员的成员方法stuDisp()。代码如下://Student.javaclassStudent{privateStringname;privatecharsex;本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|(Stringcname,charcsex,doublecscore){name=cname;sex=csex;score=cscore;}voidstudPrint(){System.out.println(Name:+name+\tSex:+sex+\tS

1 / 41
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功