第2章 JAVA语言基础(新书)_第1页
第2章 JAVA语言基础(新书)_第2页
第2章 JAVA语言基础(新书)_第3页
第2章 JAVA语言基础(新书)_第4页
第2章 JAVA语言基础(新书)_第5页
已阅读5页,还剩124页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章第二章 JavaJava编程基础编程基础 Java语言基础2【学习目标】1 1掌握掌握 Java Java 程序中的注释用法。程序中的注释用法。 2 2掌握掌握 Java Java 的命名规则,了解的命名规则,了解 Java Java 的标识符和系统保留字。的标识符和系统保留字。 3 3掌握掌握 Java Java 的基本数据类型,了解常量、变量和的基本数据类型,了解常量、变量和 Java Java 扩展的数据类扩展的数据类型。型。4 4掌握掌握 Java Java 语言基本运算符的使用,掌握语言基本运算符的使用,掌握 Java Java 语言基本运算符的优语言基本运算符的优先级。先级。

2、 5 5掌握掌握 Java Java 程序的基本控制结构。程序的基本控制结构。 6 6掌握并运用数组。掌握并运用数组。 Java语言基础32.1 2.1 数据类型、常量、变量数据类型、常量、变量 一、标识符一、标识符 标识符:能被编译器识别而提供的在程序中惟一的名字。在标识符:能被编译器识别而提供的在程序中惟一的名字。在JavaJava语言中用标语言中用标识符对变量、类、方法等进行命名。识符对变量、类、方法等进行命名。 对标识符的定义需要遵守以下的规则:对标识符的定义需要遵守以下的规则: 标识符是由字母、标识符是由字母、“_ _”、“$ $”和数字组成。和数字组成。 标识符以字母、标识符以字母

3、、“_ _”、“$ $”开头。开头。 标识符不能与关键字同名。标识符不能与关键字同名。 标识符区分大小写。如:标识符区分大小写。如:sumsum和和SumSum是不同的标识符。是不同的标识符。 例如:例如: nes_idnes_id,$fail$fail,_ese_ese为合法标识符。为合法标识符。 nes-id nes-id,studstud* *,classclass为不合法标识符。为不合法标识符。 Java语言基础4二、关键字二、关键字 关键字:关键字:Java语言本身提供的一种特殊的标识符,又称语言本身提供的一种特殊的标识符,又称Java保保留字。留字。Java语言的关键字有语言的关键

4、字有40多个,如表多个,如表2-1: abstractboolean break bytecasecatchcharclassconstcontinuedefaultdodoubleelseextensfalsefinalfinallyfloatforifimplementsimportinstanceofintinterfacelongnativenewpackageprivateprotectedpublicreturnshortstaticsuper switchsynchronizedthisthrow throwstransienttruetryvoidvolatilewhile表表

5、2-1 Java语言的关键字语言的关键字Java语言基础5 三、数据类型三、数据类型 JavaJava数据类型数据类型: :基本数据类型和复合数据类型。基本数据类型和复合数据类型。n 基本数据类型基本数据类型: :数值型、字符型和布尔型;数值型、字符型和布尔型;n 复合类型复合类型: : 类和接口类型。类和接口类型。 1 1数值型数据数值型数据 整数类型、浮点类型。整数类型、浮点类型。Java语言基础6(1) 整数类型 JavaJava把整型数细分为字节型、短整型、整型、长整型。它们的类型把整型数细分为字节型、短整型、整型、长整型。它们的类型标识符、默认值、取值范围和所占字节如表标识符、默认值

6、、取值范围和所占字节如表2-22-2所示:所示: 名称名称 类型标识符类型标识符 默认值默认值 取值范围取值范围 长度长度 字节型字节型byte0-1281271字节字节 短整型短整型 short0-32768327672字节字节 整型整型 int0-231231-14字节字节 长整型长整型 long0-263263-18字节字节 注意:注意:Java中所有整数类型都是有符号的,没有无符号的整数。中所有整数类型都是有符号的,没有无符号的整数。 Java语言基础7 (2)浮点型 Java提供了两种浮点类型:单精度和双精度。它们的类型标识符、默认值、取值范围和所占字节如表2-3所示: 名称名称 类

