第02章Java语言基础_第1页
第02章Java语言基础_第2页
第02章Java语言基础_第3页
第02章Java语言基础_第4页
第02章Java语言基础_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

1、复复 习习 Java的发展过程的发展过程 Java应用程序的两种形式应用程序的两种形式 Applet与与application Java包包 Java开发工具:开发工具:JDK和和Eclipse第第2章章 Java语言基础语言基础 2.1 语言成分语言成分 2.2 流程控制语句流程控制语句 2.3 数组数组 2.4 静态方法静态方法 2.5 字符串字符串Java程序设计实用教程(第4版)第第2章章 Java语言基础语言基础内容和要求:内容和要求:1.掌握掌握Java语言的基本语法成分。注意与语言的基本语法成分。注意与C/C+不同之处。不同之处。2.掌握数组类型和字符串的使用方法。掌握数组类型和

2、字符串的使用方法。3.掌握掌握Java语言的方法声明和调用规则,掌握方法语言的方法声明和调用规则,掌握方法参数和返回值的传递规则。参数和返回值的传递规则。重点:重点:数组的引用模型;使用静态方法,引用类型数组的引用模型;使用静态方法,引用类型作为方法的参数和返回值,字符串。作为方法的参数和返回值,字符串。难点:难点:位运算,二进制;递归算法。位运算,二进制;递归算法。Java程序设计实用教程(第4版)2.1 语言成分语言成分1.2.1.1 标识符与关键字标识符与关键字2.2.1.2 基本数据类型基本数据类型3.2.1.3 变量与常量变量与常量4.2.1.4 运算符与表达式运算符与表达式Java

3、程序设计实用教程(第4版)2.1.1 标识符与关键字标识符与关键字1.关键字关键字2.标识符标识符3.分隔符分隔符4.注释注释5.程序书写风格程序书写风格Java程序设计实用教程(第4版)关键字关键字(P375附录附录B)关键字是由Java语言定义的、具有特定含义的单词。定义标识符时要避免使用这些词。abstractbooleanbreakbytecasecatchcharclassassertcontinuedefaultdodoubleelseextendsfinalfinallyfloatforfalseifimplementsimportinstanceofintinterfacelo

4、ngnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttryvoidvolatilewhileJava程序设计实用教程(第4版)标识符标识符标识符是用户定义的单词,用于命名变量标识符是用户定义的单词,用于命名变量、常量、类、对象、方法等。、常量、类、对象、方法等。图图2.1 Java标识符的语法图标识符的语法图Java程序设计实用教程(第4版)1.下列哪个是合法的下列哪个是合法的Java标识符(标识符( )?)?A、Tree&

5、Glass B、First_Java C、2$theLastOne D、classJava程序设计实用教程(第4版)标识符标识符1.必须要区分大小写必须要区分大小写 2.没有长度限制;不允许插入空格没有长度限制;不允许插入空格3.不能是关键字,但是它可包含一个关键字作为它的名字的一部分不能是关键字,但是它可包含一个关键字作为它的名字的一部分 4.约定:约定:l关键字、变量、对象、方法、包等名字通常全部小写;关键字、变量、对象、方法、包等名字通常全部小写;l由多个单词构成的标识符,首字母小写,其后单词首字母大写;由多个单词构成的标识符,首字母小写,其后单词首字母大写;如:如:thisIsMeth

6、odOrFieldName()l类名、接口名首字母大写;类名、接口名首字母大写;如:如:class ThisIsAClassName interface Accountl常量名全部字母均大写;常量名全部字母均大写;如:如:GREEN HEAD_ COUNTlJava包(包(Package)属于一种特殊情况:)属于一种特殊情况:它们全都是小写字母它们全都是小写字母;如如: package java.awt.eventl标识符名应具有一定的含义,以增加程序的可读性。标识符名应具有一定的含义,以增加程序的可读性。Java程序设计实用教程(第4版)分隔符分隔符用于分开语法成分;不同的语法成分使用用于分

7、开语法成分;不同的语法成分使用不同的分隔符。不同的分隔符。关键字、标识符的分隔符是关键字、标识符的分隔符是空格空格;语句的分隔符是分号语句的分隔符是分号(;);数据的分隔符是逗号数据的分隔符是逗号(,)等。等。Java程序设计实用教程(第4版)注释注释三种注释格式:三种注释格式:1.1./ / 单行注释单行注释2.2./ /* * 多行注释多行注释* * 一段注释,它跨越了多个行一段注释,它跨越了多个行* */ /3.3./ /* * * 文档注释文档注释 用于从源代码自动生成文档用于从源代码自动生成文档* */ /注:执行注:执行JDK中的中的javadocjavadoc命令,可根据源代码命

