02-java语言基础 - 数组向量字符串 (2)

上传人:第*** 文档编号:30831797 上传时间:2018-02-01 格式:PPT 页数:136 大小:2.19MB
返回 下载 相关 举报
02-java语言基础 - 数组向量字符串 (2)_第1页
第1页 / 共136页
02-java语言基础 - 数组向量字符串 (2)_第2页
第2页 / 共136页
02-java语言基础 - 数组向量字符串 (2)_第3页
第3页 / 共136页
02-java语言基础 - 数组向量字符串 (2)_第4页
第4页 / 共136页
02-java语言基础 - 数组向量字符串 (2)_第5页
第5页 / 共136页
点击查看更多>>
资源描述

《02-java语言基础 - 数组向量字符串 (2)》由会员分享,可在线阅读,更多相关《02-java语言基础 - 数组向量字符串 (2)(136页珍藏版)》请在金锄头文库上搜索。

1、第二章Java 语言基础,NCEPU,Contents,1.数组,复合数据类型,NCEPU,复合数据类型,早期的程序设计语言把变量看作是孤立的东西,例如我们往往用三个整数变量day,month和year来表示日期 int day, month, year; 虽然这种方法容易理解,但是有两个明显的缺点:,NCEPU,复合数据类型,程序若要处理多个日期,则需要更多的说明,例如要保存两个生日,则需要: birthday1, birthmonth1, birthyear1 birthday2, birthmonth2, birthyear2该程序因使用了多个变量而变得混乱,并且占用了过多的命名空间。

2、每个变量都是独立的,而其实它们应当是某一个日期的组成部分,这样定义无法体现整体的联系。,NCEPU,复合数据类型,复合数据类型由程序员在源程序中定义,把描述整个对象各个不同方面的变量放到一个定义中,建立该模型。一旦有了定义,就可以使用该类型名来创建变量。 Java是面向对象的程序设计语言,它为用户提供的复合数据类型即类 和 接口。,NCEPU,复合数据类型,引用类型(reference type即复合类型),引用型变量的值与基本类型(简单类型)变量不同,变量值是指向内存空间的引用(地址)。所指向的内存中保存着变量所表示的一个值或一组值。,引用在其他语言中称为指针或内存地址。Java不支持显式使

3、用内存地址,而必须通过变量名对某个内存空间地址进行访问。,NCEPU,两种类型变量的不同处理,int a;a=12;,MyDate today;today.day=14;,引用型变量在声明后必须通过实例化开辟数据空间,才能对变量所指向的对象进行访问.,MyDate today;today=new MyDate ();today.day=14;,NCEPU,关于对象和对象的“引用”,String s=new String(“a String”);An object of String is createdThe object is initialized w/”a String”A variab

4、le as handle to String is createdThe value of the handle variable is assign to the object,String s;,s,a String,数组和字符串,NCEPU,第一节 数组,数组概述 一维数组 二维数组,NCEPU,数组概述,数组,是由数目固定的、相同类型的元素组成的有序集合,每个元素相当于一个变量。 在Java中,数组是最简单的复合数据类型,NCEPU,数组概述,数组元素可以是任意类型,可以是简单类型,也可以是引用类型。 访问数组中的某个元素,可以通过数组名加下标的形式,例如:a4。 数组下标的个数就是数

5、组的维数: 有一个下标就是一维数组,有两个下标就是二维数组,依次类推。,NCEPU,一维数组,一个一维数组实际上是一列相同类型的变量 一维数组的声明 一维数组的创建 一维数组初始化 数组边界,NCEPU,一维数组的声明,声明一维数组的格式是: ;或 ;,例如:int a 或:Date d ,例如:int a 或:Date d,int a 5 是不正确的,要声明成:int a 或:int a,此时的数组a中的元素个数没有确定,系统没有创建具体的数组对象,而是声明了一个指向数组的引用,NCEPU,一维数组的声明,将表示数组的跟随在数组类型之后java特有这种格式中,在数组标志”后出现的所有变量都是