7、型标识符类型标识符 默认值默认值 取值范围取值范围 长度长度 单精度单精度 float00f -231231-14字节字节 双精度双精度 double00-263263-18字节字节 表2-3浮点数据分类 Java语言基础8 (3)字符类型字符类型 (4)布尔型布尔型名称名称 类型标类型标识符识符 默认值默认值 取值范围取值范围 长度长度 字符型字符型 char0或或u0000065535u0000uffff2字节字节 布尔型布尔型 booleanfalsetrue,false1字节字节 表2-4字符型和布尔型数据 Java语言基础9四、常量四、常量在在Java语言中的常量有:语言中的常量有:

8、整型常量;整型常量;浮点常量;浮点常量;字符常量;字符常量;布尔常量;布尔常量;字符串常量;字符串常量;程序中定义的常量。程序中定义的常量。final final 类型标识符类型标识符 常量名常量名 常量值;常量值; Java语言基础10JavaJava语言还允许使用一种以语言还允许使用一种以“ ”开头的字符,我们称其为转义字符,开头的字符,我们称其为转义字符,用来表示一些不可显示的或有特殊意义的字符。常见的转义如表用来表示一些不可显示的或有特殊意义的字符。常见的转义如表2-52-5所所示:示: 符号符号功能功能符号符号功能功能n换行(将光标移到下一行开头)换行(将光标移到下一行开头)单引号单

9、引号r回车(将光标移到本行开头)回车(将光标移到本行开头)“双引号双引号f换页(光标移到下页开始处)换页(光标移到下页开始处)反斜杠反斜杠b退格(光标移到前一列)退格(光标移到前一列)ddd八进制模式八进制模式t水平制表符(光标移到下一个水平制表符(光标移到下一个Tab位置)位置)udddd十六进制模式十六进制模式表表2-5转义字符转义字符Java语言基础11程序中定义的常量(符号常量)程序中定义的常量(符号常量) 在在JavaJava程序中定义常量通过程序中定义常量通过finalfinal关键字实现,常量通常用大写字母关键字实现,常量通常用大写字母表示。常量声明赋值后,在程序中就不能再修改,

10、否则将会产生编译错表示。常量声明赋值后,在程序中就不能再修改,否则将会产生编译错误。误。定义语句格式如下:定义语句格式如下: final final 类型标识符类型标识符 常量名常量名 常量值;常量值; 例如例如: final int N 100;final int N 100;Java语言基础12五、变量五、变量1.1.变量定义变量定义 Java语言规定,程序中的变量必须先定义、后使用语言规定,程序中的变量必须先定义、后使用. 定义变量语句的一般格式如下:定义变量语句的一般格式如下: 数据类型数据类型 变量列表;变量列表; 给变量赋值语句的一般格式为:给变量赋值语句的一般格式为: 变量名变量

11、名= =表达式;表达式; Java语言基础13例例2.1给变量赋值的演示给变量赋值的演示public class j202 public static void main(String arg) int a,b; /定义变量定义变量a,b为整型变量为整型变量 a=1; /给变量给变量a赋初值赋初值 System.out.println(a=+a); a=a+1; System.out.println(a=+a); b=a+1; System.out.println(b=+b); a=b+2; System.out.println(a=+a); Java语言基础143 3变量初始化变量初始化例例

12、2.2给变量赋值给变量赋值public class j203 public static void main(String arg) byte a=0 x78; /定义十六进制字节型变量定义十六进制字节型变量 int b=3; /定义变量定义变量b为整型变量为整型变量 float c=1.23f; /定义变量定义变量c为单精度变量为单精度变量 double d=3.23; /定义变量定义变量d为双精度变量为双精度变量 boolean e=false; /定义变量定义变量e为布尔型变量为布尔型变量 char f=A; /定义变量定义变量f为字符型变量为字符型变量 System.out.print

13、ln(转换成十进制的转换成十进制的a=+a); System.out.println(b=+b); System.out.println(c=+c); System.out.println(d=+d); System.out.println(e=+e); System.out.println(f=+f); Java语言基础152.2 运算符与表达式运算符与表达式Java语言运算符是一种特殊字符,他指明用户对操作数语言运算符是一种特殊字符,他指明用户对操作数进行的某种操作。表达式是由常量、变量、方法调用以进行的某种操作。表达式是由常量、变量、方法调用以及一个或多个运算符按一定规则的组合,它用于计

