欢迎来到天天文库
浏览记录
ID:20087308
大小:394.00 KB
页数:72页
时间:2018-10-08
《第2章__java基础知识--对象数组及二维数组》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第2章对象数组及二维数组课程回顾:OO:属性+行为特性:封装+继承+多态第2章对象数组及二维数组Java基础知识变量、数据类型、判定语句、循环语句第2章对象数组及二维数组用数组存储对象对数组元素进行排序在已排序的数组中查找二维数组数组元素可以是任何类型(只要所有元素具有相同的类型)数组元素可以是基本数据类型数组元素也可以是类对象,称这样的数组为对象数组。在这种情况下,数组的每一个元素都是一个对象的引用。用数组存储对象例如,BankAccount[]accounts;或BankAccountaccounts[];定义了一个存储BankAccount类对象的数组。与C、
2、C++不同,Java在数组的定义中并不为数组元素分配内存,因此[]中不需指明数组中元素的个数,即数组长度,而且对于如上定义的数组是不能引用的,必须经过初始化才可以引用。用数组存储对象对象数组的初始化分为静态初始化和动态初始化静态初始化:在定义数组的同时对数组元素进行初始化,例如:BankAccount[]accounts={newBankAccount(“Zhang",100.00),newBankAccount(“Li",2380.00),newBankAccount(“Wang",500.00),newBankAccount(“Liu",175.56),newB
3、ankAccount(“Ma",924.02)};用数组存储对象动态初始化:使用运算符new为数组分配空间,对于基本类型的数组,其格式如下:typearrayName[]=newtype[arraySize];type[]arrayName=newtype[arraySize];对于对象数组,使用运算符new只是为数组本身分配空间,并没有对数组的元素进行初始化。即数组元素都为空,如图。数组元素未初始化的对象数组用数组存储对象此时不能访问数组的任何元素,必须对数组元素进行初始化后,才能访问。因此,对于对象数组,需要经过两步空间分配。首先给数组分配空间:typearra
4、yName[]=newtype[arraySize];然后给每一个数组元素分配空间:arrayName[0]=newtype(paramList);…arrayName[arraySize-1]=newtype(paramList);用数组存储对象例如://定义一个String类型的数组StringstringArrar[];//给数组stringArray分配3个引用空间,每个引用值为null。stringArray=newString[3];//下面给数组元素分配空间stringArray[0]=newString(“how”);stringArray[1]=n
5、ewString(“are”);stringArray[2]=newString(“you”);用数组存储对象当给数组元素分配了内存空间后,就可以引用了。数组元素的引用方式为:arrayName[index]index为数组下标,下标从0开始,一直到数组长度减1。下标可以是整型常数或表达式。Java对数组元素要进行越界检查以保证安全性。同时,对于每个数组都有一个属性length指明它的长度(这里即是数组元素的个数)。例如,stringArray.length指明数组stringArray的长度。用数组存储对象对象数组应用举例使用数组对一个班的学生信息及考试成绩进行存
6、储,学生信息包括学号、姓名、三门课(英语、数学、计算机)的成绩及总成绩。用数组存储对象首先定义学生类Student:属性包括:学号(id),姓名(name),英语成绩(eng),数学成绩(math),计算机成绩(comp),总成绩(sum)。方法包括:构造方法,get方法,set方法,toString方法,equals方法,compare方法(比较两个学生的总成绩,结果分大于,小于,等于),sum方法(计算总成绩)。为了能够将Student类对象直接存储,应使其加入串行化协议。代码如下:用数组存储对象//Student.javaimportjava.io.*;pub
7、licclassStudentimplementsSerializable{privateStringid;//学号privateStringname;//姓名privateinteng;//英语成绩privateintmath;//数学成绩privateintcomp;//计算机成绩privateintsum;//总成绩用数组存储对象//构造方法publicStudent(Stringid,Stringname,inteng,intmath,intcomp){this.id=id;this.name=name;this.eng=eng;this.math=ma
此文档下载收益归作者所有