二章节jva语言基础

上传人:夏** 文档编号:591650968 上传时间:2024-09-18 格式:PPT 页数:86 大小:643.52KB
返回 下载 相关 举报
二章节jva语言基础_第1页
第1页 / 共86页
二章节jva语言基础_第2页
第2页 / 共86页
二章节jva语言基础_第3页
第3页 / 共86页
二章节jva语言基础_第4页
第4页 / 共86页
二章节jva语言基础_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《二章节jva语言基础》由会员分享,可在线阅读,更多相关《二章节jva语言基础(86页珍藏版)》请在金锄头文库上搜索。

1、第二章第二章 java 语言基础语言基础l java语言的词法语言的词法l 数据类型数据类型l 变量变量l 操作符与表达式操作符与表达式l 流程控制语句流程控制语句l 数组与字符串数组与字符串1 java语言的词法语言的词法1.1.空格与分号空格与分号 2.2.注释注释 3.3.标识符标识符 4.4.关键字关键字 第二章第二章 java 语言基础语言基础2 java语言的词法语言的词法1.1. 空格与分号空格与分号 JavaJava是一种自由格式的语言,可以用任意个空格、是一种自由格式的语言,可以用任意个空格、制表符、换行符隔开每个词。如:制表符、换行符隔开每个词。如:System.Syste

2、m.out.out.printlnprintln(Counted+count+chars.);(Counted+count+chars.);分号作为语句的结束符,每个语句必须以分号作分号作为语句的结束符,每个语句必须以分号作为结束符。为结束符。第二章第二章 java 语言基础语言基础3 java语言的词法语言的词法2. 2. 注释注释三种注释格式:三种注释格式:l/实现单行注释实现单行注释l/*/*这是这是*一段注释,一段注释,*它跨越了多个行它跨越了多个行*/*/l/*/*JDKJDK的的javadocjavadoc工具用这种注释信息能工具用这种注释信息能自动从程序中抽出类的公共接口形成文档

3、。自动从程序中抽出类的公共接口形成文档。*/*/第二章第二章 java 语言基础语言基础4 java语言的词法语言的词法3 3.标识符标识符l定义定义:标识符用来作为类、方法和变量的名字l语法规则:语法规则:以字母、下划线(_)、美元符号($)开始,后跟这三种符号或数字。例如:identifier_sys_var1$changeuserNameuser_namel必须要区分大小写l没有长度限制第二章第二章 java 语言基础语言基础5 java语言的词法语言的词法3 3.标识符续标识符续l约定约定:类名类名,接口名接口名 :首字母应该大写。classThisIsAClassNameinterf

4、aceAccount字段、方法以及对象字段、方法以及对象:首字母应小写。thisIsMethodOrFieldName()对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如:常量:常量:全部用大写字母表示。如:GREENHEAD_COUNTJavaJava包包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此。如:packagejava.awt.event第二章第二章 java 语言基础语言基础6第二章第二章 java 语言基础语言基础java语言的词法语言的词法4 4.关键字关键字abstractbooleanbreakbytecas

5、ecatchcharclassconst*continuedefaultdodoubleelseextendsfinalfinallyfloatforgoto*ifimplements importinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttryvoidvolatilewhile关键字是由系统定义的一些词,它们在程序里代表特关键字是由系统定义的一些词,它们在程序里代表特定的含