14、算或及一个或多个运算符按一定规则的组合,它用于计算或对变量进行赋值。对变量进行赋值。 Java语言基础162.2.12.2.1算术运算符与算术表达式算术运算符与算术表达式 类型类型运算符运算符功功 能能用法举例用法举例双目运算符双目运算符+加加a+b-减减a-b*乘乘a*b/除除a/b%求余求余a%b单目运算符单目运算符-负值负值-a+自增自增a+,+a-自减自减a-,-aJava语言基础17说明说明 (1)(1)“+ +”运算符可以用来连接字符串;例如:运算符可以用来连接字符串;例如: String salutation=Dr.;String salutation=Dr.; String n

15、ame=Jack;String name=Jack; String title=salutation+name;String title=salutation+name;则则titletitle值为值为“Dr. JackDr. Jack”。 (2)(2)“/ /”运算符。两个整数相除的结果是整数,如果有一个操作数为小运算符。两个整数相除的结果是整数,如果有一个操作数为小数则结果为小数。例如数则结果为小数。例如5/2=25/2=2;5.0/2=2.55.0/2=2.5。 (3 3)“% %”运算符。运算符。JavaJava中的取模运算符与中的取模运算符与C C和和C+C+不同,它的操作数不同,它

16、的操作数可以是浮点数。例如可以是浮点数。例如-3.5%3=-0.5-3.5%3=-0.5,3.5%-3=0.53.5%-3=0.5。 Java语言基础18(4 4)+(-)运算符的操作数必须是变量,不能是常量和表达式。它)运算符的操作数必须是变量,不能是常量和表达式。它们可以放在变量前,也可以放在变量后,功能都是对变量增(减)们可以放在变量前,也可以放在变量后,功能都是对变量增(减)1 1。但从表达式的角度看,表达式的值是不同的但从表达式的角度看,表达式的值是不同的. .例如:例如: k=a+k=a+;等价于;等价于k=a; a=a+1; k=a; a=a+1; 如如a=5a=5,则,则k=5