6、数组类型的引用。,如:char s,m,n; /声明了三个字符数组的引用,NCEPU,所有的引用类型都需要用new来初始化,一维数组的创建,创建一维数组的格式为: = new ; Java中没有静态定义的数组,数组的内存都是通过new动态分配的。,例如: a = new int 5;,此时系统创建了具体的数组对象,为每个数组元素分配了具体的内存单元,并进行了默认的初始化,a = new int 5;,NCEPU,一维数组的创建,数组的声明和创建可以同时进行: = new ;或 = new ;,例如: int a = new int 5; 或:int a = new int 5;,NCEPU,p

7、ublic class Test public static void main(String args) int s; s=new int 5; for (int i=0;i5;i+) si=i; ,一维数组,NCEPU,一维数组,public class Test public static void main(String args) int s; s=new int 5; for (int i=0;i5;i+) si=i; ,NCEPU,一维数组,public class Test public static void main(String args) int s; s=new in

8、t 5; for (int i=0;i5;i+) si=i; ,NCEPU,一维数组,public class Test public static void main(String args) int s; s=new int 5; for (int i=0;i5;i+) si=i; ,NCEPU,一维数组的创建,一旦为数组分配了存储空间,程序中就不能改变数组的长度,但是可以再次使用new生成新的数组对象,分配新的存储空间。例如:int a = new int5;a = new int 6;,数组创建后就不能改变其大小,但是可以使用相同的引用变量指向一个全新的数组。本例中,第一个数组实际上丢

9、失了,除非还有其他引用指向它,NCEPU,注意:元素为引用类型的数组中的每一个元素都需要实例化。,设已定义了Date类包括三个成员变量:year, month, day,一维数组的创建,当创建的数组元素是一个类的对象的时候,这些对象必须要单独创建。,Date d ; /Date是一个类,d = new Date 5; /初始化,用new为数组分配空间,d 1 = new Date( );,NCEPU,一维数组的初始化,当创建一个数组对象时,每个数组元素都会被自动初始化。,int a = new int 5;,char c = new char 5;,Date d = new Date 5;,N

10、CEPU,一维数组的初始化,可以在声明数组的同时,为数组元素赋初值。,int a = 1, 2, 3, 4, 5;,静态初始化,相当于: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,5,NCEPU,一维数组的初始化,可以在声明数组的同时,为数组元素赋初值。,Date days=new Date(17,3,2010), new Date(17,3,2010), new

11、 Date(17,3,2010) ;,静态初始化,NCEPU,当用new创建了一个对象时,系统为对象中的变量进行了初始化,即不但为变量分配了相应的存储单元,还设置了变量所属类型的相应初值,这样就避免发生变异错误。,复合数据类型(引用类型):声明时并未创建具体对象,而是声明了一个指向复合数据类型的引用,引用类型都需要用new来初始化,一维数组的初始化,NCEPU,一维数组的初始化,根据输入的数据来定义数组长度,int size;size= System.in.read();int number = new intsize;,NCEPU,一维数组的初始化,public class Test pub

12、lic static void main (String args) int a =new int5; Date 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; ,0null,NCEPU,一维数组,NCEPU,一维数组,NCEPU,一维数组,NCEPU,数组边界,数组类中有唯一的一个成员变量:length,用来表示数组的长度,即数组元素的个数。

13、 在Java中,数组的下标从0开始,到length-1结束,即数组a的第一个元素是a0,最后一个元素是alength-1。 另外,与C、C+中不同,Java对数组元素要进行越界检查以保证安全性。,NCEPU,数组边界,使用new创建数组对象时,自动给length赋值,数组一旦创建完毕,length就确定下来,除非重新使用new创建新的数组对象。 程序在运行过程中会对length进行检查,若发生越界访问,则会抛出一个异常。,NCEPU,数组边界,例 求一组数中的最大值和最小值。 在本例中,使用一维数组来存放Math.random( )方法产生的一组099之间的随机数。 Math.random( )方法: public static double random( ),想得到一个099之间的数,可以使用: int num = (int) (100* Math.random( ) );,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号