java语言基础数组向量字符串课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《java语言基础数组向量字符串课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 语言 基础 数组 向量 字符串 课件
- 资源描述:
-
1、NCEPU第二章第二章Java 语言基础语言基础2022年年8月月8日星期一日星期一NCEPUContents1.数组数组 3.向量向量 2.字符串字符串NCEPU复合数据类型复合数据类型 2022年年8月月8日星期一日星期一NCEPU复合数据类型复合数据类型早期的程序设计语言把变量看作是孤立的东西,例如我们往早期的程序设计语言把变量看作是孤立的东西,例如我们往往用三个整数变量往用三个整数变量day,month和和year来表示日期来表示日期 int day,month,year;虽然这种方法容易理解,但是有两个明显的缺点:虽然这种方法容易理解,但是有两个明显的缺点:2022年年8月月8日星期
2、一日星期一NCEPU复合数据类型复合数据类型v 程序若要处理多个日期,则需要更多的说明,例如要保存两程序若要处理多个日期,则需要更多的说明,例如要保存两个生日,则需要:个生日,则需要:birthday1,birthmonth1,birthyear1 birthday2,birthmonth2,birthyear2该程序因使用了多个变量而变得混乱,并且占用了过多的命该程序因使用了多个变量而变得混乱,并且占用了过多的命名空间。名空间。v 每个变量都是独立的,而其实它们应当是某一个日期的组成每个变量都是独立的,而其实它们应当是某一个日期的组成部分,这样定义无法体现整体的联系。部分,这样定义无法体现整
3、体的联系。2022年年8月月8日星期一日星期一NCEPU复合数据类型复合数据类型v复合数据类型复合数据类型由程序员在源程序中定义,把描述整由程序员在源程序中定义,把描述整个对象各个不同方面的变量放到一个定义中,建立个对象各个不同方面的变量放到一个定义中,建立该模型。一旦有了定义,就可以使用该类型名来创该模型。一旦有了定义,就可以使用该类型名来创建变量。建变量。vJava是面向对象的程序设计语言,它为用户提供的是面向对象的程序设计语言,它为用户提供的复合数据类型即复合数据类型即类类 和和 接口接口。2022年年8月月8日星期一日星期一NCEPU复合数据类型复合数据类型v引用类型引用类型(refe
4、rence type即复合类型即复合类型)n引用型变量的值与基本类型(简单类型引用型变量的值与基本类型(简单类型)变量不同,变量不同,变量值是指向内存空间的变量值是指向内存空间的引用引用(地址地址)。所指向的内)。所指向的内存中保存着变量所表示的一个值或一组值。存中保存着变量所表示的一个值或一组值。引用在其他语言中称为指针或内存地址。引用在其他语言中称为指针或内存地址。Java不支不支持显式使用内存地址,而必须通过变量名对某个内存持显式使用内存地址,而必须通过变量名对某个内存空间地址进行访问空间地址进行访问。2022年年8月月8日星期一日星期一NCEPU两种类型变量的不同处理两种类型变量的不同
5、处理int a;a=12;MyDate today;today.day=14;引用型变量在声明后必须通过引用型变量在声明后必须通过开辟数据空间开辟数据空间,才才能对变量所指向的对象进行访问能对变量所指向的对象进行访问.MyDate today;today=new MyDate();today.day=14;2022年年8月月8日星期一日星期一NCEPU关于对象和对象的关于对象和对象的“引用引用”vString s=new String(“a String”);An object of String is created The object is initialized w/”a String
6、”A variable as handle to String is created The value of the handle variable is assign to the objectString s;sa StringNCEPU 数组和字符串数组和字符串 2022年年8月月8日星期一日星期一NCEPU第一节第一节 数组数组 v 数组概述数组概述 v 一维数组一维数组 v 二维数组二维数组2022年年8月月8日星期一日星期一NCEPU数组概述数组概述 v数组,是由数组,是由数目固定的数目固定的、相同类型的相同类型的元素组成的元素组成的有有序集合序集合,每个元素相当于一个变量。,每
7、个元素相当于一个变量。v在在Java中,数组是最简单的复合数据类型中,数组是最简单的复合数据类型2022年年8月月8日星期一日星期一NCEPU数组概述数组概述 v数组元素可以是任意类型,可以是简单类型,也可以是数组元素可以是任意类型,可以是简单类型,也可以是引用类型。引用类型。v访问数组中的某个元素,可以通过数组名加下标的形式,访问数组中的某个元素,可以通过数组名加下标的形式,例如:例如:a4。v数组数组下标的个数就是数组的维数下标的个数就是数组的维数:有一个下标就是一维有一个下标就是一维数组,有两个下标就是二维数组,依次类推。数组,有两个下标就是二维数组,依次类推。2022年年8月月8日星期
8、一日星期一NCEPU一维数组一维数组 一个一维数组实际上是一列相同类型的变量一个一维数组实际上是一列相同类型的变量 v 一维数组的声明一维数组的声明v 一维数组的创建一维数组的创建v 一维数组初始化一维数组初始化v 数组边界数组边界2022年年8月月8日星期一日星期一NCEPUa null 一维数组的声明一维数组的声明声明一维数组的格式是:声明一维数组的格式是:;或或 ;例如:例如:int a 或:或:Date d 例如:例如:int a 或:或:Date dint a 5 是不正确的是不正确的要声明成:要声明成:int a 或:或:int a 此时的数组此时的数组a中的元素个数中的元素个数没
9、有确定,系统没有创建具没有确定,系统没有创建具体的数组对象,而是声明了体的数组对象,而是声明了一个指向数组的引用一个指向数组的引用2022年年8月月8日星期一日星期一NCEPU 一维数组的创建一维数组的创建 创建一维数组的格式为:创建一维数组的格式为:=new ;Java中没有静态定义的数组,数组的内存都是通中没有静态定义的数组,数组的内存都是通过过new动态分配的。动态分配的。例如:例如:a=new int 5;此时系统创建了具体的数此时系统创建了具体的数组对象,为每个数组元素组对象,为每个数组元素分配了具体的内存单元,分配了具体的内存单元,并进行了默认的初始化并进行了默认的初始化0 x03
10、456789a0a00a10a20a30a4a =new int 5;2022年年8月月8日星期一日星期一NCEPU一维数组的创建一维数组的创建数组的声明和创建可以同时进行:数组的声明和创建可以同时进行:=new ;或或 =new ;例如例如:int a =new int 5;或或:int a=new int 5;2022年年8月月8日星期一日星期一NCEPUpublic class Test public static void main(String args)int s;s=new int 5;for(int i=0;i5;i+)si=2*i+1 一维数组一维数组2022年年8月月8日星
11、期一日星期一NCEPU一维数组一维数组public class Test public static void main(String args)int s;s=new int 5;for(int i=0;i5;i+)si=2*i+1 2022年年8月月8日星期一日星期一NCEPU一维数组一维数组public class Test public static void main(String args)int s;s=new int 5;for(int i=0;i5;i+)si=2*i+1 2022年年8月月8日星期一日星期一NCEPU一维数组一维数组public class Test pub
12、lic static void main(String args)int s;s=new int 5;for(int i=0;i5;i+)si=2*i+1 2022年年8月月8日星期一日星期一NCEPU一维数组的创建一维数组的创建一旦为数组分配了存储空间,程序中就不能改变数一旦为数组分配了存储空间,程序中就不能改变数组的长度,但是可以再次使用组的长度,但是可以再次使用new生成新的数组对生成新的数组对象,分配新的存储空间。象,分配新的存储空间。例如:例如:int a =new int5;a=new int 6;0 x03456789a0a00a10a20a30a40 x07654321a0a0
13、0a10a20a30a40a5数组创建后就不能改变其大小,但是可以使用相同的引用变量指数组创建后就不能改变其大小,但是可以使用相同的引用变量指向一个全新的数组。本例中,第一个数组实际上丢失了,除非还向一个全新的数组。本例中,第一个数组实际上丢失了,除非还有其他引用指向它有其他引用指向它2022年年8月月8日星期一日星期一NCEPU 注意:注意:元素为引用类型的数组中的每一个元素都需元素为引用类型的数组中的每一个元素都需要实例化。要实例化。设已定义了设已定义了Date类类包括三个成员变量:包括三个成员变量:year,month,day一维数组的创建一维数组的创建当创建的数组元素是一个类的对象的时
14、候,这些对当创建的数组元素是一个类的对象的时候,这些对象必须要单独创建。象必须要单独创建。Date d ;/Date是一个类是一个类d=new Date 5;/初始化,用初始化,用new为数组分配空间为数组分配空间d 1=new Date();nulld 0 x01234567dnulld0nulld1nulld2nulld3nulld4 0 x01234567dnulld00 x02345678 d1nulld2nulld3nulld40d1.year0d1.month0d1.day2022年年8月月8日星期一日星期一NCEPU一维数组的初始化一维数组的初始化当创建一个数组对象时,每个数组元
15、素都会被自动当创建一个数组对象时,每个数组元素都会被自动初始化。初始化。int a =new int 5;0 x01234567a0a00a10a20a30a4char c =new char 5;Date d =new Date 5;0 x03456789dnulld0nulld1nulld2nulld3nulld4引用为引用为null,表示不指,表示不指向任何存储单元向任何存储单元0 x02345678cnullc0nullc1nullc2nullc3nullc4字符字符 u0000(null)2022年年8月月8日星期一日星期一NCEPU一维数组的初始化一维数组的初始化 可以在声明数组的
16、同时,为数组元素赋初值。可以在声明数组的同时,为数组元素赋初值。int a =1,2,3,4,5;0 x01234567a1a02a13a24a35a4静态初始化静态初始化相当于:相当于:int a =new int 5;a 0=1;a 1=2;a 2=3;a 3=4;a 4=5;注意:注意:静态初始化必须在声明数组时进行,而不能写静态初始化必须在声明数组时进行,而不能写成如下形式:成如下形式:int a ;a=1,2,3,4,5或或 int a =new int 5;a=1,2,3,4,52022年年8月月8日星期一日星期一NCEPU一维数组的初始化一维数组的初始化 可以在声明数组的同时,为
17、数组元素赋初值。可以在声明数组的同时,为数组元素赋初值。Date days=new Date(17,3,2019),new Date(17,3,2019),new Date(17,3,2019);静态初始化静态初始化2022年年8月月8日星期一日星期一NCEPU当用当用new创建了一个对象时,系统为对象中的变量进行了创建了一个对象时,系统为对象中的变量进行了初始化,即不但为变量分配了相应的存储单元,还设置了初始化,即不但为变量分配了相应的存储单元,还设置了变量所属类型的相应初值,这样就避免发生变异错误。变量所属类型的相应初值,这样就避免发生变异错误。类型类型初值初值类型类型初值初值类型类型 初
18、值初值整型整型0booleanfalsefloat0.0f引用类型引用类型nullcharu0000double0.0复合数据类型(引用类型):复合数据类型(引用类型):声明时并未创建具体对象,声明时并未创建具体对象,而是声明了一个指向复合数据类型的引用,引用类型都而是声明了一个指向复合数据类型的引用,引用类型都需要用需要用new来初始化来初始化一维数组的初始化一维数组的初始化2022年年8月月8日星期一日星期一NCEPU一维数组的初始化一维数组的初始化public class Test public static void main(String args)int a=new int5;Da
19、te days=new Date3;System.out.println(a3);System.out.println(days2);class Date int year,month,day;Date(int y,int m,int d)year=y;month=m;day=d;0null2022年年8月月8日星期一日星期一NCEPU一维数组一维数组2022年年8月月8日星期一日星期一NCEPU一维数组一维数组2022年年8月月8日星期一日星期一NCEPU一维数组一维数组2022年年8月月8日星期一日星期一NCEPU数组边界数组边界v 数组类中有唯一的一个成员变量:数组类中有唯一的一个成员变
20、量:length,用来表示数组,用来表示数组的长度,即数组元素的的长度,即数组元素的个数个数。v 在在Java中,数组的下标从中,数组的下标从0开始,到开始,到length-1结束,即数结束,即数组组a的的第一个元素是第一个元素是a0,最后一个元素是,最后一个元素是alength-1。v 另外,与另外,与C、C+中不同,中不同,Java对数组元素要进行越界检对数组元素要进行越界检查以保证安全性。查以保证安全性。2022年年8月月8日星期一日星期一NCEPU数组边界数组边界v使用使用new创建数组对象时,自动给创建数组对象时,自动给length赋值,数赋值,数组一旦创建完毕,组一旦创建完毕,le
21、ngth就确定下来,除非重新使就确定下来,除非重新使用用new创建新的数组对象。创建新的数组对象。v程序在运行过程中会对程序在运行过程中会对length进行检查,若发生越进行检查,若发生越界访问,则会抛出一个异常。界访问,则会抛出一个异常。2022年年8月月8日星期一日星期一NCEPU数组边界数组边界v例例 求一组数中的最大值和最小值。求一组数中的最大值和最小值。在本例中,使用一维数组来存放在本例中,使用一维数组来存放Math.random()方法产生的一组方法产生的一组099之间的随机数。之间的随机数。Math.random()方法:方法:public static double rando
22、m()Math类属于类属于java.lang包,在包,在程序中直接使用即可。程序中直接使用即可。该方法返回一个该方法返回一个0.01.0之间的小数之间的小数 想得到一个想得到一个099之间的数,可以使用:之间的数,可以使用:int num=(int)(100*Math.random();2022年年8月月8日星期一日星期一NCEPUclass ArrayMax public static void main(String args)final int SIZE=10;int num =new int SIZE;int i,max,min;System.out.print(nums:);for(
23、i=0;i num.length;i+)num i=(int)(100*Math.random();System.out.print(+num i);System.out.println();为每一个为每一个num数组元素赋一个数组元素赋一个099之间之间的随机值的随机值 可能的输出为:可能的输出为:nums:15 68 19 78 22 85 32 59 75 91 2022年年8月月8日星期一日星期一NCEPUclass ArrayMax public static void main(String args)max=num 0;min =num 0;for(i=1;i max)max=n
24、um i;if(num i b)t=a;a=b;b=t;if(bc)t=b;b=c;c=t;if(ab)t=a;a=b;b=t;System.out.println(The order is+a+,+b+,+c);The order is 21,27,342022年年8月月8日星期一日星期一NCEPUclass Order public static void main(String args)int a=34,b=21,c=27,t;if(ab)t=a;a=b;b=t;if(bc)t=b;b=c;c=t;if(ab)t=a;a=b;b=t;System.out.println(a+b+c);
25、The order is 822022年年8月月8日星期一日星期一NCEPUclass Order public static void main(String args)int a=34,b=21,c=27,t;if(ab)t=a;a=b;b=t;if(bc)t=b;b=c;c=t;if(ab)t=a;a=b;b=t;System.out.println(The order is+a+b+c);The order is 2127342022年年8月月8日星期一日星期一NCEPUString类类-2String类的常用方法类的常用方法 vJava为为String类定义了许多方法,可以通过下述格
展开阅读全文