17、k=5,a=6a=6; k=+a; k=+a; 等价于等价于a=a+1; k=a; a=a+1; k=a; 如如a=5a=5,则,则k=6k=6,a=6a=6;Java语言基础19例例24算术运算算术运算public class j204 public static void main(String arg) int a=3,b=5,c=5; System.out.println(初值初值a=3,b=5,c=5); System.out.println(b/a=+b/a); System.out.println(c%a=+c%a); System.out.println(-a=+(-a); S

18、ystem.out.println(b+=+(b+)+,+b=+b); System.out.println(+c=+(+c)+,+c=+c); Java语言基础202.2.2 关系运算符与关系表达式关系运算符与关系表达式1 1关系运算符组成关系运算符组成JavaJava语言提供了语言提供了6 6种关系运算符种关系运算符 、=、 、=7107的值为的值为truetrue,1010!=10=10的值为的值为false false Java语言基础212.2.32.2.3逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式逻辑运算与关系运算的关系十分密切,关系运算的运算结果是布尔型的逻辑运算与关系运算的关

19、系十分密切,关系运算的运算结果是布尔型的运算,而逻辑运算的操作数和运算结果都是布尔型的运算。运算,而逻辑运算的操作数和运算结果都是布尔型的运算。逻辑运算符逻辑运算符: :! !(非)(非)& &(非简洁与)(非简洁与): :按位与按位与| |(非简洁或):按位或(非简洁或):按位或 (异或)(异或) &(简洁与):逻辑与(简洁与):逻辑与|(简洁或):逻辑或(简洁或):逻辑或其中!是单目运算符。其中!是单目运算符。 Java语言基础22例例2.5逻辑运算逻辑运算public class j205 public static void main(String arg) i

20、nt x=1,y=2; int num1=5,num2=5,num3=5,num4=5; boolean r1,r2,r3,r4; r1=xy & num1+=5; /两边表达式都运算 r2=xy & num2+=5; /只运算左边表达式 r3=xy | num3+=5; /两边表达式都运算 r4=xb?a:b; max=tc?t:c; /求三个数中最小值求三个数中最小值 t=ab?a:b; min=tc?t:c; /显示结果显示结果 System.out.println(max=+max); System.out.println(min=+min); Java语言基础262.

21、2.6 运算符优先级运算符优先级优先级优先级运算符名称运算符名称运算符运算符结合性结合性1限制符限制符()、()、 2自增、自减自增、自减+、-自右向左自右向左3按位取反、逻辑非、负号按位取反、逻辑非、负号、!、!、-自右向左自右向左4强制转换、内存分配强制转换、内存分配(类型)表达式、(类型)表达式、new自右向左自右向左5算术乘、除、取模算术乘、除、取模*、/、%自左向右自左向右6算术加、减算术加、减+、自左向右自左向右7移位运算符移位运算符、自左向右自左向右8关系运算关系运算、 、=自左向右自左向右9相等性判断运算相等性判断运算!=、= =自左向右自左向右10按位与、非简洁与按位与、非简

22、洁与&自左向右自左向右11按位异或、逻辑异或按位异或、逻辑异或自左向右自左向右12按位或、非简洁或按位或、非简洁或|自左向右自左向右13逻辑与(简洁与)逻辑与(简洁与)&自左向右自左向右14逻辑或(简洁或)逻辑或(简洁或)|自左向右自左向右15条件运算条件运算?:?:自右向左自右向左16赋值运算赋值运算=、+=、-=*=、自左向右自左向右n算术右移算术右移,和上面的不对应和上面的不对应,为正数时左边补为正数时左边补0,为负数时为负数时左边补左边补1. n逻辑右移逻辑右移,这个才是和这个才是和和和是一样的是一样的对于负数对于负数,右移之后就变成正数了右移之后就变成正数了. 练习:

23、练习: 关系运算符与逻辑运算符的使用关系运算符与逻辑运算符的使用public class LogicOpDemo public static void main(String args) int a = 10; int b = 5; boolean t = true; boolean f = false; System.out.println(ab : + (a b); System.out.println(a=b : + (a = b); System.out.println(t&f : + (t & f); System.out.println(t|f : + (t | f

24、); System.out.println(!f : + (!f); System.out.println(tf : + (t f); System.out.println(t&f : + (t & f); System.out.println(t|f : + (t | f); 练习练习 位运算符位运算符public class BitOpDemo public static void main(String args) int a = 0 xB5;/32位位 int b = 0 xA3; System.out.println(a = + Integer.toBinaryStr

25、ing (a); System.out.println(b = + Integer.toBinaryString (b); System.out.println(a = + Integer.toBinaryString (a); System.out.println(a&b = + Integer.toBinaryString (a & b); System.out.println(a|b = + Integer.toBinaryString (a | b); System.out.println(ab = + Integer.toBinaryString (a b); Sys

26、tem.out.println(a3 = + Integer.toBinaryString (a 3 = + Integer.toBinaryString (a 3); System.out.println(a3 = + Integer.toBinaryString (a 3); 运行结果Java语言基础312.3 Java2.3 Java程序的流程控制程序的流程控制n2.3.1 顺序结构顺序结构n2.3.2 选择结构选择结构n2.3.3 循环结构循环结构Reader常用子类常用子类nBufferedReadern构造一个字符流的缓存构造一个字符流的缓存,里面,里面存放存放的是从控制台输入的字

27、节转换成的是从控制台输入的字节转换成的的字字 符,符,从而实现字符、数组和行的高效读取。从而实现字符、数组和行的高效读取。n可以指定缓冲区的大小可以指定缓冲区的大小nInputStreamReadern字节流通向字符流的桥梁:它使用指定的字节流通向字符流的桥梁:它使用指定的 charsetcharset 读取字节并读取字节并将其解码为字符。将其解码为字符。 n每次调用每次调用 InputStreamReaderInputStreamReader的的read() read() 方法都会导致从底层输入方法都会导致从底层输入流读取一个或多个字节。流读取一个或多个字节。 buf=new Buffere

28、dReader(new InputStreamReader(System.in);Java语言基础33例例2.7输入一个数,求其平方根输入一个数,求其平方根import java.io.*;public class j207 public static void main(String arg) throws IOException int x; double y; String str; /声明字符串类声明字符串类 BufferedReader buf; /声明缓冲数据流类声明缓冲数据流类 System.out.print(请输入一个数请输入一个数:); buf=new BufferedRe

29、ader(new InputStreamReader(System.in); str=buf.readLine(); x=Integer.parseInt(str);/返回由字符串转换得到的整数返回由字符串转换得到的整数 y=Math.sqrt(x); /求平方根求平方根 System.out.println(x+的平方根为:的平方根为:+y); /显示计算结果显示计算结果 Java语言基础34例例2.8输入一个数,求其平方根输入一个数,求其平方根import java.io.*;public class j208 public static void main(String arg) thr

30、ows IOException int x; double y; String str; BufferedReader buf; System.out.print(请输入一个数请输入一个数:); buf=new BufferedReader(new InputStreamReader(System.in); str=buf.readLine(); x=Integer.parseInt(str); if (x=0) y=Math.sqrt(x); System.out.println(x+的平方根为:的平方根为:+y); Java语言基础35例例29输入一个数,求其平方根输入一个数,求其平方根i

31、mport java.io.*;public class j209 public static void main(String arg) throws IOException int x; double y; String str; BufferedReader buf; System.out.print(请输入一个数请输入一个数:); buf=new BufferedReader(new InputStreamReader(System.in); str=buf.readLine(); x=Integer.parseInt(str); if (x=0) y=Math.sqrt(x); Sy

32、stem.out.println(x+的平方根为:的平方根为:+y); else System.out.println(输入错误!输入错误!); Java语言基础36例例2.10 2.10 编写程序,输入一个成绩,输出成绩的等级。等级划编写程序,输入一个成绩,输出成绩的等级。等级划分标准:分标准:8585分以上为优,分以上为优,75758484为良,为良,60607474为中,为中,6060分以分以下为不及格下为不及格import java.io.*;public class j210 public static void main(String arg) throws IOException

33、 int x; String str; BufferedReader buf; System.out.print(请输入学生成绩(请输入学生成绩(0-100)之间:)之间:); buf=new BufferedReader(new InputStreamReader(System.in); str=buf.readLine(); x=Integer.parseInt(str); if(x=85) System.out.println(成绩优秀!成绩优秀!); else if(x=75) System.out.println(成绩良好!成绩良好!); else if(x60) System.ou

34、t.println(成绩及格!成绩及格!); else System.out.println(成绩不及格!成绩不及格!); Java语言基础37例例2.112.11输入成绩的英文等级:输入成绩的英文等级:A A、B B、C C、D D,输出对应的,输出对应的中文等级:优秀、良好、及格、不及格中文等级:优秀、良好、及格、不及格 import java.io.*;public class j211 public static void main(String arg) throws IOException char ch; System.out.print(请输入英文等级(请输入英文等级(A,B,

35、C,D):); /接收从键盘上输入的一个数据把它转换成一个字符接收从键盘上输入的一个数据把它转换成一个字符 ch=(char)System.in.read(); switch(ch) case A: case a: System.out.println(成绩优秀!成绩优秀!); break; case B: case b: System.out.println(成绩良好!成绩良好!);break; case C: case c: System.out.println(成绩及格!成绩及格!);break; case D: case d: System.out.println(成绩不及格!成绩不及

36、格!);break; default:System.out.println(输入错误!输入错误!); Java语言基础38例例2.12 用户从键盘输入字符,直到输入用户从键盘输入字符,直到输入&程序结束。要求:输入程序结束。要求:输入字符后显示输入字符的字符后显示输入字符的ASCII值并最终统计出输入字符的个数。值并最终统计出输入字符的个数。import java.io.*;public class j212 public static void main(String arg) throws IOException char ch; int count=0; System.out.p

37、rintln(请输入一个字符,以请输入一个字符,以&结束输入:结束输入:); ch=(char)System.in.read(); while(ch!=&) System.out.println(字符字符+ch+的的ASCII值为值为:+(int)ch); System.in.skip(2); /跳过回车键和换行建跳过回车键和换行建 count=count+1; ch=(char)System.in.read(); System.out.println(输入的字符共输入的字符共+count); nSystem.in.skip(2);当用户键入字母,按当用户键入字母,按Enter

38、 键后,虽然屏幕只显示了一个字母,但是在系统内存键后,虽然屏幕只显示了一个字母,但是在系统内存中实际保存了中实际保存了3个个ASCII码。码。第一个第一个ASCII码是用户键入的字母的码是用户键入的字母的ASCII码,码,第二个是回车的第二个是回车的ASCII码码013,第三个是换行的第三个是换行的ASCII码码010。在这种情况下,在这种情况下,System.in.read(); 语句会在第二、三轮循环时分别读取内存中语句会在第二、三轮循环时分别读取内存中的的ASCII 码码013和和010,而不会要求用户键入新的字母。只有在第四轮循环时,而不会要求用户键入新的字母。只有在第四轮循环时,因为

39、内存中的内容已经全部读取完,才会要求用户键入新的字母。因为内存中的内容已经全部读取完,才会要求用户键入新的字母。 Java语言基础41例例2.132.13对例对例2.112.11进行改编,用进行改编,用do-whiledo-while语句实现语句实现import java.io.*;public class j213 public static void main(String arg) throws IOException char ch; int count=0; System.out.println(请输入字符,以请输入字符,以#结束输入:结束输入:); do ch=(char)Syst

40、em.in.read(); System.out.println(字符字符+ch+的的ASCII值为值为:+(int)ch); count=count+1; while(ch!=#) ; System.out.println(输入的字符共:输入的字符共:+count); Java语言基础43 例例2.14计算计算1+2+3+100的值的值 public class j214 public static void main(String arg) int i,sum; /定义变量定义变量 /*方法方法1*/ sum=0; /给存放累加和的变量赋初值给存放累加和的变量赋初值0 for (i=1;i

41、=100;i+) /求累加和的循环开始求累加和的循环开始 sum=sum+i; /求累加和求累加和 System.out.println(1+2+.+100=+sum); /*方法方法2*/ for (sum=0,i=1;i=100) break; /退出循环条件退出循环条件 i+; /加数自加加数自加 System.out.println(1+2+.+100=+sum); Java语言基础45例例2.152.15求求1-10001-1000之间的所有完全数之间的所有完全数 public class j215 public static void main(String arg) int i,

42、j,sum; /定义变量定义变量 for(i=1;i1000;i+) sum=0; for(j=1;ji;j+) if(i%j=0) sum=sum+j; /因子累加因子累加 if(sum=i) /判定是否为完全数判定是否为完全数 System.out.print(i+t); System.out.println(); Java语言基础46例例2.16 计算计算 3 的的 60 次方。次方。 public class Example2_16 public static void main(String args) int i,n=60; long result=1; for(i=1;i=Int

43、eger.MAX_VALUE) break; if (i= =n+1) System.out.println(3 的的+n +次方为:次方为:+ result); Else System.out.println(超出了整数范围超出了整数范围); Java语言基础47例例2.17求自然数求自然数 1 至至 99 中所有奇数的和。中所有奇数的和。 public class Example217 public static void main(String args) int sum=0,i; for (i=1;i=99;+i) if (i%2=0) continue; sum +=i; Syste

44、m.out.println(sum); Java语言基础48例例2.18 2.18 输出输出 200 200 以内的所有素数的程序就使用了带标以内的所有素数的程序就使用了带标号的号的 continue continue 语句语句: import java.io.*;public class Sushu public static void main ( String args ) A1: for( int i = 2; i = 200; i+ ) for( int j = 2; j i; j+) if ( i % j = 0) continue A1; System.out.print( i

45、+ ); 课堂练习课堂练习1:1:写出程序的运行结果写出程序的运行结果import java.io.IOException;public class Test public static void main(String args) throws IOException System.out.println(please enter number); int b = 0; while (true) b = System.in.read(); if (b = n | b = r) break; else int num = b - 0; System.out.println(num); n输入:

46、输入:123 n输出:输出:123Java语言基础50课堂练习课堂练习2:求求2100的素数,每行打印的素数,每行打印5个数字个数字import java.io.*;public class prime public static void main(String args) First_Loop: for(int i=2,k=0;i100;i+) for(int j=2;j=Math.sqrt(i);j+) if(i%j=0) continue First_Loop; System.out.print(i+t); k+; if(k%5=0) System.out.println(); /fo

47、r /main /classJava语言基础512.4 数组数组2.4.1什么是数组 数组是一组类型相同、名字相同的数据的总称,数组中的每个数据称为一个数组元素。 Java语言基础522.4.2 一维数组一维数组在Java语言中,使用数组一般步骤: 数组定义、分配内存、赋值。 1 1定义数组定义数组 形式有两种: 数组元素类型数组元素类型 数组名数组名 ; 数组元素类型数组元素类型 数组名;数组名;例如:例如: int student; int student; boolean info; Java语言基础532 2用用newnew初始化数组初始化数组 用关键字new初始化数组:指定数组的长度

48、并分配相应的内存空间。例如: int a; a = new int50; 定义数组和动态初始化数组也可以合并为一条语句,例如: int a = new int50; String name = new String30; 在动态初始化数组后,数组的默认值由其元素的类型决定。在动态初始化数组后,数组的默认值由其元素的类型决定。例如:整型数据的默认值为例如:整型数据的默认值为0 0,实型数据的默认值为,实型数据的默认值为0.00.0, 布尔型数据的默认值为布尔型数据的默认值为false false Java语言基础543 3赋初值初始化数组赋初值初始化数组 赋初值初始化数组是指不使用系统的数组默认

49、值,自行给数组赋初值。赋初值初始化数组是指不使用系统的数组默认值,自行给数组赋初值。具体实施方法:具体实施方法: (1)按照顺序依次给每个元素赋值。)按照顺序依次给每个元素赋值。 例如给数组例如给数组a赋值:赋值: a0 = 81; a1 = 90; a49 = 100; (2)在定义数组的同时直接给数组赋初值。)在定义数组的同时直接给数组赋初值。 int b = 81,90,17,55,32, 98,37,25,100 ; String nums = one,two,three,four,five,six; 初值数据的个数就是数组的长度,数据与数据之间用逗号分隔,整初值数据的个数就是数组的长

50、度,数据与数据之间用逗号分隔,整 个初值再用大括号括起来。个初值再用大括号括起来。Java语言基础554数组元素的引用 数组名数组名 下标下标 下标值由0开始到数组长度减1为止。对于数组a50来说,a0表示数组中的第一个元素;a49表示数组中的最后一个元素。 Java语言基础565数组的复制 每个数组都是每个数组都是ArrayArray类中的一个对象,在复制数组时有两类中的一个对象,在复制数组时有两种具体情况。种具体情况。 (1)两个数组指向同一组元素空间。 例如例如: int num_1 = 1, 2, 3, 4, 5, 6; int num_2;/未分配内存空间未分配内存空间 num_2

51、= num_1;/2个数组指向同一内存空间个数组指向同一内存空间 Java语言基础57例例2.19 一维数组的构建与输出一维数组的构建与输出,并求数组平均值并求数组平均值class Array1creat public static void main(String args) int num1=1,2,3,4,5,6; int num2; int j; float ave=0f; System.out.println(数组数组num1各元素的值为:各元素的值为:); for(j=0; j num1.length ; j+) System.out.print(num1 j+t);Java语言基

52、础58 System.out.println(); System.out.println(数组数组num1的长度为:的长度为:+ num1.length); num2=num1; System.out.println(数组数组num2各元素的值为:各元素的值为:); for(j=0; j num2.length ; j+) System.out.print(num2 j+t); ave = ave + num2 j; System.out.println(); ave = ave / num2.length; System.out.println(数组数组num2的平均值为:的平均值为:+ a

53、ve); Java语言基础59(2 2)两个数组指向内容相同的两个元素空间)两个数组指向内容相同的两个元素空间。 如果要真正复制一个数组,使我们在修改复制数组时不影响源数组的话,就需要定义一个和源数组长度相同的数组,然后再把源数组中的元素一一复制给新的数组。n求任何数组的长度都可以使用求任何数组的长度都可以使用length方法:方法: 数组名数组名.length 如:如:num_1.length、 a.length等等 Java语言基础602.4.3 2.4.3 二维数组二维数组 1二维数组定义与定义一维数组类似,定义二维数组也有两种形式: (1)数组元素类型)数组元素类型 数组名数组名;例如

54、:intnum;charcc;(2)数组元素类型)数组元素类型 数组名数组名 ;例如:Stringss;Doublevalue; 二维数组可以看作一个按照行和列存储数据的内存空间。可以二维数组可以看作一个按照行和列存储数据的内存空间。可以按按照所需照所需确定数组每行和每列的长度,有两种创建方法。确定数组每行和每列的长度,有两种创建方法。 (1 1)数组每行、每列之间长度相同。)数组每行、每列之间长度相同。 例如:例如:int bb = new int23; 该语句表示创建一个2行3列的二维数组,该数组共有bb00、bb01、bb02、bb10、bb11和bb12六个数组元素。Java语言基础6

55、1 2 2用用newnew初始化二维数组初始化二维数组(2 2)数组每行、每列之间长度不相同。)数组每行、每列之间长度不相同。 Java语言中,多维数组被看作是数组的数组,对数组空间的分配不一定是连续空间。因而,多维数组每一维的大小可以是不相同的。 例如:例如: results = new int2;/创建一个创建一个2行的二维数组。行的二维数组。 results0 = new int3;/该数组第一行有该数组第一行有3列,也就是列,也就是3个元素。个元素。 results1 = new int5;/该数组第二行有该数组第二行有5列,也就是列,也就是5个元素。个元素。Java语言基础62 3

56、3赋初值初始化二维数组赋初值初始化二维数组 与初始化一维数组类似,赋初值初始化二维数组也有两种方法。 (1)按照顺序依次给每个元素赋值。 (2)在定义数组的同时直接给数组赋初值。 例如:例如: int bb = 13,45,78 , 36,21,55 ; 4 4二维数组的长度二维数组的长度 二维数组的长度是指行数的个数,二维数组每行的长度是指每行的元素个数。 例如:例如:results.length表示二维数组表示二维数组results的长度,也就的长度,也就是行数;是行数;results i.length表示二维数组表示二维数组results第第i行的行的长度,也就是元素个数。长度,也就是元

57、素个数。Java语言基础632.4.4 2.4.4 数组应用举例数组应用举例 例例2.20 二维数组结构示例设计思路:通过对由inta2=12,34,-5,3,5,7;所创建的数组的输出,以及对a2.length与a2i.length的输出,展示数组的创建与输出方式,并加深对java二维数组结构的认识。Java语言基础64class Array2creat public static void main(String args) int a2=12,34,-5,3,5,7; int i,j; System.out.println(二维数组二维数组a2的长度为:的长度为:+a2.length);

58、 for(i=0;ia2.length;i+) System.out.println(a2+i+的长度为:的长度为:+a2i.length); for(j=0; j a2i.length ;j+) System.out.print(a2+i+j+=+a2ij+t); System.out.println(); Java语言基础65例例2.212.21 二维数组的转置与输出。设计思路:首先定义、赋初值并输出首先定义、赋初值并输出int a。然后定义然后定义int b。用用bji=aij 语句配合循环,实现将数组语句配合循环,实现将数组a 转置复转置复制给数组制给数组b的目的。的目的。Java语言

59、基础66class Array2convertpublic static void main(String args) int a=11,12,13,21,22,23,31,32,33,41,42,43; int b=new int34; int i,j; System.out.println(数组数组a各元素的值为:各元素的值为:); for(i=0;i4;i+) for(j=0;j3;j+) System.out.print(aij+t); System.out.println(); Java语言基础67 for(i=0;i4;i+) for(j=0;j3;j+) bji=aij; Sys

60、tem.out.println(数组数组b各元素的值为:各元素的值为:); for(i=0;i3;i+) for(j=0;j4;j+) System.out.print(bij+t); System.out.println(); Java语言基础68例例2.222.22数组综合操作举例设计思路:通过类似for(i=0;ia.length;i+) 的循环语句,实现求最大值和排序等一系列数组的常用功能。Java语言基础69class UseArray public static void main(String args) int i,j,max,sum,temp; int a=3,0,6,7,5,2; /定义数组并初始化定义数组并初始化 max=a0; for(i=1;imax) max=ai; System

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论