8、令,可根据源代码中的内容生成中的内容生成WebWeb文档。文档。Java程序设计实用教程(第4版)2.1.2 基本数据类型基本数据类型1.什么是数据类型什么是数据类型2.数据类型分类数据类型分类基本数据类型:基本数据类型:8种种引用数据类型:引用数据类型:3种种 数组、类数组、类(class)和接口和接口(interface)Java程序设计实用教程(第4版)1.整数类型整数类型byte(1),short(2),int(4),long(8)2.浮点数类型浮点数类型float(4),double(8字节字节)3.布尔类型布尔类型boolean(true,false) 4.字符类型字符类型char

9、(u0000uFFFF )基本数据类型基本数据类型Java程序设计实用教程(第4版)引用数据类型引用数据类型引用类型:引用类型:数组,类数组,类 class,接口,接口interface。引用数据类型的变量保存引用数据类型的变量保存包括地址的引用信息包括地址的引用信息。public class MyDate public class MyDate private int day = 1; private int day = 1; private int month = 1; private int month = 1; private int year = 2000; private int

10、year = 2000; public MyDate( int day, int month, int year) . public MyDate( int day, int month, int year) . public void print() . public void print() . class TestMyDate class TestMyDate public static void main( String args) public static void main( String args) MyDate my_ birth = new MyDate( 22, 7, 1

11、964);MyDate my_ birth = new MyDate( 22, 7, 1964); Java程序设计实用教程(第4版)引用数据类型引用数据类型创建一个类对象:创建一个类对象:MyDate my_ birth = new MyDate( 22, 7, 1964);MyDate my_ birth = new MyDate( 22, 7, 1964);Java程序设计实用教程(第4版)2.1.3 变量与常量变量与常量1.变量变量 - 先声明,后使用先声明,后使用变量声明变量声明修饰符修饰符 类型类型 变量变量 = 表达式表达式 , 变量变量= 表达表达式式 例如:例如:int i,

12、 j; 变量参与的运算和操作变量参与的运算和操作2.最终变量最终变量 final int value;value=100; 常量常量直接常量和符号常量直接常量和符号常量常量声明常量声明final int MAX=10;Java程序设计实用教程(第4版)变量的作用域变量的作用域变量的作用域指明可访问该变量的一段代变量的作用域指明可访问该变量的一段代码按作用域来分,变量可以有下面几种:码按作用域来分,变量可以有下面几种:1.成员变量成员变量 Member variable 2.方法参变量方法参变量 Method parameter 3.局部变量局部变量 Local variable 4.异常处理参

13、变量异常处理参变量 Exception-handler parameterJava程序设计实用教程(第4版)Java程序设计实用教程(第4版)2.1.4 运算符与表达式运算符与表达式1.运算符运算符算术运算符:算术运算符:+(正)、(正)、-(负)、(负)、+(自增)、(自增)、-(自减)(自减) 、+(加)、(加)、-(减)、(减)、*(乘)(乘) 、/(除)、(除)、%(取余)(取余) 【例例2.1】 求明天是星期几。求明天是星期几。 关系运算符:关系运算符:=、!=、=、= (boolean类型不能比较大小类型不能比较大小)位运算符:位运算符:(非)、(非)、&(与)、(与)、|

14、(或)、(或)、(异或)、(异或)、(右移位)、(右移位)、(无符号右移(无符号右移位)位) Java程序设计实用教程(第4版)图图2.3 整数整数&和和 | 位运算位运算Java程序设计实用教程(第4版)2.1.4 运算符与表达式运算符与表达式逻辑运算符:逻辑运算符:&(与)、(与)、|(或)、(或)、!(非)、(非)、(异(异或)、或)、&(条件与)、(条件与)、|(条件或)。(条件或)。 l表示两布尔量的逻辑关系,结果仍为布尔量表示两布尔量的逻辑关系,结果仍为布尔量l不可将一个非布尔值当作布尔值在逻辑表达式中使用不可将一个非布尔值当作布尔值在逻辑表达式中使用 例如

