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

下载本文档

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

文档简介

1、复 习,Java的发展过程 Java应用程序的两种形式 Applet与application Java包 Java开发工具:JDK和Eclipse,第2章 Java语言基础,2.1 语言成分 2.2 流程控制语句 2.3 数组 2.4 静态方法 2.5 字符串,第2章 Java语言基础,内容和要求: 掌握Java语言的基本语法成分。注意与C/C+不同之处。 掌握数组类型和字符串的使用方法。 掌握Java语言的方法声明和调用规则,掌握方法参数和返回值的传递规则。 重点:数组的引用模型;使用静态方法,引用类型作为方法的参数和返回值,字符串。 难点:位运算,二进制;递归算法。,2.1 语言成分,2.

2、1.1 标识符与关键字 2.1.2 基本数据类型 2.1.3 变量与常量 2.1.4 运算符与表达式,2.1.1 标识符与关键字,关键字 标识符 分隔符 注释 程序书写风格,关键字(P375附录B),关键字是由Java语言定义的、具有特定含义的单词。定义标识符时要避免使用这些词。,标识符,标识符是用户定义的单词,用于命名变量、常量、类、对象、方法等。,图2.1 Java标识符的语法图,下列哪个是合法的Java标识符( )? A、Tree); 数据的分隔符是逗号(,)等。,注释,三种注释格式: / 单行注释 /* 多行注释* 一段注释,它跨越了多个行*/ /* 文档注释 用于从源代码自动生成文档

3、 */ 注:执行JDK中的javadoc命令,可根据源代码中的内容生成Web文档。,2.1.2 基本数据类型,什么是数据类型 数据类型分类 基本数据类型:8种 引用数据类型:3种 数组、类(class)和接口(interface),整数类型byte(1),short(2),int(4),long(8) 浮点数类型float(4),double(8字节) 布尔类型boolean(true,false) 字符类型char(u0000uFFFF ),基本数据类型,引用数据类型,引用类型:数组,类 class,接口interface。 引用数据类型的变量保存包括地址的引用信息。,public clas

4、s MyDate private int day = 1; private int month = 1; private int year = 2000; public MyDate( int day, int month, int year) . public void print() . class TestMyDate public static void main( String args) MyDate my_ birth = new MyDate( 22, 7, 1964); ,引用数据类型,创建一个类对象: MyDate my_ birth = new MyDate( 22, 7

5、, 1964);,2.1.3 变量与常量,变量 - 先声明,后使用 变量声明 修饰符 类型 变量 = 表达式 , 变量= 表达式 例如:int i, j; 变量参与的运算和操作 最终变量 final int value; value=100;,常量 直接常量和符号常量 常量声明 final int MAX=10;,变量的作用域,变量的作用域指明可访问该变量的一段代 码按作用域来分,变量可以有下面几种: 成员变量 Member variable 方法参变量 Method parameter 局部变量 Local variable 异常处理参变量 Exception-handler paramet

6、er,2.1.4 运算符与表达式,运算符 算术运算符:+(正)、-(负)、+(自增)、-(自减) 、+(加)、-(减)、*(乘) 、/(除)、%(取余) 【例2.1】 求明天是星期几。 关系运算符:=、!=、=、(右移位)、(无符号右移位),图2.3 整数 int squashed = bigValue; / Wrong int squashed = (int) bigValue; / OK int squashed = 99; / default integer literal double z = 12.414F; / 12.414F is float, OK float z1 = 12.

