java入门详细讲解第二章.ppt_第1页
java入门详细讲解第二章.ppt_第2页
java入门详细讲解第二章.ppt_第3页
java入门详细讲解第二章.ppt_第4页
java入门详细讲解第二章.ppt_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

清华大学出版社 Java面向对象程序设计 第二章 Java语言基础 清华大学出版社 Java面向对象程序设计 主要内容 l基本数据类型 l表达式 l控制语句 l数组 清华大学出版社 Java面向对象程序设计 基本数据类型 清华大学出版社 Java面向对象程序设计 标识符 l定义:程序员对程序中的各个元素加以命名时使用的命名 记号称为标识符(identifier)。 lJava语言中,标识符是以字母,下划线“_”,美元符“$”开始 的一个字符序列,后面可以跟字母,下划线,美元符,数 字。例如,identifier,userName,User_Name,_sys_val , $change为合法的标识符,而2mail(数字开头)、 room#(非法字符)、class(关键字)、a-class(含有运算符) 都为非法的标识符。 清华大学出版社 Java面向对象程序设计 保留字 l概念:具有专门的意义和用途,不能当作一般的标识符 ,这些标识符称为保留字,也称为关键字。 ljava中的所有保留字(均用小写字母表示): abstract,break,byte,boolean,catch,case,class,char, continue,default, double,do,else,extends,false,final, float,for,finally,if,import, implements,int,interface, instanceof,long,native,new,null,package,private, protected,public,return,switch,synchronized,short,static, super,try,true,this,throw,throws,transient,volatile,void, while 。 清华大学出版社 Java面向对象程序设计 数据类型划分 java中的数据类型:简单类型和复合类型: l基本数据类型包括: 整数类型:byte, short, int, long 浮点类型:float,double 字符类型:char 布尔类型:boolean l复合数据类型包括: class(类) interface(接口) 数组 清华大学出版社 Java面向对象程序设计 常量和变量 变量的作用域 变量作用域举例 for (int i=0;i高 byte,short,char- int - long - float - double l自动类型转换规则 整型,实型,字符型数据可以混合运算。运算中,不同类型的数据先转化 为同一类型,然后进行运算,转换从低级到高级 。 清华大学出版社 Java面向对象程序设计 例如 Type methodA(byte x, double y) return (short)x / y * 2; Type的类型将为double。 操作数1类型操作数2类型转换后的类型 byte、short、charintint byte、short、char、intlonglong byte、short、char、int、longfloatfloat byte、short、char、int、long、float doubledouble 清华大学出版社 Java面向对象程序设计 数据类型转换强制类型转换 l强制类型转换: 高级数据要转换成低级数据,需用到强制类型转换,如: int i; byte b=(byte)i; /*把int型变量i强制转换为byte型*/ 清华大学出版社 Java面向对象程序设计 基本数据类型及其对应包装类 基本数据类型不是类,但Java提供了与简单类型对应的包装类 普通数据 类型 对应的包 装类 charCharacter byteByte shortShort intInteger longLong float Float doubleDouble 它们之间的相互转化方法为(以int和 Integer为例): 基本数据类型转化为类对象的方法是: 通过相应类的构造方法来完成。如 Integer vari = new Integer(5); 类对象转化为基本数据类型:如上面的 vari可以通过调用intValue()方法得到普 通数据类型的int值。 清华大学出版社 Java面向对象程序设计 引入这些类的目的: l基本数据类型不具有一些对象的特征,在一些场合不能使用,需要将 基本数据类型转为特定的类,进行适当处理后,再转化回来。 l实现不同数据类型的转化。 l这些类的静态属性中含有相应的范围。 清华大学出版社 Java面向对象程序设计 表达式 清华大学出版社 Java面向对象程序设计 表达式定义 l表达式是用运算符把操作数连接起来的式子,可分为算术表达式、关 系表达式、逻辑表达式、赋值表达式、条件表达式 l对各种类型的数据进行加工的过程称为运算,表示各种不同运算的符 号称为运算符,参与运算的数据称为操作数 l按操作数的数目来分,可有: 一元运算符:,(正数),(取负) 二元运算符:, instanceof(对象运算符) = 等 三元运算符:?: 清华大学出版社 Java面向对象程序设计 算术表达式 是由算术运算符和位运算符将操作数连接组成的表达式 算符运算 举例等效的运算 双目 运算 符 +加法a+b - 减法a-b * 乘法a*b / 除法a/b % 取余数a%b 单目 运算 符 + + 自增1a+或 +aa=a+1 -自减1a4a=a-1 -取反-aa=-a 清华大学出版社 Java面向对象程序设计 算术运算符优先级 顺序分组操作符规则 高 低 子表达式() 若有多重括号,首先计算最里面的 子表达式的值。若同一级有多对括 号,则从左到右计算。 单目操作符+,- 求单目变量自增自减值。 乘法操作符*,/,% 若一个表达式中有多个乘法操作符 ,那么从左到右计算。 加法操作符 +,- 若一个表达式中有多个加法操作符 ,那么从左到右计算 清华大学出版社 Java面向对象程序设计 算术表达式注意 l两个整数类型的数据做除法时,结果只保留整数部分。 l整数和浮点数都能进行取余运算。 l“/”运算符,当都为整数时,结果为整数,有一个为浮点,则为浮点数。 l自增/自减运算符只适用于变量,且位于运算符的哪一侧有不同效果。 lJava中的算术运算主要依赖于Math类的静态方法,例如: 取绝对值:Math.abs(Type i),Type可以为int、long、float、 double 对数取三角和反三角函数、对数和指数、乘方、开方 求两个数的最大最小值 得到随机数(random(),类型为double) 对浮点数进行处理:四舍五入(round)、ceil(取大值)、floor(取 小值) 清华大学出版社 Java面向对象程序设计 【例2.2】Math方法应用 【例2.3】取余运算 清华大学出版社 Java面向对象程序设计 关系表达式 l定义:利用关系运算符连接的式子称为关系表达式 l运算结果:是一个逻辑值“真”或“假”,在Java中用true表示“真”; 用false表示“假”。 算符含义示例(设x=6,y=8) 运算结果 =等于x=yflase !=不等于x!=ytrue 大于xyflase =大于等于x=yflase = x=y x=xy = x=y x=xy 赋值表达式各种复合赋值运算符 清华大学出版社 Java面向对象程序设计 各种位运算符 运算符运算举例 运算规则(设x=11010110, y=01011001,n=2) 运算结果 位反 x 将x按比特位取反 00101001 int j = i; /最高位取反后为正,j值为14 l6 3的结果为5 清华大学出版社 Java面向对象程序设计 条件表达式 l形式:布尔表达式1?表达式2 :表达式 表达式2和表达式3的类型必须相同。 l条件运算符的执行顺序是:先求解表达式1,若值为true则执行表达 式2,此时表达式2的值作为整个条件表达式的值,否则求解表达式3, 将表达式3的值作为整个条件表达式的值。 l在实际应用中,常常将条件运算符与赋值运算符结合起来,构成赋值 表达式,以替代比较简单的if/else语句。 l条件运算符的优先级高于赋值运算符,结合方式为“自右自左”。 【例2.6】 清华大学出版社 Java面向对象程序设计 运算符的优先级 l运算符的优先级决定了表达式中不同运算执行的先后次序。优先级 高的先进行运算,优先级低的后进行运算。在优先级相同的情况下 ,由结合性决定运算顺序。 l最基本的规律是:域和分组运算优先级最高,接下来依次是单目运 算,双目运算,三目运算,赋值运算的优先级最低。 清华大学出版社 Java面向对象程序设计 算符 描述 优先级 结合性 . () 域运算,数组下标,分组括号 1 最高 自左至右 + - - ! 单目运算 2 单目 右/左 new (type) 分配空间,强制类型转换 3 自右至左 * / % 算术乘、除、求余运算 4 双目 自左至右 (左结合性) + - 算术加减运算 5 位运算 6 = 小于/小于等于/大于/大于等于 7 = != 相等,不等 8 else statement2; if括号中的结果应该为布尔值,否则编译不会通过,例如如 果x与y是int类型,x=y是赋值语句,其结果不是布尔值,不能充 当布尔表达式;如果它们的类型本身为boolean,则x=y可以充当 if中的条件。 养成if后面无论是一句还是多句代码,都写的习惯 清华大学出版社 Java面向对象程序设计 分支语句举例 public class TestIf public static void main(String args) int x,y; x=7;y=1; if(x6) if(y6) System.out.println(“设备正常“); else System.out.println(“设备出错”); if(x6) if(y6) System.out.println(“设备正常 “); else System.out.println(“设备出错 “); 等价 清华大学出版社 Java面向对象程序设计 分支语句多分支语句 switch switch (expression) case value1 : statement1; break; case value2 : statement2; break; case valueN : statemendN; break; default : defaultStatement; 清华大学出版社 Java面向对象程序设计 多分支语句注意 表达式expression的返回值类型必须是这几种类型之一: byte,short ,int, char请注意是普通数据类型,而不是包装 类,如Short、Byte等,也不能是long、float或double。 case子句中的值valueN必须是常量,而且所有case子句中的 值应是不同的。 default子句是可选的。 break语句用来在执行完一个case分支后,使程序跳出switch 语句,即终止switch语句的执行(在一些特殊情况下,多个不 同的case值要执行一组相同的操作,这时可以不用break)。 清华大学出版社 Java面向对象程序设计 循环语句 l Java语言中提供的循环语句有: while语句、do-while语句、for语句。 while语句 初始化 while (条件表达式) 循环体 循环变量控制 条件表 达式 循环体 真 假 清华大学出版社 Java面向对象程序设计 do-while语句 初始化 do 循环体 循环变量控制 while (条件表达式) 注意:条件表达式中的结果应为布尔值,而不能为算术值。 例如while (y-) x-; 条件表达式 循环体 真 假 清华大学出版社 Java面向对象程序设计 for语句 for(表达式1(初始条件);表达式2( 结束条件); 表达式3 (循环变量控制)) 循环体 其流程逻辑关系如图所示 表达式2 循环体 真 假 表达式1 表达式3 清华大学出版社 Java面向对象程序设计 循环语句注意 for语句执行时,首先执行初始化操作,然后判断终止条件是否满足, 如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环 后,重新判断终止条件。 初始化、终止以及迭代部分都可以为空语句(但分号不能省),三者均为 空的时候,相当于一个无限循环。 在初始化部分和迭代部分可以使用逗号语句,来进行多个操作。逗号 语句是用逗号分隔的语句序列。 如果循环变量在for中定义,变量的作用范围仅限于循环体内 清华大学出版社 Java面向对象程序设计 循环语句举例 【例2.8】for循环结构逻辑测试 【例2.9】穷举法 清华大学出版社 Java面向对象程序设计 跳转语句 lJava语言提供了4种转移语句:break,continue,return和throw。 l转移语句的功能是改变程序的执行流程。 lbreak语句可以独立使用,而continue语句只能用在循环结构的循环 体中。 清华大学出版社 Java面向对象程序设计 break语句 break语句通常有下述不带标号和带标号的两种形式: lbreak; lbreak Lab; 其中:break是关键字;Lab是用户定义的标号。 break语句用在switch语句中,其作用是强制退出switch结构,执行switch 结构后的语句。 break语句用在单层循环结构的循环体中,其作用是强制退出循环结构。 若程序中有内外两重循环,而break语句写在内循环中,则执行break语句 只能退出内循环。 break lab语句用在循环语句中,必须在外循环入口语句的前方写上lab标 号,可以使程序流程退出标号所指明的外循环。 清华大学出版社 Java面向对象程序设计 【例2.10】编程打印1到100中的所有素数 break语句举例 清华大学出版社 Java面向对象程序设计 continue语句 continue语句只能用于循环结构中,其作用是使循环短路。 它有下述两种形式: continue; 或 continue lab; 其中:continue是关键字;Lab为标号。 continue语句也称为循环的短路语句。用在循环结构中,使 程序执行到continue语句时回到循环的入口处,执行下一次 循环,而使循环体内写在continue语句后的语句不执行。 当程序中有嵌套的多层循环时,为从内循环跳到外循环, 可使用带标号的continue lab语句。此时应在外循环的入口 语句前方加上标号。 清华大学出版社 Java面向对象程序设计 返回语句return lreturn语句从当前方法中退出,返回到调用该方法的语句处,并从紧 跟该语句的下一条语句继续程序的执行。 l返回语句有两种格式: return expression ; return; return语句通常用在一个方法体的最后,否则会产生编 译错误,除非用在if-else语句中。 【例2.11】 清华大学出版社 Java面向对象程序设计 数组 清华大学出版社 Java面向对象程序设计 数组的概念 l数组名是符合Java标识符定义规则的用户自定义标识符; l数组的维数用方括号“ ”的个数来确定,对于一维数组来 说,只需要一对方括号,二维就是; l数组元素的数据类型可以是Java的任何数据类型,例如: 基本类型(int、float、double、char等),类(class)或 接口(interface)等。 声明数组就是要确定数组名、维数和元素的数据类型 清华大学出版社 Java面向对象程序设计 l类型标识符 数组名; l类型标识符 数组名; 例如: int abc; String example; myClass mc ; 注:Java中的数组可以看作是一个对象。例如上面的 声明 如果进行了初始化,则看作两个对象,分别为abc 和example,它们有自己的属性,如length属性。 一维数组的声明格式 清华大学出版社 Java面向对象程序设计 使用关键字new可将数组看成一个特殊对象 格式如下: 类型标识符 数组名=new 类型标识符数组长度; 类型标识符 数组名=new 类型标识符数组长度; 一维数组三种初始化方法之一 清华大学出版社 Java面向对象程序设计 l产生一个有10个单元,类型为int的数组对象,所有单元的初值为0, abc = new int10; l产生一个具有10个单元,类型为String的数组对象,所有单元的初值 为null,不要写成 new String(10) ,example = new String10; l产生一个类型为myClass容纳10个myClass对象引用的数组对象,每 个单元值是null,mc = new myClass10; 一维数组初始化例子 注:1)不是产生10个myClass对象; 2)对象数组化的目的在于可以进行对象的遍历控制。 3)数组产生后的默认值同对象属性初始化默认值规定。 清华大学出版社 Java面向对象程序设计 直接在声明的时候进行定义及初始化,例如: String s=“ab“,“bc“,“cd“; int a = 3,4,5,6 对于对象数组: Integer results = new Integer(3), new Integer(5), new Integer(8); String dogs = new String(“Fido”),new String(“Spike”),new String(“Aiko”); 一维数组三种初始化方法之二 注:这种初始化方法只能写在声明代码中(“”内用 , 号分隔),下 面的写法是错误的:int a ; a= 3,4,5,6; 清华大学出版社 Java面向对象程序设计 采用1和2相结合方式进行初始化,例如: float f4 = new float 1.0f, 2.0f, 3.0f; float f4 ; f4= new float 1.0f, 2.0f, 3.0f; 注:此时float中的 不应该给出具体数字 一维数组三种初始化方法之三 清华大学出版社 Java面向对象程序设计 l 将数组整体看成一个对象,通过数组引用进行相应的操作: float fl, f2; /f1和f2就是数组声明 fl = new float10; /f1变为引用 f2 = f1; /引用赋值,f2和f1拥有相同的数组成员。 Object o = f1 /这样赋值也成立 l Java中数组的下标从0开始,如果数组越界,产生的异常为: IndexOutOfBoundsException (它继承RuntimeException) l 若定义数组大小为负数会产生NgativeArraySizeException(它继承 RuntimeException),但是数组长度可以为0(不是null) 数组引用 清华大学出版社 Java面向对象程序设计 二维数组的声明格式 l类型说明符 数组名 ; l类型说明符 数组名; 例如: int arr ; int arr; 清华大学出版社 Java面向对象程序设计 使用关键字new 格式如下: 数组名=new 类型说明符数组长度 ; 数组名=new 类型说明符数组长度 数组长度; 其中:对数组名、类型说明符和数组长度的要求与一 维数组一致。对于没有初始化的维度,其值为null。 二维数组二种初始化方法之一 清华大学出版社 Java面向对象程序设计 int arra; arra=new int34; 等价于: arra=new int3; 创建有3个元素的数组,各元素也是一个数组 arra0=new int4;创建arra0元素的数组,它有4个元素 arra1=new int4;创建arra1元素的数组,它有4个元素 arra2=new int4;创建arra2元素的数组,它有4个元素 也等价于: arra=new int3 for(int i=0;i3;i+) arrai=new

温馨提示

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

评论

0/150

提交评论