15、:以下是非法的:例如:以下是非法的: int i=1,j=2; i & j i | j !i【例例2.2】 判断一个年份是否为闰年。判断一个年份是否为闰年。以下是合法的:以下是合法的:(i 10)(i 10)Java程序设计实用教程(第4版)2.1.4 运算符与表达式运算符与表达式赋值运算符:赋值运算符:= 、+=等等注意注意:赋值运算时,如果运算符左侧:赋值运算时,如果运算符左侧变量的数据类型的级别高,变量的数据类型的级别高,则右侧的数据被则右侧的数据被自动转化自动转化为与左侧相同的高级的为与左侧相同的高级的数据类型,数据类型,然后赋给左侧然后赋给左侧变量;否则变量;否则,需要使用,

16、需要使用强制类型转换强制类型转换运算符运算符。long bigValue = 99L;int squashed = bigValue; / Wrongint squashed = (int) bigValue; / OKint squashed = 99; / default integer literaldouble z = 12.414F; / 12.414F is float, OKfloat z1 = 12.414; / 12.414 is double, illegalJava程序设计实用教程(第4版)2.1.4 运算符与表达式运算符与表达式强制类型转换符强制类型转换符(数据类型数据

17、类型) 表达式表达式条件运算符条件运算符表达式表达式1 ? 表达式表达式2 : 表达式表达式3括号运算符括号运算符:()、字符串连接运算符:字符串连接运算符:+System.out.println(max = +max);点运算符:点运算符:.对象运算符:对象运算符:instanceof new运算符运算符Java程序设计实用教程(第4版)(ch=0 & ch=a & ch=100) & (n=100) if (n=999)【习题习题】 将将3个整数按从小到大的顺序输出。个整数按从小到大的顺序输出。Java程序设计实用教程(第4版)2. switch语句语句switch

18、 (表达式表达式) case 常量表达式常量表达式1: 语句序列语句序列1; break; case 常量表达式常量表达式2: 语句序列语句序列2; break; default: 语句序列语句序列;注注:和和必须是整数或者字符类型,必须是整数或者字符类型,并且两者的数据类型必须一致。并且两者的数据类型必须一致。JDK7支持支持String类型。类型。Java程序设计实用教程(第4版)2.2.3 循环语句循环语句1.while语句语句while语句语法语句语法while (布尔表达式布尔表达式) 语句语句;while语句循环执行次数语句循环执行次数问题讨论问题讨论 先判断,后执行先判断,后执行

19、Java程序设计实用教程(第4版)2. do-while语句语句1.do-while语句语法语句语法do 语句语句; while (布尔表达式布尔表达式);2.do-while语句循环执行次数问题讨论语句循环执行次数问题讨论 先执行,后判断先执行,后判断【例例2.3】 计算计算Fibonacci序列。序列。Java程序设计实用教程(第4版)3. for语句语句1.for语句语法语句语法for (表达式表达式1; 表达式表达式2; 表达式表达式3 ) 语句语句;2.for语句循环执行次数问题讨论语句循环执行次数问题讨论 先判断,后执行先判断,后执行3.使用使用for语句需要注意的问题语句需要注意

20、的问题【例例2.4】 求一个日期(年月日)对应的是星期几。求一个日期(年月日)对应的是星期几。Java程序设计实用教程(第4版)4. 多重循环多重循环二重循环:二重循环:【习题习题】 输出九九乘法表。输出九九乘法表。演示演示for-for的两重循环结构。的两重循环结构。 【习题习题】 求求100以内的素数。以内的素数。演示演示while与与do-while语句构成的二重循环语句构成的二重循环结构。结构。 Java程序设计实用教程(第4版)2.2.4 转移语句转移语句1.return语句语句return 返回值返回值;2.break语句和语句和continue语句语句break; /退出循环退出

21、循环continue; /继续循环继续循环Java程序设计实用教程(第4版)int n = 1;while (n = 10) if (n % 3 = 0) continue; System.out.print( + n); n+;Java程序设计实用教程(第4版)2.3 数组数组1.2.3.1 一维数组一维数组2.2.3.2 二维数组二维数组特性特性引用数据类型引用数据类型 动态数组动态数组 Java程序设计实用教程(第4版)2.3 数组数组1.Java数组是引用数据类型,一个数组数组是引用数据类型,一个数组变量采用引用方式保存多个数组元素。变量采用引用方式保存多个数组元素。2.Java数组元