7、414; / 12.414 is double, illegal,2.1.4 运算符与表达式,强制类型转换符 (数据类型) 表达式 条件运算符 表达式1 ? 表达式2 : 表达式3 括号运算符:()、 字符串连接运算符:+ System.out.println(max = +max); 点运算符:. 对象运算符:instanceof new运算符,(ch=0 ,图2.4 数值类型的兼容关系,5. 运算的正确性判断,byte b=127; b+; /b=-128,数据溢出 b+1 /128,int,2.2 流程控制语句,2.2.1 顺序结构语句 2.2.2 选择语句 2.2.3 循环语句 2.2

8、.4 转移语句,图2.6 语句分类,2.2.1 顺序结构语句,赋值语句 变量=表达式; 空语句 复合语句 变量声明或常量声明; 语句序列; ,注意:Java没有以下表达式语句。 表达式;,2.2.2 选择语句,if语句 if语句的语法格式 if ( 布尔表达式 ) 语句1; else 语句2;,1. if语句,复合条件 if (n=100) break; case 常量表达式2: 语句序列2; break; default: 语句序列; 注:和必须是整数或者字符类型,并且两者的数据类型必须一致。JDK7支持String类型。,2.2.3 循环语句,while语句 while语句语法 while

9、 (布尔表达式) 语句; while语句循环执行次数问题讨论 先判断,后执行,2. do-while语句,do-while语句语法 do 语句; while (布尔表达式); do-while语句循环执行次数问题讨论 先执行,后判断 【例2.3】 计算Fibonacci序列。,3. for语句,for语句语法 for (表达式1; 表达式2; 表达式3 ) 语句; for语句循环执行次数问题讨论 先判断,后执行 使用for语句需要注意的问题 【例2.4】 求一个日期(年月日)对应的是星期几。,4. 多重循环,二重循环: 【习题】 输出九九乘法表。 演示for-for的两重循环结构。 【习题】

10、求100以内的素数。 演示while与do-while语句构成的二重循环结构。,2.2.4 转移语句,return语句 return 返回值; break语句和continue语句 break; /退出循环 continue; /继续循环,int n = 1; while (n = 10) if (n % 3 = 0) continue; System.out.print( + n); n+; ,2.3 数组,2.3.1 一维数组 2.3.2 二维数组 特性 引用数据类型 动态数组,2.3 数组,Java数组是引用数据类型,一个数组变量采用引用方式保存多个数组元素。 Java数组元素可以是基本

11、数据类型,也可以是引用类型。 Java数组都是动态数组,在声明数组变量之后,使用new运算符申请数组的存储空间。,2.3.1 一维数组,声明一维数组变量 数据类型 数组 或 数据类型 数组 int a; 或 int a; 使用new为数组分配空间 数组 = new 数据类型长度 a = new int5; int a = new int5; 数组长度length 数组.length,2.3.1 一维数组,数组元素的表示及运算 数组下标(注意:数组下标越界异常,0a.length-1) a0,a1,a2,a3,a4 ai = ai-2+ai-1;/数组元素能够参加运算 数组声明时赋初值 int

12、a=1,2,3,4,5; 数组元素的初始化 【例2.5】 用一维数组计算Fibonacci序列值。 【习题】 “筛选法”求素数。,图2.10 一维数组,注意:Java对所有使用new运算符动态分配的存储单元都进行初始化,如表2-8。,7. for语句作用于数组的逐元循环,for (类型 变量 : 数组) for (int value : fib) /vaue获得fib数组每个元素, /相当于fibi System.out.print( +value);,8. 数组的引用模型,基本数据类型变量的传值赋值,数组变量的引用赋值,数组的复制,(1)两个数组指向同一个元素空间。例如: int num_1

13、 = 1, 2, 3, 4, 5, 6; int num_2; num_2 = num_1;,(2)两个数组指向内容相同的两个元素空间。 如果要真正复制一个数组,使修改复制数组的值时,不会影响到源数组的话,则需要定义一个和源数组长度相同的数组,然后再把源数组中的元素一一复制给新的数组。使用方法: System.arraycopy (Object src, int srcPos, Object dest, int destPos, int length),数组的复制,2.3.2 二维数组,声明二维数组 int mat = new int 34; int mat = 1,2,3,4,5,6 ; 二

14、维数组元素表示格式如下: 二维数组下标1下标2 matij /表示第i行第j列的数组元素,2. 二维数组的引用模型,int mat = new int mn; 数组每行、每列之间长度相同,3. 不规则的二维数组,数组每行、每列之间长度不同,4. 静态初始化二维数组,(1)按照顺序依次给每个元素赋值。 例如给数组results赋值: int results; results = new int23; results00 = 67; results01 = 97; results02 = 100; results10 = 89; results11 = 73; results12 = 65; (2

15、)在定义数组的同时直接给数组赋初值。 例如:int results = 67,97,100 , 89,73,65 ;,5. 二维数组的长度,二维数组的长度是指行数的个数,二维数组每行的长度是指每行的元素个数。 例如:results.length表示二维数组results的长度,也就是行数;results i.length表示二维数组results第i行的长度,也就是元素个数。,思考题:如何申请以下二维数组?,int create(int n),int create(int n) int newArray; newArray = new intn; for(int i=0; inewArray.

16、length; i+) newArrayi = new inti+1; return newArray; ,2.4 静态方法,2.4.1 方法声明与调用 2.4.2 参数传递 2.4.3 方法重载 2.4.4 递归方法,2.4.1 方法声明与调用,方法声明 修饰符 返回值类型 方法(参数列表) 语句序列; return 返回值; 方法调用 方法(参数列表) 声明main方法public static void main(String args),2.4.2 参数传递,方法调用时的参数传递原则 基本数据类型参数传递值; 引用数据类型参数传递引用。 public static void selec

17、tsort(int value),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) float abs(float a) double abs(double a),2.5 字符串,Java中的字符串也是类。 定长字符串:String类(效率较高) 不能更改 可变字符串:StringBuffer类(使用灵活) 可追加、插入、修改,但内存管理复杂,2.5

18、字符串,2.5.1 字符串的基本数据类型特性 字符串常量 “abc” 创建字符串变量 String s = “abc”; String s = new String(“abc”); StringBuffer dest = new StringBuffer(len); 字符串运算 赋值运算 String str = abc; String str2 = str; 连接运算 + += str = abc + xyz; /str的值为abcxyz“ 字符串不是字符数组,图2.21 字符串的引用模型,2.5.2 字符串的类特性,字符串变量.方法(参数列表) int length( ):求字符串的长度

19、char charAt(int index):返回指定位置处的字符 String subString(int begin, int end):返回指定头尾的字符子串 Boolean equals(Object obj):比较字符串是否相等 Static String format(String format,Object args):获得指定格式字符串,字符串的常用操作,字符串的访问操作 charAt(i):要循环获得字符串里的所有字符,循环应当从0开始 String myStr2 = new String (五岳归来不看山); for (int i = 0; i myStr2.length(

20、); i+) System.out.println(myStr2.charAt(i); subString(head, tail): StringBuffer myStr2 = new StringBuffer(五岳归来不看山); String subStr = myStr2.substring(2, 6);,字符串的常用操作,字符串的连接 -对String 用“+”:String s=“He is”+age+”years old.”; 用方法concat(字符串): String s=“He is a”; String t=s.concat(“boy.”); -对StringBuffer 用方法append(字符串): String s=new StringBuffer(“He is

温馨提示

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

最新文档

评论

0/150

提交评论