Java技术与应用 -Java基本语法 (第3章) 西安交大 卫颜俊 2008年11月

Slides:



Advertisements
Similar presentations
Java技术与应用 -Java基本语法(第3~7章) 西安交大 卫颜俊 2007年4月
Advertisements

Java程序设计 第6章 异 常 处 理.
第3章 运算符、表达式与语句 本章导读 1、算术运算符和算术表达式 2、关系运算符与关系表达式 3、逻辑运算符与逻辑表达式
第二章 JAVA语言基础.
第三章 控制结构.
Using C++ The Weird Way Something about c++11 & OOP tricks
程設一.
程式設計實作.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
Java基础 JavaSE异常.
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
第3章 語法入門 第一個Java程式 文字模式下與程式互動 資料、運算 流程控制.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
第 14 章 例外處理.
Java语言程序设计 第五部分 Java异常处理.
第6章 异常的捕获及处理 6.1 异常简介 6.2 异常类的继承结构 6.3 异常处理机制 6.4 异常处理 6.5 本章小结.
走进编程 程序的顺序结构(二).
辅导课程六.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
C语言程序设计基础 刘新国.
第二章 Java语言基础.
异常及处理.
Java程序设计 第2章 基本数据类型及操作.
第七章 操作符重载 胡昊 南京大学计算机系软件所.
第4章 PHP流程控制语句.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
第二章Java基本程序设计.
$9 泛型基础.
第7章 异常处理.
第二章 Java基本语法 讲师:复凡.
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
第4章 Excel电子表格制作软件 4.4 函数(一).
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
第九节 赋值运算符和赋值表达式.
3.16 枚举算法及其程序实现 ——数组的作用.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
学习目标 1、了解基本运算符 2、运算符优先级.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
第二章 Java基本语法 讲师:复凡.
C程序设计 实验二 数据类型、运算符和表达式 第6讲
Java程序设计 第17章 异常和断言.
第二章 Java基本语法 讲师:复凡.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
程序设计基础A(C语言) 第一章 C语言概述 主讲教师: 许 康
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
Chap 6 数据类型和表达式 6.1 数据的存储和基本数据类型 6.2 常量和变量 6.3 数据的输入和输出 6.4 类型转换
复习 标签(label)、文本框(text)控件 按钮:点击事件
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
3.7 Java的异常处理机制.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
基本知识 数据类型、变量、常量、运算符.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
第2章 Java语言基础.
鸡兔同笼(续) ——选择结构.
Java程序设计 第3章 控制语句.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
第二章 Java基础语法 北京传智播客教育
顺序结构程序设计 ——关于“字符串”和数值.
第9章 位 运 算.
第二章 Java基本语法 讲师:复凡.
第二章 简单数据类型 §2.1 数据类型概述 §2.2 变量和常量 §2.3 简单数据类型 §2.4 简单数据类型的相互转换
Presentation transcript:

Java技术与应用 -Java基本语法 (第3章) 西安交大 卫颜俊 2008年11月 电子信箱:Mr.Java@163.com 西安交大 卫颜俊 2008年11月 电子信箱:Mr.Java@163.com QQ: 610568018 网站: 202.117.58.97/java

主要内容 数据类型(Data Types) 运算符与表达式(Operator & Expression) 控制流程(Control Flow) 异常(Exception)

1. 数据类型(Data Types)

文字量与缺省类型

转义符 字符的五种表示方法: 使用 ’c’ ’我’ '\t'、'\\'、'\''、'\"'、'\r'、'\n'、'\b' 使用 (char)字符的十进制编码 比如:25105=’我’ 使用三位八进制数值加“\”前缀来表示ASCII码字符,格式为‘\xxx’ 比如:‘\45’=’%’ 使用四位十六进制数值加“\u”前缀来表示Unicode码字符,格式为‘\uxxxx‘ 比如:’\u6211’=’我’

常量、变量 合法标识符(包括汉字) 作用域  { } 成员,局部 赋初值

变量的赋值与引用赋值 【例3-1】变量赋值演示

变量的值传递与引用传递 【例3-2】参数传递演示

变量与初始化 对于对象实例变量,可以在定义时赋给初始值,也可以在构造方法中赋给初始值; 对于类静态变量可以在定义时或使用静态初始化器进行赋初始值,但不能在构造方法中赋给初始值。 P.57~P.58例子

