版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五课,数 组,2,本课内容,一维数组的声明和初始化 数组元素的引用 二维数组的声明和使用 数组拷贝,3,数组概述,数组是多个相同类型数据的组合,实现对这些数据的统一管理 数组属引用类型,数组型数据是对象(object),数组中的每个元素相当于该对象的成员变量 数组中的元素可以是任何数据类型,包括基本类型和引用类型,4,一维数组声明,一维数组的声明方式: type var 或 type var; 例如: int a; int a1; double b; Mydate c; Java语言中声明数组时不能指定其长度(数组中元素的个数),例如: int a5; /非法,5,创建数组 (1),publ
2、ic class Test public static void main(String args) int s; s = new int10; for ( int i=0; i10; i+ ) si =2*i+1; System.out.println(si); ,Java中使用关键字new 创建数组对象 创建基本数据类型一维数组对象演示1,main,栈内存,s,堆内存,处内存状态,6,创建数组 (2),创建基本数据类型一维数组对象演示2,main,栈内存,s,0,int对象,0,0,0,0,0,0,0,0,0,堆内存,处内存状态,public class Test public stati
3、c void main(String args) int s; s = new int10; for ( int i=0; i10; i+ ) si =2*i+1; System.out.println(si); ,7,创建数组 (3),main,栈内存,s,1,int对象,3,5,7,9,11,13,15,17,19,堆内存,public class Test public static void main(String args) int s; s = new int10; for ( int i=0; i10; i+ ) si =2*i+1; System.out.println(si)
4、; ,处内存状态,创建基本数据类型一维数组对象演示3,8,创建数组 (4),创建元素为引用数据类型的数组,class MyDate private int day; private int month; private int year; public MyDate(int d, int m, int y) day = d; month = m; year = y; public void display() System.out.println(day + - + month + - + year); ,9,创建数组 (5),public class Test public static v
5、oid main(String args) MyDate m; m = new MyDate10; for ( int i=0; i10; i+ ) mi =new MyDate(i+1 , i+1, 1990+i); mi.display(); ,main,栈内存,m,堆内存,创建元素为引用数据类型的数组演示1,处内存状态,10,创建数组 (6),public class Test public static void main(String args) MyDate m; m = new MyDate10; for ( int i=0; i10; i+ ) mi =new MyDate(i
6、+1 , i+1, 1990+i); mi.display(); ,main,栈内存,m,null,MyDate对象,null,null,null,null,null,null,null,null,null,堆内存,创建元素为引用数据类型的数组演示1,处内存状态,11,创建数组 (7),Java中使用关键字new 创建数组对象,main,栈内存,m,*,MyDate对象,*,*,null,null,null,null,null,null,null,堆内存,1,1,1990,2,2,1991,3,3,1992,public class Test public static void main(S
7、tring args) MyDate m; m = new MyDate10; for ( int i=0; i10; i+ ) mi =new MyDate(i+1 , i+1, 1990+i); mi.display(); ,for循环执行三次后内存状态,12,数组初始化,动态初始化 数组定义与为数组元素分配空间并赋值的操作分开进行。,MyDate dates; dates = new MyDate3; dates0 = new MyDate(22, 7, 1964); dates1 = new MyDate(1, 1, 2000); dates2 = new MyDate(22, 12,
8、 1964);,int a; a = new int3; a0 = 3; a1 = 9; a2 = 8;,13,数组初始化,静态初始化: 在定义数组的同时就为数组元素分配空间并赋值。,int a = 3, 9, 8; MyDate dates = new MyDate(22, 7, 1964), new MyDate(1, 1, 2000), new MyDate(22, 12, 1964) ;,14,数组元素的默认初始化,数组是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化。例如: public class Test publ
9、ic static void main(String argv) int a= new int5; System.out.println(a3); ,15,数组元素的引用,定义并用运算符new为之分配空间后后,才可以引用数组中的每个元素; 数组元素的引用方式:arrayNameindex index为数组元素下标,可以是整型常量或整型表达式。如a3 , bi , c6*i; 数组元素下标从0开始;长度为n的数组合法下标取值范围: 0 n-1; 每个数组都有一个属性length指明它的长度,例如:a.length 指明数组a的长度(元素个数);,16,Ex1,编写一应用程序实现下述功能:创建一基
10、本(primitive)数据类型的数组并输出各数组元素的值。例如: char s; s = new char26; for ( int i=0; i26; i+ ) si = (char) (A + i); System.out.println(si); / System.out.println(“s” + i + “=” + si); 编写一应用程序练习数组对象的两种初始化方式,并输出各元素的值。 编写程序,练习使用数组类型对象的length属性,测试并体会数组元素的默认初始化机制;,17,多维数组 (1),二维数组举例: int a = 1,2,3,4,0,9,5,6,7;,18,多维数组
11、 (2),Java中多维数组被做为数组的数组处理 Java中多维数组的声明和初始化应按从高维到低维的顺序进行 int t = new int 4; t0 = new int5; t1 = new int5; int t1 = new int 4; /非法,19,多维数组 (3),Java中多维数组不必须是规则矩阵形式 int tt = new int4; tt0 = new int2; tt1 = new int4; tt2 = new int6; tt3 = new int8; int tt = new int45;,20,多维数组初始化,静态初始化: int intArray = 1,2,
12、2,3,3,4,5; int intArray132 = 1,2,2,3,4,5; /illegal 动态初始化 int a = new int45; int b = new int3 b0 = new int2; b1 = new int3; b2 = new int5;,21,Ex2,编写一应用程序实现下述功能:创建一基本(primitive)数据类型的二维数组并输出各数组元素的值。例如: int a = 1,2,2,3,4,5,5,6,7; for(int i=0;i3;i+) for(int j=0;jai.length;j+) System.out.println(intArray1ij); ,22,复制数组,Java.lang.System类的arraycopy()方法提供了数组元素复制功能: /源数组 int source = 1, 2, 3, 4, 5, 6 ; / 目的数组 int dest = 10, 9, 8, 7, 6, 5, 4, 3, 2,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年山西省大同市单招职业适应性考试题库含答案详解(培优b卷)
- 2026年广东水利电力职业技术学院单招职业倾向性考试题库附答案详解(达标题)
- 2026年广西国际商务职业技术学院单招职业技能考试题库带答案详解(能力提升)
- 2026年山西省太原市单招职业倾向性测试题库及答案详解(有一套)
- 2026年山西运城农业职业技术学院单招职业技能考试题库及答案详解(必刷)
- 某麻纺厂生产调度办法
- 2026年广东省江门市单招职业适应性考试题库带答案详解(综合题)
- 2026年广西国际商务职业技术学院单招职业适应性测试题库(含答案详解)
- 2026年广东省韶关市单招职业倾向性考试题库及答案详解(易错题)
- 后期部门奖惩制度
- 宾得全站仪R-422NM使用说明书
- 高效运维电网资产全生命周期管理平台建设方案
- 医院辐射培训课件
- DZ/T 0012-1991工程地质钻机
- 森林草原防火 无人机巡查技术规范 编制说明
- 职业技术学院《农产品质量检测技术》课程标准
- 《SketchUp草图大师教学》课件
- 2025年呼和浩特职业学院单招职业倾向性测试题库及参考答案
- 研究生调剂流程
- 《货币资金核算》课件
- 专题训练:全等三角形(解析版)
评论
0/150
提交评论