22、素可以是基本数据类型,数组元素可以是基本数据类型,也可以是引用类型。也可以是引用类型。3.Java数组都是动态数组,在声明数组数组都是动态数组,在声明数组变量之后,使用变量之后,使用new运算符申请数组运算符申请数组的存储空间。的存储空间。Java程序设计实用教程(第4版)2.3.1 一维数组一维数组1.声明一维数组变量声明一维数组变量数据类型数据类型 数组数组 或或 数据类型数据类型 数组数组int a; 或或 int a;2.使用使用new为数组分配空间为数组分配空间数组数组 = new 数据类型数据类型长度长度a = new int5;int a = new int5; 数组长度数组长度

23、length数组数组.lengthJava程序设计实用教程(第4版)2.3.1 一维数组一维数组数组元素的表示及运算数组元素的表示及运算数组数组下标下标(注意:数组下标越界异常,注意:数组下标越界异常,0a.length-1)a0,a1,a2,a3,a4 ai = ai-2+ai-1;/数组元素能够参加运算数组元素能够参加运算 数组声明时赋初值数组声明时赋初值int a=1,2,3,4,5;数组元素的初始化数组元素的初始化【例例2.5】 用一维数组计算用一维数组计算Fibonacci序列值。序列值。【习题习题】 “筛选法筛选法”求素数。求素数。Java程序设计实用教程(第4版)图图2.10 一

24、维数组一维数组 注意注意:Java对所有使用对所有使用new运算符动态分配的存储运算符动态分配的存储单元都进行单元都进行初始化初始化,如表,如表2-8。Java程序设计实用教程(第4版)7. for语句作用于数组的逐元循环语句作用于数组的逐元循环for (类型类型 变量变量 : 数组数组)for (int value : fib) /vaue获得获得fib数组每个元素,数组每个元素, /相当于相当于fibi System.out.print( +value);Java程序设计实用教程(第4版)8. 数组的引用模型数组的引用模型基本数据类型变量的传值赋值基本数据类型变量的传值赋值Java程序设计

25、实用教程(第4版)数组变量的引用赋值数组变量的引用赋值Java程序设计实用教程(第4版)数组的复制数组的复制(1)两个数组指向同一个元素空间。例如:)两个数组指向同一个元素空间。例如:int num_1 = 1, 2, 3, 4, 5, 6;int num_2;num_2 = num_1;Java程序设计实用教程(第4版)(2)两个数组指向内容相同的两个元素空间。)两个数组指向内容相同的两个元素空间。如果要真正复制一个数组,使修改复制数组的值时,如果要真正复制一个数组,使修改复制数组的值时,不会影响到源数组的话,则需要定义一个和源数组长度相不会影响到源数组的话,则需要定义一个和源数组长度相同的

26、数组,然后再把源数组中的元素一一复制给新的数组。同的数组,然后再把源数组中的元素一一复制给新的数组。使用方法使用方法:System.arraycopy (Object src, int srcPos, Object dest, int destPos, int length)数组的复制数组的复制Java程序设计实用教程(第4版)2.3.2 二维数组二维数组1.声明二维数组声明二维数组int mat = new int 34; int mat = 1,2,3,4,5,6 ;二维数组元素表示格式如下:二维数组元素表示格式如下:二维数组二维数组下标下标1下标下标2matij /表示第表示第i行第行第

27、j列的数组元素列的数组元素Java程序设计实用教程(第4版)2. 二维数组的引用模型二维数组的引用模型int mat = new int mn; 数组每行、每列之间长度相同数组每行、每列之间长度相同Java程序设计实用教程(第4版)3. 不规则的二维数组不规则的二维数组数组每行、每列之间长度不同数组每行、每列之间长度不同Java程序设计实用教程(第4版)4. 静态初始化二维数组静态初始化二维数组(1)按照顺序依次给每个元素赋值。)按照顺序依次给每个元素赋值。 例如给数组例如给数组results赋值:赋值: int results; results = new int23; results00

28、= 67; results01 = 97; results02 = 100; results10 = 89; results11 = 73; results12 = 65;(2)在定义数组的同时直接给数组赋初值。)在定义数组的同时直接给数组赋初值。例如:例如:int results = 67,97,100 , 89,73,65 ; Java程序设计实用教程(第4版)5. 二维数组的长度二维数组的长度二维数组的长度是指行数的个数,二二维数组的长度是指行数的个数,二维数组每行的长度是指每行的元素个数。维数组每行的长度是指每行的元素个数。例如:例如:results.length表示二维数组表示二维数