6、义。定义表示符时要避免使用这些词定的含义。定义表示符时要避免使用这些词。7 数据类型数据类型l基本数据类型(基本数据类型(primitiveprimitivetype:type:)l引用数据类型引用数据类型(referencereferencetypetype)第二章第二章 java 语言基础语言基础8l字符型:字符型:charcharl整型:整型:bytebyte,shortshort, , intint ,and,andlonglongl浮点型:浮点型:doubledouble, floatfloatl布尔型:布尔型:booleanboolean( (取值取值 truetrue或或 fal

7、se)false)第二章第二章 java 语言基础语言基础 数据类型数据类型基本数据类型(基本数据类型(primitiveprimitivetype:type:)9 数据类型数据类型字符型数据字符型数据第二章第二章 java 语言基础语言基础1.字符型常量:字符型常量:l字符常量是用单引号括起来的一个字符,如字符常量是用单引号括起来的一个字符,如a,Al转义字符,以反斜杠字符,以反斜杠( )开开头,将其后的字符,将其后的字符转变为另外的含另外的含义10数据类型数据类型字符型数据字符型数据转义字符转义字符描述描述ddd1到到3位位8进制数所表示的字符制数所表示的字符(ddd)uxxxx1到到4位

8、位16进制数所表示的字符制数所表示的字符(xxxx)单引号字符单引号字符双引号字符双引号字符反斜杠字符反斜杠字符r回车回车n换行换行f走纸换页走纸换页t横向跳格横向跳格b退格退格第二章第二章 java 语言基础语言基础11 数据类型数据类型字符型数据字符型数据第二章第二章 java 语言基础语言基础2. 字符型变量(字符型变量(char):l它在机器中占它在机器中占16位,其范围为位,其范围为065535l字符型变量的定义如:字符型变量的定义如:char c=a; l可以把它当作整数数据来操作。例如:可以把它当作整数数据来操作。例如:int three=3;char one=1;char fo

9、ur=(char)(three+one); /four=412 数据类型数据类型字符型数据字符型数据第二章第二章 java 语言基础语言基础3. 字符串型常量:字符串型常量:l字符串常量是作为字符串常量是作为String类的一个对象来处理的,而类的一个对象来处理的,而不是一个基本数据不是一个基本数据.l字符串常量是用双引号字符串常量是用双引号(“”)括起来的一串字符,如括起来的一串字符,如“This is a string.n”。l字符串连接使用字符串连接使用 + 操作符操作符 int count=7例如:例如: Counted+count+chars.Counted+count+chars.

10、 13 数据类型数据类型字符型数据字符型数据第二章第二章 java 语言基础语言基础3. 字符串型常量:字符串型常量:l字符串连接使用字符串连接使用 + 操作符操作符 int x = 0, y = 1, z = 2;String sString = x, y, z ;System.out.println(sString + x + y + z);System.out.println(x + sString);14 数据类型数据类型整型数据整型数据第二章第二章 java 语言基础语言基础1.整型常量:整型常量:l 三种表示形式:三种表示形式:十十进制整数,如制整数,如123,456,0 八八进制

11、整数,以制整数,以0开开头,如,如0123表示十表示十进制数制数83,011表示十表示十进制数制数9。 十六十六进制整数,以制整数,以0x或或0X开开头,如,如0x123表示十表示十进制数制数291l默认整型常量为默认整型常量为 int 类型。在机器中占类型。在机器中占32位位l对于对于long型值,则要在数字后加型值,则要在数字后加L或或l,如如123L表示一表示一个长整数。在机器中占个长整数。在机器中占64位。位。15第二章第二章 java 语言基础语言基础2. 2. 整型变量整型变量整型变量的类型有整型变量的类型有byte, short, int, long四种四种整型长度整型长度数据类

12、型数据类型取值范围取值范围88bitsbitsbytebyte-2-27 7 to2to27 7 -1-116bits16bitsshortshort-2-21515 to2to21515 -1-132bits32bitsintint-2-23131 to2to23131 -1-164bits64bitslonglong-2-26363 to2to26363 -1-1 数据类型数据类型整型数据整型数据16第二章第二章 java 语言基础语言基础3. 3. 整型变量的定义整型变量的定义例如:例如:byte b; /指定指定变量量b为byte型型short s; /指定指定变量量s为short型型

13、int i; /指定指定变量量i为int型型long l; /指定指定变量量l为long型型 数据类型数据类型整型数据整型数据17 数据类型数据类型浮点型数据浮点型数据第二章第二章 java 语言基础语言基础1. 1. 实型常量实型常量Java的实常数有两种表示形式:l 十十进制数形式制数形式: 由数字和小数点组成,且必须有小数点,如0.123, .123, 123.,123.0科学科学计数法形式数法形式: 如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。l实常数默认类型默认类型为double型,在机器中占64位,l对于float型的值,则要在数字后加f或F

14、,如12.3F,它在机器中占32位,且表示精度较低。18 数据类型数据类型浮点型数据浮点型数据第二章第二章 java 语言基础语言基础2. 2. 实型变量实型变量实型变量的类型有float和double两种:数据类型所占位数float32double643.3.实型变量定义实型变量定义例如:例如:float f; /指定变量f为float型double d; /指定变量d为double型19 数据类型数据类型举举 例例第二章第二章 java 语言基础语言基础请看Literals.java 20 数据类型数据类型引用数据类型(引用数据类型(referencereferencetypetype)第

15、二章第二章 java 语言基础语言基础l数组Array ,类 classe,接口interface属于reference类型。reference类型的变量是所引用的对象的内存地址。l例子:21 数据类型数据类型引用数据类型(引用数据类型(referencereferencetypetype)第二章第二章 java 语言基础语言基础publicclassMyDateprivateintday=1;privateintmonth=1;privateintyear=2000;publicMyDate(intday,intmonth,intyear).publicvoidprint().publicc

16、lassTestMyDatepublicstaticvoidmain(Stringargs)MyDateMyDate my_birthmy_birth=new=newMyDateMyDate(22,7,(22,7,1964);1964);22 数据类型数据类型引用数据类型(引用数据类型(referencereferencetypetype)第二章第二章 java 语言基础语言基础l创建一个类对象:MyDatemy_birthmy_birth=newMyDate(22,7,1964);23 数据类型数据类型引用数据类型(引用数据类型(referencereferencetypetype)第二章第

17、二章 java 语言基础语言基础l两个引用变量的赋值赋值将会产生如下结果:intx=7;inty=x;MyDates=newMyDate(22,7,1964);MyDatet=s;t=newMyDate(22,12,1964);两个变量指向一个对象:24 数据类型数据类型引用数据类型(引用数据类型(referencereferencetypetype)第二章第二章 java 语言基础语言基础l当t变量赋予一个新值时:t=newMyDate(22,12,1964);两个变量分别指向两个对象:25 数据类型数据类型引用数据类型(引用数据类型(referencereferencetypetype)第

18、二章第二章 java 语言基础语言基础见例题:Assignment.java结果:1:n1.i:9,n2.i:472:n1.i:47,n2.i:473:n1.i:27,n2.i:27将一个对象传递到方法内部时,也会产生此现象见例题:PassObject.java输出结果如下:1:x.c:a2:x.c:z26 变变 量量第二章第二章 java 语言基础语言基础1. 1. 变量的定义变量的定义变量名是一个合法的标识符变量名是一个合法的标识符l它是字母、数字、下划线或美元符它是字母、数字、下划线或美元符“”的序列的序列l变量名不能以数字开头变量名不能以数字开头 l不能为保留字不能为保留字 l变量名区

19、分大小写变量名区分大小写 l变量名应具有一定的含义,以增加程序的可读性变量名应具有一定的含义,以增加程序的可读性 27变变 量量第二章第二章 java 语言基础语言基础2. 2. 变量的作用域变量的作用域变量的作用域指明可访问该变量的一段代码变量的作用域指明可访问该变量的一段代码按作用域来分,变量可以有下面几种:按作用域来分,变量可以有下面几种:l局部变量局部变量 Local variable l类变量类变量 Member variable l方法参数方法参数 Method parameter l例外处理参数例外处理参数 Exception-handler parameter 28 2. 变量

20、的作用域第二章第二章 java 语言基础语言基础1. 1. 变量的作用域变量的作用域 2. 变量的作用域变量的作用域29 变变 量量第二章第二章 java 语言基础语言基础3. 3. 变量的声明变量的声明格式:格式:type identifier=value,identifier=value; 例如:例如: int a, b, c; double d1, d2=0.0; 方法参数和例外处理参数的变量值是由调用者给出。方法参数和例外处理参数的变量值是由调用者给出。30 变变 量量第二章第二章 java 语言基础语言基础4. 4. 变量的默认初始化值变量的默认初始化值31 运算符和表达式运算符和表

21、达式第二章第二章 java 语言基础语言基础运算符指明对操作数所进行的运算。按功能分类:按功能分类:l算术运算符(+,-,*,/,%,+,-)l关系运算符(,=,&,|,)l赋值运算符(=,及其扩展赋值运算符如+=)l条件运算符( ?:)l其它 (包括分量运算符 ,下标运算符 ,实例运算符 instanceof,内存分配运算符new,强制类型转换运算符 (类型),方法调用运算符 () 等)32 运算符和表达式运算符和表达式算术运算符算术运算符第二章第二章 java 语言基础语言基础说明说明:lJava对加运算符进行了扩展,使它能够进行字符串的连接,如“abc”+“de”,得到串“abcde”l

22、+i , -i 在使用i前,先使i的值加1 i+ , i- 在使用i后,先使i的值加1 33 运算符和表达式运算符和表达式算术运算符算术运算符第二章第二章 java 语言基础语言基础说明说明:见例题:AutoInc.java程序的输出如下:i:1+i:2i+:2i:3-i:2i-:2i:134 运算符和表达式运算符和表达式关系运算符关系运算符第二章第二章 java 语言基础语言基础说明说明:lJava中,任何数据类型的数据(包括基本类型和组合类型)都可以通过=或!=来比较是否相等(这与C、C+不同)。l关系运算的结果返回true或false,而不是C、C+中的1或0。l等于和不等于适用于所有内

23、建的数据类型,但其他比较不适用于boolean类型。 35 运算符和表达式运算符和表达式关系运算符关系运算符第二章第二章 java 语言基础语言基础说明说明:l检查对象是否相等public class Equivalence public static void main(String args) Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.println(n1 = n2); System.out.println(n1 != n2); 结果:false true36 运算符和表达式运算符和表达式关

24、系运算符关系运算符第二章第二章 java 语言基础语言基础说明说明:l若想对比两个对象的实际内容是否相同,使用方法equals()。例如:public class EqualsMethod public static void main(String args) Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.println(n1.equals(n2); 37 运算符和表达式运算符和表达式关系运算符关系运算符第二章第二章 java 语言基础语言基础说明说明:l假设您创建了自己的类,结果如何?例如:cl

25、ass Value int i;public class EqualsMethod2 public static void main(String args) Value v1 = new Value(); Value v2 = new Value(); v1.i = v2.i = 100; System.out.println(v1.equals(v2); 结果:false38运算符和表达式运算符和表达式布尔逻辑运算符布尔逻辑运算符第二章第二章 java 语言基础语言基础逻辑运算符AND(&)、OR(|)以及NOT(!)能生成一个布尔值(true或false)说明:说明: 只可将AND,OR

26、或NOT应用于布尔值。不可将一个非布尔值当作布尔值在逻辑表达式中使用 例如:以下是非法的。int i=1,j=2;i & ji | j!i以下是合法的:(i10)&(j10)(i10)&(j10)39运算符和表达式运算符和表达式布尔逻辑运算符布尔逻辑运算符第二章第二章 java 语言基础语言基础说明:说明: 对浮点数字的比较是非常严格的。 短路运算:1、a & b & c2、a | b | c3 、x=y=1 a=5, b=3,c=2,d=1 (x=ab) &(y=cop1 op2op1右移op2位op1 op1 op2op1无符号右移op2位运算符和表达式运算符和表达式位运算符位运算符第二章

27、第二章 java 语言基础语言基础42运算符和表达式运算符和表达式位运算符(位运算符(,&,|,&,|,)第二章第二章 java 语言基础语言基础43运算符和表达式运算符和表达式位运算符(位运算符( , : 将一个数的各二进制位全部右移若干位,移到右端的低位被舍弃,最高位则移入原来高位的值 例如 : a = 00110111,则a2=00001101b = 11010011,则 b2 = 11110100l右移一位相当于除2取商例如:1281returns128/21=642564returns256/24=16-2564returns-256/24=-16第二章第二章 java 语言基础语言

28、基础44运算符和表达式运算符和表达式位运算符(位运算符( , :一个数的各二进制位无符号无符号右移若干位,与运算符相同,移出的低位被舍弃,但不同的是最高位最高位补0。 如 a = 00110111, 则 a2 = 00001101 b = 11010011, 则 b2=00110100第二章第二章 java 语言基础语言基础45运算符和表达式运算符和表达式位运算符(位运算符( ,) 说明说明:l :用来将一个数的各二进位全部左移若干位。高位左移后溢出,舍弃不起作用,右补0。 例如:a = 00001111,则a2 = 00111100。l在不产生溢出的情况下,左移一位相当于乘21281retu

29、rns128*21=256162returns16*22=64第二章第二章 java 语言基础语言基础46运算符和表达式运算符和表达式赋值运算符赋值运算符说明说明:l在赋值运算符两侧的类型不一致的情况下:Java允许将任何基本类型转换为为其他任何一种基本类型。但布尔值(bollean)要除外。如果左侧变量的数据类型的级别高,则右侧的数据被自动转化自动转化为与左侧相同的高级的数据类,然后赋给左侧变量否则,需要使用强制类型转换强制类型转换运算符 类对象不能随便进行强制类型转换第二章第二章 java 语言基础语言基础47运算符和表达式运算符和表达式赋值运算符赋值运算符说明说明:续续例如:longbi

30、gValue=99L;intsquashed=bigValue;/Wrongintsquashed=(int)bigValue;/OKintsquashed=99;/defaultintegerliteraldoublez=12.414F;/12.414Fisfloat,OKfloatz1=12.414;/12.414isdouble,illegal第二章第二章 java 语言基础语言基础48扩展赋值运算符扩展赋值运算符第二章第二章 java 语言基础语言基础运算符例子解释+=x+=ax=x+a-=x-=ax=x-a*=x*=ax=x*a/=x/=ax=x/a%=x%=ax=x%a&=x&=a

31、x=x&a|=x|=ax=x|a=x=ax=xa=x=ax=x=x=ax=xa=x=ax=x = !=&|&|?:= += -= *= /= %= =&= |= = =运算符优先级运算符优先级第二章第二章 java 语言基础语言基础低高51 流程控制语句第二章第二章 java 语言基础语言基础1分支语句:if-else, switch-case 2循环语句:for, while, do-while3例外处理语句:try-catch-finally, throw4 其他: break, continue, label:, return52流程控制语句流程控制语句 if-else 语句语句第二章第

32、二章 java 语言基础语言基础53流程控制语句流程控制语句 if-else 语句语句第二章第二章 java 语言基础语言基础例题:比较两个数的大小,并按从小到大的次序输出。public class CompareTwopublic static void main( String args )double d1=23.4;double d2=35.1;if(d1=d1)System.out.println(d2+ = +d1);elseSystem.out.println(d1+ = +d2);54流程控制语句流程控制语句 switch 语句语句第二章第二章 java 语言基础语言基础swi

33、tch语句是实现多分支选择结构的另一个语句:switch(整数选择因子) case 整数值1 : 语句; break;case 整数值2 : 语句; break;case 整数值3 : 语句; break;case 整数值4 : 语句; break;case 整数值5 : 语句; break;/.default:语句;55流程控制语句流程控制语句 switch 语句语句第二章第二章 java 语言基础语言基础说明:说明:表达式表达式expression可以返回任一整型类型的值可以返回任一整型类型的值(如整型、如整型、字符型字符型)case子句中的值必须是常量,而且所有子句中的值必须是常量,而且

34、所有case子句子句中的值应是不同的中的值应是不同的case通常与通常与break语句联用,以保证多路分支的正确语句联用,以保证多路分支的正确实现。实现。多个多个case可以公用一组执行语句可以公用一组执行语句。 case 1:case 2:case 3: cout“hello” case 1,2,3 : cout“hello” /error56流程控制语句流程控制语句 switch 语句语句第二章第二章 java 语言基础语言基础例题:根据考试成绩的等级打印出百分制分数段。public class GradeLevel public static void main( String args

35、 ) System.out.println(n* first situation *); char grade=C; /normal use switch( grade ) case A : System.out.println(grade+ is 85100);break; case B : System.out.println(grade+ is 7084);break; case C : System.out.println(grade+ is 6069);break; case D : System.out.println(grade+ is 60);break; default :

36、System.out.println(input error); 57流程控制语句流程控制语句 for循环 语句语句第二章第二章 java 语言基础语言基础格式格式for(初始表达式;布尔表达式;步进)语句说明:说明:无论初始表达式,布尔表达式,还是步进,都可以置空。可在for语句里定义多个变量,但它们必须具有同样的类型:for(inti=0,j=1;i10&j!=11;i+,j+)/*bodyofforloop*/;58流程控制语句流程控制语句 for循环 语句语句第二章第二章 java 语言基础语言基础说明:说明:Java里唯一用到逗号运算符的地方就是for循环的控制表达式。publicc

37、lassCommaOperatorpublicstaticvoidmain(Stringargs)for(inti=1,j=i+10;i5;i+,j=i*2)System.out.println(i=+i+j=+j);输出如下:输出如下:i= 1 j= 11i= 2 j= 4i= 3 j= 6i= 4 j= 859流程控制语句流程控制语句 while循环 语句语句第二章第二章 java 语言基础语言基础格式:格式:while(布尔表达式)语句例子:publicclassWhileTestpublicstaticvoidmain(Stringargs)doubler=0;while(r0.99d

38、)r=Math.random();System.out.println(r);60流程控制语句流程控制语句 do-while循环 语句语句第二章第二章 java 语言基础语言基础格式格式:do语句while(布尔表达式)例子例子: :61流程控制语句流程控制语句 其他循环控制其他循环控制语句语句第二章第二章 java 语言基础语言基础62流程控制语句流程控制语句 breakbreaklabellabel 语句语句第二章第二章 java 语言基础语言基础不带不带标号的标号的breakbreak语句语句,跳出它所在的循环语句或switch 语句,并从紧跟该循环语句或switch 语句后的第一条语句

39、处执行 带标号的break语句:对Java来说,唯一用到标签的地方是在循环语句之前。 label1: 循环语句跳出标号所指定的块,并从紧跟该块后的第一条语句处执行 63流程控制语句流程控制语句 breakbreaklabellabel 语句语句第二章第二章 java 语言基础语言基础例题:例题:64流程控制语句流程控制语句 continuecontinuelabellabel 语句语句第二章第二章 java 语言基础语言基础不带不带标号的标号的continuecontinue语句语句,用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环 带标号的带标号的

40、continuecontinue语句语句跳转到标号指明的外层循环中。65流程控制语句流程控制语句 continuecontinuelabellabel 语句语句第二章第二章 java 语言基础语言基础例题:例题:66流程控制语句流程控制语句 continuecontinuelabellabel 语句语句第二章第二章 java 语言基础语言基础例题例题1: BreakAndContinue.java 例题例题2 2: LabeledFor.java例题例题3 3:LabeledWhileLabeledWhile.java.java67练习练习(1) 写一个程序,打印出1到100间的整数。(2)

41、编写一个 for 语句的双重循环,练习break label 和continue label 语句。 (3) 创建一个switch语句,为每一种case都显示一条消息。在每个case后面都放置一个break,并对其进行测试。然后,删除break,看看会有什么情况出现。第二章第二章 java 语言基础语言基础68 数数 组组l相同的数据类型元素类型按一定的顺序排列就构成了数组l数组元素可以为:基本数据类型某一类的对象l建立java数组需要以下三个步骤:声明数组创建数组空间初始化数组元素 第二章第二章 java 语言基础语言基础69数数 组组声明数组声明数组声明数组的语法格式有两种如下:数组元素类

42、型 数组名;数组元素类型数组名; 例如:chars; 或: chars;Pointp;Pointp;第二章第二章 java 语言基础语言基础70数数 组组创建数组空间创建数组空间说明:说明:l为数组开辟内存空间,在创建数组空间时必须为它指明数组的长度。l一个数组是一个对象,所以用new来创建数组 语法格式为:数组名 = new 数组元素类型数组元素的个数;例如:int MyIntArray;MyIntArray =new int10;第二章第二章 java 语言基础语言基础 Point MyIntArray; MyIntArray =new Point10;71数数 组组创建数组空间创建数组空

43、间说明:说明:l也可以在创建数组空间的时候,同时将初值给出来,例如:int MyIntArray=1,2,3,4,5,6,7,8,9;存储空间的分配等价于使用newl基本数据类型的数组元素会自动初始化成“空”值(对于数值,空值就是零;对于char,它是null;而对于boolean,它却是false)。l数组名是对数组对象的一个引用。第二章第二章 java 语言基础语言基础72数数 组组创建数组空间创建数组空间第二章第二章 java 语言基础语言基础创建一个基本数据类型元素创建一个基本数据类型元素的数组:的数组:publiccharpubliccharcreateArraycreateArra

44、y()()chars;chars;s=newchar26;s=newchar26;for(for(intinti=0;i26;i=0;i26;i+)i+)si=(char)si=(char)( (AA+i);+i);returns;returns;73数数 组组创建数组空间创建数组空间第二章第二章 java 语言基础语言基础创建一个对象数组:创建一个对象数组:publicPointpublicPoint createArraycreateArray()()Pointp;Pointp;p=newPoint10;p=newPoint10;for(for(intinti=0;i10;i=0;i10;

45、i+)i+)pi=newPoint(pi=newPoint(i,i+1);i,i+1);returnp;returnp;74数数 组组创建数组空间创建数组空间第二章第二章 java 语言基础语言基础说明:说明:可以动态创建数组空间:可以动态创建数组空间:intinta;a;a=a=newnew intint pRandpRand(20);(20); 见见例题:例题:ArrayNewArrayNew.java.java75数数 组组数组边界数组边界第二章第二章 java 语言基础语言基础所有数组的上标从所有数组的上标从0 0开始开始intlist=newint10;for(inti=0;ilis

46、t.length;i+)System.out.println(listi);76数数 组组初始化数组初始化数组有两种方式:1 先定义数组,分配空间,然后直接对每个元素进行赋值。2 在定义数组的同时进行初始化。这种做法大多数时候都很有用,但限制也是最大的,因为数组的大小是在编译期间决定的。例如:对基本数据类型intnums;nums=newint3;nums0=1;nums1=2;nums2=3;第二章第二章 java 语言基础语言基础intnums=1,2,3;77数数 组组初始化数组初始化数组例如:对非基本数据类型MyDatedates;dates=newMyDate3;dates0=new

47、MyDate(22,7,1964);dates1=newMyDate(1,1,2000);dates2=newMyDate(22,12,1964);或:第二章第二章 java 语言基础语言基础MyDatedates=newMyDate(22,7,1964),newMyDate(1,1,2000),newMyDate(22,12,1964);78数数 组组初始化数组初始化数组第二章第二章 java 语言基础语言基础public class ArrayInit public static void main(String args) Integer a = new Integer(1), new

48、Integer(2), new Integer(3), ; / 第二种方式第二种方式 Integer b = new Integer new Integer(1), new Integer(2), new Integer(3), ; 79数数 组组初始化数组初始化数组第二章第二章 java 语言基础语言基础对非基本数据类型的第二种初始化,可以带来更大的灵活性。例如:publicclassVarArgsstaticvoidf(Objectx)for(inti=0;ix.length;i+)System.out.println(xi);publicstaticvoidmain(Stringargs

49、)f(newObjectnewInteger(47),newFloat(3.14),newDouble(11.11);f(newObjectone,two,three);80数数 组组多维数组多维数组第二章第二章 java 语言基础语言基础1. 定义方式:定义方式:type 维数arrayName;例如:int intArray;inta2;2. 分配内存空间分配内存空间:有两种方法:直接为每一维分配空间, 如int a = new int23; int twoDim = new int 4; /error分别为每一维分配空间 如: int a = new int2 ;a0 = new int

50、3;a1 = new int3;可以为每行设置为空间大小不同的数组。如: a0 = new int3;a1 = new int5; 81数数 组组多维数组多维数组第二章第二章 java 语言基础语言基础说明:Java中多维数组被看作数组的数组。例如二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。3. 初始化初始化 有两种方式:先定义数组,分配空间,然后直接对每个元素进行赋值在定义数组的同时进行初始化。如:inta=2,3,1,5,3,4;见例题:见例题:MultiDimArrayMultiDimArray.java.java82数数 组组改变数组改变数组第二章第二章 java 语言基

51、础语言基础l不能改变一个已定义的数组的大小l可以改变引用变量所指向的数组intmyArray=newint6;myArray=newint10;83数数 组组数组的拷贝数组的拷贝第二章第二章 java 语言基础语言基础使用System.arraycopy()方法:/originalarrayintelements=1,2,3,4,5,6;/newlargerarrayinthold=10,9,8,7,6,5,4,3,2,1;/copyalloftheelementsarraytothehold/array,startingwiththe0thindexSystem.System.arraycopyarraycopy(elements,0,hold,0,elements.length);84见例题:Arrays.java数数 组组数组的拷贝数组的拷贝第二章第二章 java 语言基础语言基础851. 创建两个一维整型数组,并初始化,并实现值和地址的拷贝。2. 用多种方法创建几个二维数组:l定义固定大小的二维数组l定义每行不同列数的数组l定义时同时初始化。l先定义后初始化数数 组组习习 题题第二章第二章 java 语言基础语言基础86

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

最新文档


当前位置:首页 > 办公文档 > 工作计划

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