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