资源预览内容
第1页 / 共30页
第2页 / 共30页
第3页 / 共30页
第4页 / 共30页
第5页 / 共30页
第6页 / 共30页
第7页 / 共30页
第8页 / 共30页
第9页 / 共30页
第10页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第2章章 基本数据类型和数组基本数据类型和数组本章导读本章导读1 1、标识符和关键字标识符和关键字标识符和关键字标识符和关键字2 2、基本数据类型基本数据类型基本数据类型基本数据类型3 3、基本数据类型的转换基本数据类型的转换基本数据类型的转换基本数据类型的转换4 4、数据的输入与输出数据的输入与输出数据的输入与输出数据的输入与输出5 5、数组数组数组数组Java第2章基本数据类型和数组2.1 标识符和关键字标识符和关键字n n标识符标识符标识符标识符qq用来标识类名、变量名、方法名、类型名、数组名、文用来标识类名、变量名、方法名、类型名、数组名、文用来标识类名、变量名、方法名、类型名、数组名、文用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符;简单地说,标识符就件名的有效字符序列称为标识符;简单地说,标识符就件名的有效字符序列称为标识符;简单地说,标识符就件名的有效字符序列称为标识符;简单地说,标识符就是一个名字。是一个名字。是一个名字。是一个名字。qqJavaJava语言规定标识符由字母、下划线、美元符号和数语言规定标识符由字母、下划线、美元符号和数语言规定标识符由字母、下划线、美元符号和数语言规定标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字。字组成,并且第一个字符不能是数字。字组成,并且第一个字符不能是数字。字组成,并且第一个字符不能是数字。qqJavaJava语言使用语言使用语言使用语言使用UnicodeUnicode标准字符集表,标准字符集表,标准字符集表,标准字符集表,JavaJava所谓的字所谓的字所谓的字所谓的字母包括了世界上几乎所有语言的母包括了世界上几乎所有语言的母包括了世界上几乎所有语言的母包括了世界上几乎所有语言的“ “字母表字母表字母表字母表” ”。qq标识符中的字母是区分大小写的,标识符中的字母是区分大小写的,标识符中的字母是区分大小写的,标识符中的字母是区分大小写的,Beijing Beijing 和和和和 beijing beijing 是不同的标识符。是不同的标识符。是不同的标识符。是不同的标识符。Java第2章基本数据类型和数组n n关键字关键字关键字关键字( (共共共共4242个个个个) )qq是是是是JavaJava语言中已经被赋予特定意义的一些单词。语言中已经被赋予特定意义的一些单词。语言中已经被赋予特定意义的一些单词。语言中已经被赋予特定意义的一些单词。qq它们在程序上有着不同的用途。它们在程序上有着不同的用途。它们在程序上有着不同的用途。它们在程序上有着不同的用途。qq不可以把关键词作为名字来用。不可以把关键词作为名字来用。不可以把关键词作为名字来用。不可以把关键词作为名字来用。返回返回返回返回Java第2章基本数据类型和数组关键字abstractbooleanbreakbytecasecatchcharclasscontinuedodoubleelseextendsfalsefindfinallyfloatforImplem-entsimportInstanc-eofintinterface longnativenullpackageprivatepublicreturnshortstaticsuperswitchsynchro-nizedthisthrowtruetryvoidwhilenewJava第2章基本数据类型和数组2.2 基本数据类型基本数据类型n n基本数据类型也称作简单数据类型基本数据类型也称作简单数据类型基本数据类型也称作简单数据类型基本数据类型也称作简单数据类型n nJavaJava语言有语言有语言有语言有8 8种简单数据类型,这种简单数据类型,这种简单数据类型,这种简单数据类型,这8 8种数据类型习惯上可种数据类型习惯上可种数据类型习惯上可种数据类型习惯上可分为分为分为分为4 4大类型:大类型:大类型:大类型:1 1、逻辑类型:、逻辑类型:、逻辑类型:、逻辑类型:booleanboolean2 2、字符类型:、字符类型:、字符类型:、字符类型:charchar3 3、整数类型:、整数类型:、整数类型:、整数类型:bytebyte、shortshort、intint、longlong4 4、浮点类型:、浮点类型:、浮点类型:、浮点类型:floatfloat、doubledoubleJava第2章基本数据类型和数组2.2.1 逻辑类型逻辑类型n n常量:常量:常量:常量:truetrue,falsefalsen n变量的定义:变量的定义:变量的定义:变量的定义:boolean x, ok=true, flag=false;boolean x, ok=true, flag=false;qq使用关键字使用关键字使用关键字使用关键字booleanboolean来定义逻辑变量,定义时也可以赋来定义逻辑变量,定义时也可以赋来定义逻辑变量,定义时也可以赋来定义逻辑变量,定义时也可以赋给初值。给初值。给初值。给初值。Java第2章基本数据类型和数组2.2.2 整数类型整数类型n n常量:常量:常量:常量:123123,6000(6000(十进制十进制十进制十进制) ),077(077(八进制八进制八进制八进制) ),0x3ABC(0x3ABC(十六十六十六十六进制进制进制进制) )n n变量的定义:变量的定义:变量的定义:变量的定义:qqint i; int i; 内存分配给内存分配给内存分配给内存分配给4 4个字节个字节个字节个字节qqbyte b; byte b; 内存分配给内存分配给内存分配给内存分配给1 1个字节个字节个字节个字节qqshort s; short s; 内存分配给内存分配给内存分配给内存分配给2 2个字节个字节个字节个字节qqlong l; long l; 内存分配给内存分配给内存分配给内存分配给8 8个字节个字节个字节个字节Java第2章基本数据类型和数组2.2.3 字符类型字符类型n n常量:常量:常量:常量: qqJavaJava使用使用使用使用UnicodeUnicode标准字符集表,最多可以识别标准字符集表,最多可以识别标准字符集表,最多可以识别标准字符集表,最多可以识别6553665536个字符。个字符。个字符。个字符。qqUincodeUincode表中的字符就是一个字符常量,例如表中的字符就是一个字符常量,例如表中的字符就是一个字符常量,例如表中的字符就是一个字符常量,例如AA,?,99, 好好好好 , qqJavaJava还使用转意字符常量,如:还使用转意字符常量,如:还使用转意字符常量,如:还使用转意字符常量,如:n nn n 换行换行换行换行n n b b 退格退格退格退格n nt t 水平制表水平制表水平制表水平制表 n n 单引号单引号单引号单引号Java第2章基本数据类型和数组qq变量:变量:变量:变量:n nchar c=a, tom=char c=a, tom=家家家家; ;n n字符类型变量内存分配给字符类型变量内存分配给字符类型变量内存分配给字符类型变量内存分配给2 2个字节,存储的是该字符个字节,存储的是该字符个字节,存储的是该字符个字节,存储的是该字符在在在在UnicodeUnicode表中的位序。表中的位序。表中的位序。表中的位序。n ncharchar型变量的取值范围是型变量的取值范围是型变量的取值范围是型变量的取值范围是065535065535;要观察一个字;要观察一个字;要观察一个字;要观察一个字符在符在符在符在unicodeunicode表中的位序,必须使用表中的位序,必须使用表中的位序,必须使用表中的位序,必须使用intint类型显示转换类型显示转换类型显示转换类型显示转换,不可以使用,不可以使用,不可以使用,不可以使用shortshort型转换。型转换。型转换。型转换。n n要得到一个要得到一个要得到一个要得到一个065535065535之间的数所代表的之间的数所代表的之间的数所代表的之间的数所代表的UnicodeUnicode表中表中表中表中相应位置上的字符必须使用相应位置上的字符必须使用相应位置上的字符必须使用相应位置上的字符必须使用charchar型显示转换型显示转换型显示转换型显示转换( (例例例例2-12-1) )。Java第2章基本数据类型和数组例2-1 Example2_1.javapublic class Example2_1 public static void main (String args ) char c=; System.out.println(字母字母+c+在在unicode表中的顺序位置表中的顺序位置:+(int)c); System.out.println(字母表:字母表:); for(int i=(int)c;ic+25;i+) System.out.print( +(char)i); 输出结果:输出结果:字母字母在在unicode表中的顺序位置表中的顺序位置:945字母表:字母表: ? Java第2章基本数据类型和数组2.2.4 浮点类型浮点类型n nfloatfloat型:型:型:型: qq常量:常量:常量:常量:453.5439f453.5439f,21379.987F21379.987F,2e40f2e40fqq变量:变量:变量:变量:n nfloat f1= 453.5439f, f2;float f1= 453.5439f, f2;n n对于对于对于对于floatfloat型变量,内存分配给型变量,内存分配给型变量,内存分配给型变量,内存分配给4 4个字节个字节个字节个字节n n其取值范围是其取值范围是其取值范围是其取值范围是10101010-38-38-38-381010101038383838和和和和-10-10-10-1038383838-10-10-10-10-38-38-38-38n ndoubledouble型:型:型:型:qq常量常量常量常量: : 21389.5439d21389.5439d21389.5439d21389.5439d,23189908.98723189908.98723189908.98723189908.987,123.0123.0123.0123.0,6e-1406e-1406e-1406e-140qq变量:变量:变量:变量:n ndouble d1=12.3, d2;double d1=12.3, d2;n n对于对于对于对于doubledouble型变量,内存分配给型变量,内存分配给型变量,内存分配给型变量,内存分配给8 8个字节个字节个字节个字节n n其取值范围是其取值范围是其取值范围是其取值范围是10101010-308-308-308-30810101010308308308308和和和和-10-10-10-10308308308308-10-10-10-10-308-308-308-308返回返回返回返回Java第2章基本数据类型和数组2.3 基本数据类型的转换基本数据类型的转换n n就是把一种基本数据类型变量转变成另一种基本类型变量就是把一种基本数据类型变量转变成另一种基本类型变量就是把一种基本数据类型变量转变成另一种基本类型变量就是把一种基本数据类型变量转变成另一种基本类型变量n n下列基本类型会涉及数据转换,按精度从下列基本类型会涉及数据转换,按精度从下列基本类型会涉及数据转换,按精度从下列基本类型会涉及数据转换,按精度从“ “低低低低” ”到到到到“ “高高高高” ”排列排列排列排列顺序:顺序:顺序:顺序:qqbyte short int long float doublebyte short int long float doublen n不包括逻辑类型和字符类型不包括逻辑类型和字符类型不包括逻辑类型和字符类型不包括逻辑类型和字符类型Java第2章基本数据类型和数组n n转换的原则:转换的原则:转换的原则:转换的原则:qq当把级别低的变量的值赋给级别高的变量时,系统自动当把级别低的变量的值赋给级别高的变量时,系统自动当把级别低的变量的值赋给级别高的变量时,系统自动当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换,如完成数据类型的转换,如完成数据类型的转换,如完成数据类型的转换,如intint型转换成型转换成型转换成型转换成longlong型。型。型。型。qq当把级别高的变量的值赋给级别低的变量时,必须使用当把级别高的变量的值赋给级别低的变量时,必须使用当把级别高的变量的值赋给级别低的变量时,必须使用当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算显示类型转换运算显示类型转换运算显示类型转换运算( (强制转换运算可能导致精度的损失强制转换运算可能导致精度的损失强制转换运算可能导致精度的损失强制转换运算可能导致精度的损失) )。n n显示转换的格式:显示转换的格式:显示转换的格式:显示转换的格式:( (类型名类型名类型名类型名) ) 要转换的值要转换的值要转换的值要转换的值n nint x=(int)123.5;int x=(int)123.5;qq当把一个整数赋值给一个当把一个整数赋值给一个当把一个整数赋值给一个当把一个整数赋值给一个bytebyte、shortshort、intint或或或或longlong型变型变型变型变量时,不可以超出这些变量的取值范围,否则必须进行量时,不可以超出这些变量的取值范围,否则必须进行量时,不可以超出这些变量的取值范围,否则必须进行量时,不可以超出这些变量的取值范围,否则必须进行类型转换运算类型转换运算类型转换运算类型转换运算 ( (例例例例2-22-2) )。qq例:例:例:例:byte a=(byte)128;byte a=(byte)128;qq byte b=(byte)(-129); byte b=(byte)(-129);qqa a和和和和b b的值分别是的值分别是的值分别是的值分别是-128-128和和和和127127。返回返回返回返回Java第2章基本数据类型和数组例例2-2 Example2_2.java public class Example2_2 public static void main (String args ) byte a=120; short b=130; int c=2200; long d=8000; float f; double g=0.1234567812345678; a=(byte)b; /导致精度的损失导致精度的损失 c=(int)d; /未导致精度的损失未导致精度的损失 f=(float)g; /导致精度的损失导致精度的损失 System.out.println(a=+a); System.out.println(c=+c); System.out.println(f=+f); System.out.println(g=+g); 输出结果:输出结果:a=-126c=8000f=0.12345678g=0.1234567812345678Java第2章基本数据类型和数组2.4 数据的输入与输出数据的输入与输出n nJavaJava提供在命令行进行数据输入、输出的功能不多提供在命令行进行数据输入、输出的功能不多提供在命令行进行数据输入、输出的功能不多提供在命令行进行数据输入、输出的功能不多n n 关于输入、输出我们将在第九章详细介绍,现在只需知道关于输入、输出我们将在第九章详细介绍,现在只需知道关于输入、输出我们将在第九章详细介绍,现在只需知道关于输入、输出我们将在第九章详细介绍,现在只需知道它的作用是在命令行窗口它的作用是在命令行窗口它的作用是在命令行窗口它的作用是在命令行窗口( (例如,例如,例如,例如,MS-DOSMS-DOS窗口窗口窗口窗口) )输出数据输出数据输出数据输出数据即可。即可。即可。即可。1 1、数据的输出:、数据的输出:、数据的输出:、数据的输出:System.out.printf System.out.printf System.out.println System.out.println2 2、数据的输入:、数据的输入:、数据的输入:、数据的输入:ScannerScannerJava第2章基本数据类型和数组2.4.1 数据的输出数据的输出n nSystem.out.printfSystem.out.printf的功能完全类似的功能完全类似的功能完全类似的功能完全类似C C语言中的语言中的语言中的语言中的printfprintf函数函数函数函数n n printf( printf(格式控制部分,表达式格式控制部分,表达式格式控制部分,表达式格式控制部分,表达式1 1,表达式,表达式,表达式,表达式2 2,表达式表达式表达式表达式n);n);qq 格式控制部分由格式控制符号和普通字符组成格式控制部分由格式控制符号和普通字符组成格式控制部分由格式控制符号和普通字符组成格式控制部分由格式控制符号和普通字符组成n n%d %d 输出整型类型数据输出整型类型数据输出整型类型数据输出整型类型数据n n%c %c 输出输出输出输出charchar类型数据类型数据类型数据类型数据n n%f %f 输出输出输出输出floatfloat型数据,小数部分最多保留型数据,小数部分最多保留型数据,小数部分最多保留型数据,小数部分最多保留6 6位位位位n n%s %s 输出字符串数据输出字符串数据输出字符串数据输出字符串数据n n%md %md 输出的输出的输出的输出的intint类型数据占类型数据占类型数据占类型数据占mm列列列列n n%m.nf %m.nf 输出的输出的输出的输出的floatfloat型数据占型数据占型数据占型数据占mm列,小数点保留列,小数点保留列,小数点保留列,小数点保留n n位位位位qq( (例例例例2-32-3) )Java第2章基本数据类型和数组例例2-3 Example2_3.javapublic class Example2_3 public static void main (String args ) char c=A; float f=123.456789f; double d=123456.12345678; long x=5678; System.out.printf(%c%n%10.3f%n%f,%12d%n%d,c,f,d,x,x=x+2); A 123.457123456.123457, 56785680输出结果:输出结果:Java第2章基本数据类型和数组2.4.2 数据的输入数据的输入n nScannerScanner是是是是SDK1.5SDK1.5新增的一个类,可以使用该类创建一新增的一个类,可以使用该类创建一新增的一个类,可以使用该类创建一新增的一个类,可以使用该类创建一个对象:个对象:个对象:个对象:qqScanner reader=new Scanner(System.in);Scanner reader=new Scanner(System.in);n n然后然后然后然后readerreader对象调用方法对象调用方法对象调用方法对象调用方法( (函数函数函数函数) ),读取用户在命令行输入,读取用户在命令行输入,读取用户在命令行输入,读取用户在命令行输入的各种数据类型的各种数据类型的各种数据类型的各种数据类型qqnextByte() nextDouble()nextByte() nextDouble()qqnextFloat() nextInt()nextFloat() nextInt()qqnextLine() nextLong(),nextLine() nextLong(),qqnextShort()nextShort()n n上述方法执行时都会堵塞,等待你在命令行输入数据回车上述方法执行时都会堵塞,等待你在命令行输入数据回车上述方法执行时都会堵塞,等待你在命令行输入数据回车上述方法执行时都会堵塞,等待你在命令行输入数据回车确认。例如,如果用户从键盘输入带小数点的数字:确认。例如,如果用户从键盘输入带小数点的数字:确认。例如,如果用户从键盘输入带小数点的数字:确认。例如,如果用户从键盘输入带小数点的数字:12.3412.34(回车),那么(回车),那么(回车),那么(回车),那么readerreader对象调用对象调用对象调用对象调用hasNextDouble()hasNextDouble()Java第2章基本数据类型和数组n n返回的值是返回的值是返回的值是返回的值是true,true,而调用而调用而调用而调用hasNextByte()hasNextByte()、 hasNextInt() hasNextInt()、hasNextLonghasNextLong() ()返回的值都是返回的值都是返回的值都是返回的值都是falsefalse。如果用户从键盘输入一个。如果用户从键盘输入一个。如果用户从键盘输入一个。如果用户从键盘输入一个bytebyte取值取值取值取值范围内的整数:范围内的整数:范围内的整数:范围内的整数:8989(回车),那么(回车),那么(回车),那么(回车),那么readerreader对象调用对象调用对象调用对象调用hasNextBytehasNextByte() ()、 hasNextInt() hasNextInt()、hasNextLong() hasNextLong() 及及及及hasNextDouble()hasNextDouble()返回的值都是返回的值都是返回的值都是返回的值都是true,nextLine()true,nextLine()等待用户在命令行中输入移等待用户在命令行中输入移等待用户在命令行中输入移等待用户在命令行中输入移行文本回车,该方法得到一个行文本回车,该方法得到一个行文本回车,该方法得到一个行文本回车,该方法得到一个StringString类型的数据。类型的数据。类型的数据。类型的数据。n n 在从键盘输入数据时,经常让在从键盘输入数据时,经常让在从键盘输入数据时,经常让在从键盘输入数据时,经常让readerreader对象先调用对象先调用对象先调用对象先调用hasNextXXXhasNextXXX() ()方法等待用户从键盘输入数据,然后再调用方法等待用户从键盘输入数据,然后再调用方法等待用户从键盘输入数据,然后再调用方法等待用户从键盘输入数据,然后再调用nextXXX()nextXXX()方法读取数据。方法读取数据。方法读取数据。方法读取数据。 例例例例2-42-4,在这个例子中,用户在键盘依次输入若干个数,在这个例子中,用户在键盘依次输入若干个数,在这个例子中,用户在键盘依次输入若干个数,在这个例子中,用户在键盘依次输入若干个数字,每输入一个数字都需要按回车键确认,最后在键盘输字,每输入一个数字都需要按回车键确认,最后在键盘输字,每输入一个数字都需要按回车键确认,最后在键盘输字,每输入一个数字都需要按回车键确认,最后在键盘输入一个非数字字符结束整个的输入操作过程;程序将计算入一个非数字字符结束整个的输入操作过程;程序将计算入一个非数字字符结束整个的输入操作过程;程序将计算入一个非数字字符结束整个的输入操作过程;程序将计算出这些数的和及平均值。出这些数的和及平均值。出这些数的和及平均值。出这些数的和及平均值。返回返回返回返回Java第2章基本数据类型和数组例例2-4 Example2_4.javaimport java.util.*;public class Example2_4 public static void main (String args ) System.out.println(请输入若干个数,每输入一个数回车请输入若干个数,每输入一个数回车确认确认); System.out.println(请输入一个非数字字符,结束输入操请输入一个非数字字符,结束输入操作作); Scanner reader=new Scanner(System.in); double sum=0; int m=0; while(reader.hasNextDouble() double x=reader.nextDouble(); m=m+1; sum=sum+x; Java第2章基本数据类型和数组例例2-4 Example2_4.javaSystem.out.printf(%d个数的和为个数的和为%fn,m,sum); System.out.printf(%d个数的平均值是个数的平均值是%fn,m,sum/m); 请输入若干个数,每输入一个数回车确认请输入若干个数,每输入一个数回车确认请输入一个非数字字符,结束输入操作请输入一个非数字字符,结束输入操作32.28956.090.001u4个数的和为个数的和为177.2910004个数的平均值是个数的平均值是44.322750输出结果:输出结果:Java第2章基本数据类型和数组2.5 数组数组n n数组是相同类型的数据按顺序组成的一种复合数据类型。数组是相同类型的数据按顺序组成的一种复合数据类型。数组是相同类型的数据按顺序组成的一种复合数据类型。数组是相同类型的数据按顺序组成的一种复合数据类型。n n通过数组名加数组下标来使用数组中的数据,下标从通过数组名加数组下标来使用数组中的数据,下标从通过数组名加数组下标来使用数组中的数据,下标从通过数组名加数组下标来使用数组中的数据,下标从0 0开开开开始。始。始。始。1 1、声明数组、声明数组、声明数组、声明数组2 2、创建数组、创建数组、创建数组、创建数组3 3、数组元素的使用、数组元素的使用、数组元素的使用、数组元素的使用4 4、数组的初始化、数组的初始化、数组的初始化、数组的初始化Java第2章基本数据类型和数组2.5.1 声明数组声明数组n n声明数组包括数组的名字、数组包含的元素的数据类型声明数组包括数组的名字、数组包含的元素的数据类型声明数组包括数组的名字、数组包含的元素的数据类型声明数组包括数组的名字、数组包含的元素的数据类型n n声明一维数组有下列两种格式:声明一维数组有下列两种格式:声明一维数组有下列两种格式:声明一维数组有下列两种格式:qq数组元素类型数组元素类型数组元素类型数组元素类型 数组名字数组名字数组名字数组名字 ; int a ; int a ;qq数组元素类型数组元素类型数组元素类型数组元素类型 数组名字;数组名字;数组名字;数组名字; int a; int a; n n声明二维数组有下列两种格式:声明二维数组有下列两种格式:声明二维数组有下列两种格式:声明二维数组有下列两种格式:qq数组元素类型数组元素类型数组元素类型数组元素类型 数组名字数组名字数组名字数组名字 ; int b ; int b ;qq数组元素类型数组元素类型数组元素类型数组元素类型 数组名字;数组名字;数组名字;数组名字; int b; int b;注:提倡使用注:提倡使用“数组元素类型数组元素类型 数组名字数组名字”格式声明数组格式声明数组Java第2章基本数据类型和数组2.5.2 创建数组创建数组n n声明数组仅仅是给出了数组名和元素的数据类型。声明数组仅仅是给出了数组名和元素的数据类型。声明数组仅仅是给出了数组名和元素的数据类型。声明数组仅仅是给出了数组名和元素的数据类型。n n要想使用数组还必须为它分配内存空间,即创建数组。要想使用数组还必须为它分配内存空间,即创建数组。要想使用数组还必须为它分配内存空间,即创建数组。要想使用数组还必须为它分配内存空间,即创建数组。n n在为数组分配内存空间时必须指明数组的长度。在为数组分配内存空间时必须指明数组的长度。在为数组分配内存空间时必须指明数组的长度。在为数组分配内存空间时必须指明数组的长度。n n格式如下:格式如下:格式如下:格式如下:qq数组名字数组名字数组名字数组名字 = new = new 数组元素的类型数组元素的类型数组元素的类型数组元素的类型 数组元素的个数数组元素的个数数组元素的个数数组元素的个数; ;qqfloat boy ; boy= new float4;float boy ; boy= new float4;qqint f=new int34;int f=new int34;(注:声明数组同时可赋值,(注:声明数组同时可赋值,(注:声明数组同时可赋值,(注:声明数组同时可赋值,但不允许在声明数组中的方括号内指定数组元素的个数,但不允许在声明数组中的方括号内指定数组元素的个数,但不允许在声明数组中的方括号内指定数组元素的个数,但不允许在声明数组中的方括号内指定数组元素的个数,例例例例int a12;int a12;或或或或int 12 a;int 12 a;将导致语法错误。)将导致语法错误。)将导致语法错误。)将导致语法错误。) qqint size=30; double number =new doublesize;int size=30; double number =new doublesize;(注:(注:(注:(注:JavaJava允许使用允许使用允许使用允许使用intint类型变量指定数组的大小)类型变量指定数组的大小)类型变量指定数组的大小)类型变量指定数组的大小)Java第2章基本数据类型和数组数组的内存空间:数组的内存空间:boy= new float4;boy= new float4; 为数组分配内存空间后,数组为数组分配内存空间后,数组boy获得获得4个用存放个用存放float类型数据的内存空间,内存示意如图类型数据的内存空间,内存示意如图2.5所示所示。0x785BABoyBoy0Boy1Boy2Boy3图图2.5 数组的内存模式数组的内存模式数组变量数组变量boy中存放着这些内存单元的首地址,称为数中存放着这些内存单元的首地址,称为数组的引用。这样数组就可以通过下标运算操作这些内存组的引用。这样数组就可以通过下标运算操作这些内存单元。单元。Java第2章基本数据类型和数组2.5.3 数组元素的使用数组元素的使用n n通过下标符访问数组的元素通过下标符访问数组的元素通过下标符访问数组的元素通过下标符访问数组的元素qqint b =new int5;int b =new int5;qqb3=4; int c=b3;b3=4; int c=b3;n n数组的下标从数组的下标从数组的下标从数组的下标从0 0开始,如果你使用下标越界将会发生开始,如果你使用下标越界将会发生开始,如果你使用下标越界将会发生开始,如果你使用下标越界将会发生异常。异常。异常。异常。Java第2章基本数据类型和数组2.5.4 数组的初始化数组的初始化n n 创建数组后,系统会给每个数组元素一个默认的值创建数组后,系统会给每个数组元素一个默认的值创建数组后,系统会给每个数组元素一个默认的值创建数组后,系统会给每个数组元素一个默认的值(0(0值值值值) ),如:,如:,如:,如:floatfloat型是型是型是型是0.00.0,intint型是型是型是型是0 0n n在声明数组时同时可以给数组的元素赋予一个初始值,如:在声明数组时同时可以给数组的元素赋予一个初始值,如:在声明数组时同时可以给数组的元素赋予一个初始值,如:在声明数组时同时可以给数组的元素赋予一个初始值,如:qqfloat boy = 21.3f,23.8f,2.0f,23f,778.98ffloat boy = 21.3f,23.8f,2.0f,23f,778.98f;qq相当于:相当于:相当于:相当于:n nfloat boy =new float5;float boy =new float5;n nboy0=21.3f; boy1=23.8f; boy2=2.0f;boy0=21.3f; boy1=23.8f; boy2=2.0f;n nboy3=23f; boy4=778.98f;boy3=23f; boy4=778.98f;Java第2章基本数据类型和数组2.5.5 length的使用的使用n nlengthlength的使用:表示数组的长度的使用:表示数组的长度的使用:表示数组的长度的使用:表示数组的长度( (元素的个数元素的个数元素的个数元素的个数) )。 对于一维数组,对于一维数组,对于一维数组,对于一维数组,” ”数组名字数组名字数组名字数组名字.length”.length”的值就是数组中的值就是数组中的值就是数组中的值就是数组中元素的个数。元素的个数。元素的个数。元素的个数。对于二维数组,对于二维数组,对于二维数组,对于二维数组,” ”数组名字数组名字数组名字数组名字.length”.length”的值是它含有的的值是它含有的的值是它含有的的值是它含有的一维数组的个数。一维数组的个数。一维数组的个数。一维数组的个数。float a =new float6; a.lengthfloat a =new float6; a.length的值是的值是的值是的值是6 6。Int b=new int36; a.lengthInt b=new int36; a.length的值是的值是的值是的值是3 3。Java第2章基本数据类型和数组2.5.6 数组的引用数组的引用 数组属于引用型变量,因此两个相同类型的数组如果数组属于引用型变量,因此两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。具有相同的引用,它们就有完全相同的元素。 如:如:int a=1,2,3,b=4,5; 数组变量数组变量a和和b分别存放着不同的引用。如果使用了赋分别存放着不同的引用。如果使用了赋值语句值语句”a=b;”,那么,那么a中存放的引用就与中存放的引用就与b中的相同,即中的相同,即a0、a1就是就是b0、b1,最初分配给,最初分配给a数组的三个元素数组的三个元素不复存在。不复存在。( (例例例例2-52-5) )Java第2章基本数据类型和数组public class Example2_5 public static void main(String args ) int a=1,2,3; int b=10,11; System.out.println(数组数组a的引用是的引用是:+a); System.out.println(数组数组b的引用是的引用是:+b); System.out.printf(b0=%-3db1=%-3dn,b0,b1); b=a; System.out.println(数组数组a的引用是的引用是:+a); System.out.println(数组数组b的引用是的引用是:+b); b1=888; b2=999; System.out.printf(a0=%-5da1=%-5da2=%-5dn,a0,a1,a2); System.out.printf(b0=%-5db1=%-5db2=%-5dn,b0,b1,b2); 例例2-5Java第2章基本数据类型和数组
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号