欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    Java数组与枚举.ppt

    • 资源ID:6509850       资源大小:237.50KB        全文页数:21页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    Java数组与枚举.ppt

    Java 基础培训,第4章 数组与枚举,4.1 一维数组-一维数组的定义,一维数组的定义格式有如下两种。方式1:;方式2:;其中:可以是Java中任意的数据类型,为用户自定义的一个合法的变量名,指明该变量是一个数组类型变量。Java在定义数组时并不为数组元素分配内存,仅为分配一个引用变量的空间。例如下面的语句:int a;String person;int b100;/错误,声明数组时不能指定其长度,4.1 一维数组-创建一维数组对象,和创建其他Java对象一样,同样使用new关键字创建一维数组对象,格式为:数组名=new 元素类型 元素个数;例如下面的语句:int array=new int100;/创建一个int型数组,存放100个int类型的数据JVM首先在堆区中为数组分配内存空间,如图4.1所示,创建了一个包含100个元素的int型数组,数组成员都是int类型,占4个字节,因此整个数组对象在堆区中占用400个字节。之后,就要给每个数组成员赋予其数据类型的默认值,int型的默认值是0。,图4.1 一维数组的内存布局,4.1 一维数组-一维数组初始化,定义数组的同时也可对数组元素进行显式初始化,有动态初始化和静态初始化。静态初始化指的是在定义数组的同时就为数组元素分配空间并赋值,它的格式如下。=,;或者=,;Java编译程序会自动根据个数算出整个数组的长度,并分配相应的空间,例如下面的语句:int Array=1,2,3,4;,4.1 一维数组-一维数组初始化,一个简单的类class Point int x,y;Point(int a,int b)x=a;y=b;,4.1 一维数组-一维数组初始化,数组成员是引用类型的也可静态初始化,如图4.2所示。Point pa=new Point(1,4),new Point(3,9),new Point(15,18);,图4.2 引用类型数组的内存布局,4.1 一维数组-一维数组初始化,动态初始化指的是数组定义与为数组分配空间和赋值的操作分开进行,例如下面的语句:int a=new int3;a0=1;a1=5;a2=9;同样,数组成员是引用类型的也可动态初始化,例如下面的语句:Point pa=new Point3;pa0=new Point(1,4);pa1=new Point(3,9);pa2=new Point(15,18);或采用匿名数组写法 Point pa=new Point(1,4),new Point(3,9),new Point(15,18);,4.2 多维数组-二维数组的定义,二维数组的定义格式如下。格式1:;格式2:;与一维数组的情形相类似,定义二维数组时不需要给出数组大小。int a;String names;int b100100;/错误,声明数组时不能指定其长度,4.2 多维数组-创建二维数组对象,创建二维数组同样使用new关键字,格式如下。数组名=new 数组元素类型 数组元素个数 数组元素个数;例如下面的语句:int a=new int2 3;/创建一个int型的二维数组,4.2 多维数组-二维数组的初始化,和一维数组一样,若没有对二维数组成员进行显式初始化,则会进行隐式初始化,会根据创建的数组类型初始化对象,内存布局如图4.4所示。,图4.4 二维数组的内存布局,4.2 多维数组-二维数组的定义,和一维数组一样,定义二维数组的同时也可对数组成员进行显式初始化,有动态初始化和静态初始化。在下面的语句中,定义String类型数组s的同时初始化数组成员,即静态初始化。String s=a,b,c,d,e,f,g,h,i;注意:无论初始化一维数组还是二维数组,都不能指定其长度。例如下面的语句是错误的:String43 s=a,b,c,d,e,f,g,h,i;二维数组的第二维的长度可以各不相同,例如下面的语句:String s=a,b,c,d,e,f,g,h,i,j,k;,4.2 多维数组-二维数组的静态初始化,二维数组成员是引用类型的,也可静态初始化。下面的代码片段内存布局如图4.5所示。Point pt=new Point(1,2),new Point(3,4),new Point(5,6),new Point(7,8),new Point(9,10),new Point(11,12);,图4.5 二维数组引用类型的内存布局,4.2 多维数组-二维数组的动态初始化,方式1:=new;例如,int arr=new int35;方式2:从高维向低维依次进行空间分配,此时分配的数组空间可以是任意的形状。(1)由于二维数组首先是一个一维数组,故先对该一维数组进行空间分配,也就是说,先对最高维进行空间分配。=new;例如,int c=new int3;(2)每一个元素又是一个一维数组,故对每一个元素再用new语句进行空间分配,格式与一维数组相同。例如下面的语句:c0=new int4;c1=new int3;c2=new int5;,4.2 多维数组-二维数组的动态初始化,(3)若最终元素是引用类型,则还需对每一个最终元素进行对象的空间分配。例如下面的语句:Point p;/定义一个二维数组的引用变量p=new Point3;/先作为一维数组,进行最高维空间的分配p0=new Point2;/每一个元素又是一个一维数组,再进行一维数组空间分配p1=new Point1;p2=new Point2;p00=new Point(1,1);p01=new Point(2,2);/最后对每一个元素进行Point对象空间的分配p10=new Point(3,3);p20=new Point(4,4);p21=new Point(5,5);,4.3 访问数组,数组中的每个元素都有一个索引,或者称为下标。数组中的第一个元素的索引为0,第二个元素的索引为1,依次类推。数组的length属性表示数组的长度,它的声明形式如下。public final int length;length属性被public和final修饰,因此在程序中可以读取数组的长度,但不能修改数组的长度。,4.4 数组实用类-复制数组,java.lang.System类提供了一个很有用的静态方法arraycopy()用来复制数组,其语法格式如下。static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)功能:从指定源数组中复制一个数组,复制从指定的位置开始,复制到目标数组的指定位置。从 src引用的源数组到dest引用的目标数组,数组组件的一个子序列被复制下来。被复制的组件的数量等于 length 参数。源数组中位置在 srcPossrcPos+length-1之间的组件被分别复制到目标数组中的destPosdestPos+length-1位置。,4.4数组实用类-数组排序与查找,使用内置的排序方法,就可以对任意基本类型数组排序,也可以对任意的对象数组进行排序,只要该对象实现了Comparable接口或具有相关联的Comparator。当然,可以对数组按指定的排序方法进行排序。如果数组已经排好序了,就可以使用Arrays.binarySearch()执行快速查找。,4.5 枚举,JDK5.0引入了一个新的关键字enum表示枚举类型。定义一个枚举类型很简单,下面是一个枚举类型的示例。public enum Season SPRING,SUMMER,AUTUMN,WINTER;上面创建了一个名为Season的枚举类型,它具有4个成员。由于枚举类型的实例是常量,因此按照命名习惯它们都用大写字母表示。为了使用enum,需要创建一个该类型的引用,将其赋值给某个实例。例如下面的语句:Season season=Season.SUMMER;,在创建一个enum的实例后,编译器会自动创建一些有用的方法。ordinal()方法用来表示某个特定enum常量的声明顺序,values()方法用来按照enum常量的声明顺序,产生由这些常量值构成的数组。例如下面的代码:for(Season season:Season.values()System.out.println(season+,ordinal+season.ordinal();输出:SPRING,ordinal 0SUMMER,ordinal 1AUTUMN,ordinal 2WINTER,ordinal 3定义枚举类型本质上就是在定义一个final类型的class,该类从java.lang.Enum类继承。这些工作由编译器来完成,所以enum像类一样可以具有自己的成员方法、数据成员、自己的构造方法、自己的初始化代码块,以及内部类。,4.5 枚举,4.6 enum的构造方法,使用enum定义枚举类型时,实质上定义出来的类继承自 java.lang.Enum 类,而每个枚举的成员其实就是定义的枚举类型的一个实例。在定义一个枚举类型时,像定义类一样,可以定义枚举类型的构造方法,这样在定义枚举类型的成员变量时,利用构造方法进行初始化。在定义枚举类型时,必须将枚举常量定义在最前面,并以分号“;”与其他成员隔开。若enum是public类型,且在类外部定义,则文件名必须与enum名字相同,且文件中不能再定义其他public类型的类。,本章结束,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开