常量与初始化 常量只能初始化一次 。 对于简单常量,其值不可修改。 对于数组常量,始终保持引用同一个数组,但数组元素值可以改变。 对于其它复杂变量总是对同一个对象的引用,但其内部状态值可以更改。 【例3-3】常量使用演示

2 .运算符与表达式

运算符是进行操作数(文字量、常量和变量)运算的符号表示。 表达式是将标识符、 关键字、符号和运算符连接起来的有意义的组合体。 包括:赋值、算术、关系、条件、逻辑和位运算符和表达式。

赋值运算符与表达式 = 变量赋值:x=84; 运算符表达式:y=(x*5)/6; 方法调用:height=building.getHeight(); 对象分配:Point point=new Point();

算术运算符与表达式 双目运算符 :加(+)、减(-)、乘(*)、除(/)和取余(%) 单目运算符 :正(+)、负(-)、加加(++)和减减(--) 【例3-4】“++”和“--”的使用 java.lange.Math类的作用

关系运算符与表达式 int x=3; boolean a=x<5; a的结果为true ==(等于)、!=(不等于)、<(小于)、<=(小于等于)、>(大于)和>=(大于等于)以及一种类型比较运算符:instanceof 举例: int x=3; boolean a=x<5; a的结果为true boolean b=x==5; b的结果为false boolean c=x!=x; c的结果为false boolean d=a==c; d的结果为true String s1="Java"; String s2="Java"; boolean e=s1==s2; e的结果为false boolean f=s1.equals(s2); f的结果为true

条件运算符与表达式 &&(与)、||(或)、!(反)、~(异或)、&(非简洁与)、|(非简洁或)和?: 【例3-6】条件运算符的使用

逻辑运算符与表达式 &(位与)、|(位或)、^(位异或)和~(位取反) 【例3-7】逻辑运算符的使用

移位运算符与表达式 >>(带符号右移)、<<(带符号左移)和>>>(无符号右移) 正整数的原码=反码=补码 负整数的反码=原码各位求反 负整数的补码=反码加1 【例3-8】位运算符的使用

简洁赋值运算符

复合运算符

运算符的优先级 从左到右进行,并遵守:括号 > 算术运算符 > 关系运算符和大部分逻辑运算符(除了!号) > 赋值运算符。 在表达式进行运算之前,首先会将其它数据类型转换为最大数据类型,最终结果以等号左边的变量类型为准。

3. 控制结构

顺序语句有:输入、计算赋值和输出语句 分支语句有:单分支if-else和多分支switch-case语句 循环语句有:while、do和for语句

顺序语句 标准输入语句(java.lang包中的System类中的静态成员变量in的方法read ) int read() 读一个字节或字符,返回0到255范围内的 int 字节值,如果没有可读字节,则返回-1。 int read(byte[] b) 读一个字节数组,读取一定数量的字节并将其存储在缓冲区数组b中,并以整数形式返回实际读取的字节数。 int read(byte[] b,int off,int len) 读一个字节数组并截取一部分,读取len个数据字节存入字节数组b,以整数形式返回实际读取的字节数。 java.util包中的Scanner类的nextT()方法 t nextT() 读下一个数。其中,T:Boolean、Byte、Char、double、Float、Int、Short和Long等,t:boolean、byte、char、double、float、int、short和long等。 String nextLine() 读下一行字符串

Scanner输入语句举例 Scanner sc = new Scanner(System.in); int x=sc.nextInt(); 【例3-9】根据输入的半径和高度,分别计算圆面积、圆柱全面积和圆锥侧面积。

输出语句 标准输出语句(java.lang包中的System类的out成员变量的方法print、println和write ) void print(T t) 输出指定数值 void println(T t) 输出指定数值并带换行 void write(int b) 输出指定的字节值 void write(byte[] buf, int off, int len) 输出len个字节,起始位置从数组的第off个元素开始。 格式化输出语句(System.out.printf方法) (java.util包中提供了Formatter类的format方法 ) PrintStream printf (String 格式字符串, Object... 参数); 举例: System.out.printf ("%4$s %3$s %2$s %1$s %4$s %3$s %2$s %1$s","a", "b", "c", "d"); //输出结果:"d c b a d c b a" System.out.printf ("%3d %x",23,34); //输出结果:" 23 12" System.out.printf ("%8.2f",3.14159); //输出结果:" 3.14"