29、组results的长度,也就是行数;的长度,也就是行数;results i.length表示二维数组表示二维数组results第第i行的长行的长度,也就是元素个数。度,也就是元素个数。Java程序设计实用教程(第4版)思考题:如何申请以下二维数组?思考题:如何申请以下二维数组?int create(int n) Java程序设计实用教程(第4版)int create(int n) int newArray; newArray = new intn; for(int i=0; inewArray.length; i+) newArrayi = new inti+1; return newArra

30、y;Java程序设计实用教程(第4版)2.4 静态方法静态方法1.2.4.1 方法声明与调用方法声明与调用2.2.4.2 参数传递参数传递3.2.4.3 方法重载方法重载4.2.4.4 递归方法递归方法Java程序设计实用教程(第4版)2.4.1 方法声明与调用方法声明与调用1.方法声明方法声明修饰符修饰符 返回值类型返回值类型 方法方法(参数列表参数列表) 语句序列语句序列; return 返回值返回值;2.方法调用方法调用方法方法(参数列表参数列表)3.声明声明main方法方法public static void main(String args)Java程序设计实用教程(第4版)2.4.

31、2 参数传递参数传递方法调用时的参数传递原则方法调用时的参数传递原则基本数据类型参数传递值;基本数据类型参数传递值;引用数据类型参数传递引用。引用数据类型参数传递引用。public static void selectsort(int value) Java程序设计实用教程(第4版)2.4.3 方法重载方法重载void print(boolean b)void print(char c)void print(int i)void print(double d)重载的含义,重载的含义,Math.abs()方法声明有方法声明有4种:种:int abs(int a)long abs(long a)f

32、loat abs(float a)double abs(double a)Java程序设计实用教程(第4版)2.5 字符串字符串1.Java中的字符串也是类。中的字符串也是类。2.定长字符串:定长字符串:String类(效率较高)类(效率较高)l不能更改不能更改3.可变字符串:可变字符串:StringBuffer类类(使用灵活)使用灵活)l可追加、插入、修改,但内存管理复杂可追加、插入、修改,但内存管理复杂Java程序设计实用教程(第4版)2.5 字符串字符串2.5.1 字符串的基本数据类型特性字符串的基本数据类型特性1.字符串常量字符串常量 “abc” 2.创建字符串变量创建字符串变量lSt

33、ring s = “abc”;lString s = new String(“abc”);lStringBuffer dest = new StringBuffer(len);3.字符串运算字符串运算赋值运算赋值运算String str = abc;String str2 = str;连接运算连接运算 + +=str = abc + xyz; /str的值为的值为abcxyz“字符串不是字符数组字符串不是字符数组Java程序设计实用教程(第4版)图图2.21 字符串的引用模型字符串的引用模型Java程序设计实用教程(第4版)2.5.2 字符串的类特性字符串的类特性字符串变量字符串变量.方法方法

34、(参数列表参数列表)lint length( ):求字符串的长度求字符串的长度lchar charAt(int index):返回指定位置处的字符返回指定位置处的字符lString subString(int begin, int end):返回指定头尾返回指定头尾的字符子串的字符子串lBoolean equals(Object obj):比较字符串是否相等:比较字符串是否相等lStatic String format(String format,Object args):获得指定格式字符串获得指定格式字符串Java程序设计实用教程(第4版)字符串的常用操作字符串的常用操作1.字符串的访问操作

35、字符串的访问操作charAt(i):要循环获得字符串里的所有字符,循要循环获得字符串里的所有字符,循环应当从环应当从0开始开始String myStr2 = new String (五岳归来不看山五岳归来不看山);for (int i = 0; i myStr2.length(); i+) System.out.println(myStr2.charAt(i); subString(head, tail): StringBuffer myStr2 = new StringBuffer(五岳归来不看山五岳归来不看山); String subStr = myStr2.substring(2, 6);Java程序设计实用教程(第4版)字符串的常用操作字符串的常用操作字符串的连接字符串的连接-对对String 用用“+”:String s=“He is”+age+”years old

温馨提示

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

评论

0/150

提交评论