分支语句 if ( 关系或条件表达式 ) 语句; if (关系或条件表达式) 语句1 else语句2; 嵌套分支语句 【例3-12】将学生成绩转换为五分制。 switch(数值表达式){// boolean、byte、short、char和int case 值1: 语句1; break; …… defalut: 其它语句; }

循环语句 while (关系或条件表达式) 语句; do 语句 while (关系或条件表达式); for(循环变量赋初始值;关系或条件表达式; 循环变量值的修正) 语句; for(变量修饰 变量类型 变量名:表达式) 举例: int[] a = {1, 3, 5, 7, 9}; int sum = 0; for (int x : a) sum += x; 【例3-17】查找2~n之间的素数的第2种做法

其它语句 标签语句 标签名: break语句 break;或break 标签名; 标签语句 标签名: break语句 break;或break 标签名; continue语句 continue;或continue标签名; return语句 return;或return表达式; exit语句 System.exit(状态值); 【例3-18】break、continue和标签的联合使用。

综合举例 【例3-21】猜数游戏。

异常处理

问题的起因 分母=0 负数开方 数组下标超界 类型转换(String ->int,float) 空对象引用 其它:类找不到,方法找不到,文件不存在,I/O,数据库,网络,安全性,…… ◆

异常处理机制之1-throw 当Java程序在运行过程中出现异常时,就会生成一个异常对象,并提交给运行系统,这种异常的产生和提交过程称为异常抛出(throw)。 ◆

异常处理机制之2-catch 当运行系统获得这个异常对象时,它就会沿着方法的调用顺序逐层回溯,去寻找处理这一异常对象的代码或方法。如果找到,运行系统会把当前这个异常对象交给这个方法进行处理,这一过程称为异常捕获(catch);反之,如果找不到合适的方法,运行系统将终止,相应的Java程序也将结束运行。 ◆

异常处理机制之3-throws 如果一个方法无法应对所出现的这个异常对象,还可以在方法声明部分中进行异常抛出声明(throws),将异常交给上一层方法来处理。程序员自己也可以首先定制异常和自行抛出异常,然后交给运行系统来处理。 ◆

异常层次 java.lang.Object java.lang.Throwable java.lang.Error java.lang.Exception java.lang.RuntimeException ◆

异常类介绍 Throwable 类 一般更多地考虑可检查的异常和一部分运行异常◆ 不可检查类 可检查类 Error类及其子类和RuntimeException类及其子类都是不可检查类,Error类称为错误类,RuntimeException类称为运行异常类,它为Exception类的子类, 可检查类 而其它Exception子类都是可检查类。 一般更多地考虑可检查的异常和一部分运行异常◆

Error的子类

Exception的子类

RuntimeException的子类

常用的异常类

问题的答案 分母=0 ArithmeticException 负数开方 ArithmeticException 数组下标超界 ArrayIndexOutOfBoundsException 类型转换 NumberFormatException 空指针 NullPointerException ◆

异常处理的格式 捕获异常 声明抛出异常(由JVM或Java类库生成) try{ //正常执行语句 }catch(异常类1 异常参数1){ //异常处理语句1 }catch(异常类2异常参数2){ //异常处理语句2 …… }catch(异常类n异常参数n){ //异常处理语句n }finally{ //收尾语句 } 声明抛出异常(由JVM或Java类库生成) 方法修饰符 返回类型 方法名(参数说明列表)  throws  异常类列表{ 方法体 } 其中异常类列表可以是多个异常类名。 在main方法中使用throws则抛弃异常。 抛出异常 异常类名 异常对象名=new异常类名(); throw 异常对象名; ◆

问题的解决 使用异常处理 进行捕获和抛出 try catch finally throw throws ◆

用户自定义异常格式 系统类库中已定义好若干标准Exception子类用来处理一些常见异常

异常举例 【例3-19】只接受命令行参数的非零整数值,而对其它情况作为异常来处理。 可能会出现以下异常: ArithmeticException ArrayIndexOutOfBoundsException NumberFormatException Exception ◆

异常举例 【例3-20】异常的嵌套处理 。 算法说明: 当参数值为“除法”和"空指针"时,由运行系统自动抛出异常,而当参数值为“测试"时,由程序自己抛出异常,其它值为正常。 ◆

异常举例 【例3-22】将百分制转换为五分制,超过0和100的作为异常 。 ◆

本讲结束! 谢谢!