java入门详细讲解第二章.ppt

上传人:max****ui 文档编号:6359770 上传时间:2020-02-23 格式:PPT 页数:71 大小:702.31KB
返回 下载 相关 举报
java入门详细讲解第二章.ppt_第1页
第1页 / 共71页
java入门详细讲解第二章.ppt_第2页
第2页 / 共71页
java入门详细讲解第二章.ppt_第3页
第3页 / 共71页
点击查看更多>>
资源描述
第二章Java语言基础 主要内容 基本数据类型表达式控制语句数组 基本数据类型 标识符 定义 程序员对程序中的各个元素加以命名时使用的命名记号称为标识符 identifier Java语言中 标识符是以字母 下划线 美元符 开始的一个字符序列 后面可以跟字母 下划线 美元符 数字 例如 identifier userName User Name sys val change为合法的标识符 而2mail 数字开头 room 非法字符 class 关键字 a class 含有运算符 都为非法的标识符 保留字 概念 具有专门的意义和用途 不能当作一般的标识符 这些标识符称为保留字 也称为关键字 java中的所有保留字 均用小写字母表示 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中的数据类型 简单类型和复合类型 基本数据类型包括 整数类型 byte short int long浮点类型 float double字符类型 char布尔类型 boolean复合数据类型包括 class 类 interface 接口 数组 常量和变量 变量的作用域 变量作用域 举例 for inti 0 i 3 i System out println i System out println i 布尔类型 boolean 布尔型数据只有两个值true和false 且它们不对应于任何整数值 布尔型变量的定义如 booleanb true 有些语言 特别值得强调的是C和C 允许将数字值转换成逻辑值 这在Java编程语言中是不允许的 boolean类型只允许使用boolean值 字符类型 char 字符常量 字符常量是用单引号括起来的一个字符 如 a A 或是单引号所引的转义字符 或是形如 u 的Unicode形式的字符 其中 应严格按照四个16进制数字进行替换 Charch u10100 是错误的 而Charch ucafe 是正确的 还可用转义字符表示 如Charch 字符类型 转义字符 字符类型 转义字符表示 注意 必须用半角的单引号 而不能用全角的单引号 字符型变量 类型为char 它在机器中占16位 其范围为0 65535 a 实际上是一个数字 因此它可以赋值给一个数 例如floatf a inti a 它的取值范围为0 65535 Java使用Unicode字符集 这种字符集中每个字符用二个字节即16位表示 整型数据 整型常量 十进制整数 如123 456 0八进制整数 以0开头 如0123表示十进制数83 011表示十进制数 9 十六进制整数 以0 x或0 x开头 如0 x123表示十进制数291 0X12表示十进制数 18 整型变量的类型 两个整数相加 结果默认转化为int 赋值给byte或short时会发生类型转化问题 例如下面的代码b c的结果必须进行显式转化 publicstaticvoidmain String args byteb 27 bytec 26 byted byte b c 整型数据 Cont 注意 在选用整数类型上 一定要注意数的范围 否则可能由于数的类型选择不当而造成溢出 例如下面的代码add就存在着潜在的溢出问题 从而为程序带来Bugpublicintadd inta intb returna b 十六进制赋值注意事项inti 0 xFFFFFFF1 i的值为 15 因为最高为符号位 其它取反加1得到 15 浮点型 实型 实型常量 十进制数形式 由数字和小数点组成 且必须有小数点 如0 123 1 23 123 0科学计数法形式 如 123e3或123E3 其中e或E之前必须有数字 且e或E后面的指数必须为整数 在十进制和科学计数法常数后面可以跟 F 或 f 单精度 D 或 d 双精度 来表示float型或double的值 如1 23f 2 3e3D 如果后面没有跟任何修饰 它的类型为双精度 浮点型 实型变量的类型 定义一个float类型的浮点数方法给一个带小数的数后面加上f 包括科学计数法 将能隐式转化的数赋值给浮点变量 如char类型 整型 十进制 八进制 十六进制 字符串 字符串常量 用双引号来表示字符串常量 如 汉字 I mastudent 等 字符串变量 用String表示 String不是原始类型 而是一个类 class 它被用来表示字符序列 字符本身符合Unicode标准 且上述char类型的反斜线符号适用于String 与C和C 不同 String不能用 0 作为结束 基本数据类型举例 例2 1 数据类型转换 不同类型数据间的优先关系如下 低 高byte short char int long float double自动类型转换规则整型 实型 字符型数据可以混合运算 运算中 不同类型的数据先转化为同一类型 然后进行运算 转换从低级到高级 例如TypemethodA bytex doubley return short x y 2 Type的类型将为double 数据类型转换 强制类型转换 强制类型转换 高级数据要转换成低级数据 需用到强制类型转换 如 inti byteb byte i 把int型变量i强制转换为byte型 基本数据类型及其对应包装类 基本数据类型不是类 但Java提供了与简单类型对应的包装类 它们之间的相互转化方法为 以int和Integer为例 基本数据类型转化为类对象的方法是 通过相应类的构造方法来完成 如Integervari newInteger 5 类对象转化为基本数据类型 如上面的vari可以通过调用intValue 方法得到普通数据类型的int值 引入这些类的目的 基本数据类型不具有一些对象的特征 在一些场合不能使用 需要将基本数据类型转为特定的类 进行适当处理后 再转化回来 实现不同数据类型的转化 这些类的静态属性中含有相应的范围 表达式 表达式定义 表达式是用运算符把操作数连接起来的式子 可分为算术表达式 关系表达式 逻辑表达式 赋值表达式 条件表达式对各种类型的数据进行加工的过程称为运算 表示各种不同运算的符号称为运算符 参与运算的数据称为操作数按操作数的数目来分 可有 一元运算符 正数 取负 二元运算符 instanceof 对象运算符 等三元运算符 算术表达式 是由算术运算符和位运算符将操作数连接组成的表达式 算术运算符优先级 算术表达式 注意 两个整数类型的数据做除法时 结果只保留整数部分 整数和浮点数都能进行取余运算 运算符 当都为整数时 结果为整数 有一个为浮点 则为浮点数 自增 自减运算符只适用于变量 且位于运算符的哪一侧有不同效果 Java中的算术运算主要依赖于Math类的静态方法 例如 取绝对值 Math abs Typei Type可以为int long float double对数取三角和反三角函数 对数和指数 乘方 开方求两个数的最大最小值得到随机数 random 类型为double 对浮点数进行处理 四舍五入 round ceil 取大值 floor 取小值 例2 2 Math方法应用 例2 3 取余运算 关系表达式 定义 利用关系运算符连接的式子称为关系表达式运算结果 是一个逻辑值 真 或 假 在Java中用true表示 真 用false表示 假 判断某年是否为闰年 如果是闰年 它应能被4整除 但不能被100整除 或被100整除 也能被400整除 例2 4 关系表达式在 判断某年是否为闰年 中的应用 逻辑表达式 利用逻辑运算符将操作数连接的式子称为逻辑表达式逻辑表达式参与运算的都是布尔值 结果也是布尔值 逻辑表达式 注意 和 在执行操作时 运算符左右两边的表达式首先被运算执行 再对两表达式的结果进行与 或运算 而利用 和 执行操作时 如果从左边的表达式中得到操作数能确定运算结果 则不再对右边的表达式进行运算 采用 和 的目的是为了加快运算速度 但也要防止用法上出现的问题 如 例2 5 赋值表达式 赋值运算符组成的表达式称为赋值表达式 Java语言中 赋值运算符是 赋值运算符的作用是将赋值运算符右边的一个数据或一个表达式的值赋给赋值运算符左边的一个变量 注意赋值号左边必须是变量 即没有final修饰的变量 赋值运算的另一种形式是复合赋值运算符连接起来的表达式 赋值表达式 各种复合赋值运算符 各种位运算符 无符号的左移相当于乘2n 右移相当于除2ninti 0 xFFFFFFF1 intj i 最高位取反后为正 j值为146 3的结果为5 条件表达式 形式 布尔表达式1 表达式2 表达式表达式2和表达式3的类型必须相同 条件运算符的执行顺序是 先求解表达式1 若值为true则执行表达式2 此时表达式2的值作为整个条件表达式的值 否则求解表达式3 将表达式3的值作为整个条件表达式的值 在实际应用中 常常将条件运算符与赋值运算符结合起来 构成赋值表达式 以替代比较简单的if else语句 条件运算符的优先级高于赋值运算符 结合方式为 自右自左 例2 6 运算符的优先级 运算符的优先级决定了表达式中不同运算执行的先后次序 优先级高的先进行运算 优先级低的后进行运算 在优先级相同的情况下 由结合性决定运算顺序 最基本的规律是 域和分组运算优先级最高 接下来依次是单目运算 双目运算 三目运算 赋值运算的优先级最低 控制语句 控制语句 Java程序通过控制语句来执行程序流 完成一定的任务 Java中的控制语句有以下几类 分支语句 if else switch循环语句 while do while for与程序转移有关的跳转语句 break continue return例外处理语句 try catch finally throw注释语句 分支语句 条件语句if else if boolean expression statement1 elsestatement2 if括号中的结果应该为布尔值 否则编译不会通过 例如如果x与y是int类型 x y是赋值语句 其结果不是布尔值 不能充当布尔表达式 如果它们的类型本身为boolean 则x y可以充当if中的条件 养成if后面无论是一句还是多句代码 都写 的习惯 分支语句 举例 publicclassTestIf publicstaticvoidmain String args intx y x 7 y 1 if x 6 if y 6 System out println 设备正常 elseSystem out println 设备出错 if x 6 if y 6 System out println 设备正常 elseSystem out println 设备出错 等价 分支语句 多分支语句switch switch expression casevalue1 statement1 break casevalue2 statement2 break casevalueN statemendN break default defaultStatement 多分支语句 注意 表达式expression的返回值类型必须是这几种类型之一 byte short int char 请注意是普通数据类型 而不是包装类 如Short Byte等 也不能是long float或double case子句中的值valueN必须是常量 而且所有case子句中的值应是不同的 default子句是可选的 break语句用来在执行完一个case分支后 使程序跳出switch语句 即终止switch语句的执行 在一些特殊情况下 多个不同的case值要执行一组相同的操作 这时可以不用break 循环语句 Java语言中提供的循环语句有 while语句 do while语句 for语句 while语句 初始化 while 条件表达式 循环体循环变量控制 do while语句 初始化 do 循环体循环变量控制 while 条件表达式 注意 条件表达式中的结果应为布尔值 而不能为算术值 例如while y x for语句for 表达式1 初始条件 表达式2 结束条件 表达式3 循环变量控制 循环体 其流程逻辑关系如图所示 循环语句 注意 for语句执行时 首先执行初始化操作 然后判断终止条件是否满足 如果满足 则执行循环体中的语句 最后执行迭代部分 完成一次循环后 重新判断终止条件 初始化 终止以及迭代部分都可以为空语句 但分号不能省 三者均为空的时候 相当于一个无限循环 在初始化部分和迭代部分可以使用逗号语句 来进行多个操作 逗号语句是用逗号分隔的语句序列 如果循环变量在for中定义 变量的作用范围仅限于循环体内 循环语句举例 例2 8 for循环结构逻辑测试 例2 9 穷举法 跳转语句 Java语言提供了4种转移语句 break continue return和throw 转移语句的功能是改变程序的执行流程 break语句可以独立使用 而continue语句只能用在循环结构的循环体中 break语句 break语句通常有下述不带标号和带标号的两种形式 break breakLab 其中 break是关键字 Lab是用户定义的标号 break语句用在switch语句中 其作用是强制退出switch结构 执行switch结构后的语句 break语句用在单层循环结构的循环体中 其作用是强制退出循环结构 若程序中有内外两重循环 而break语句写在内循环中 则执行break语句只能退出内循环 breaklab语句用在循环语句中 必须在外循环入口语句的前方写上lab标号 可以使程序流程退出标号所指明的外循环 例2 10 编程打印1到100中的所有素数 break语句举例 continue语句 continue语句只能用于循环结构中 其作用是使循环短路 它有下述两种形式 continue 或continuelab 其中 continue是关键字 Lab为标号 continue语句也称为循环的短路语句 用在循环结构中 使程序执行到continue语句时回到循环的入口处 执行下一次循环 而使循环体内写在continue语句后的语句不执行 当程序中有嵌套的多层循环时 为从内循环跳到外循环 可使用带标号的continuelab语句 此时应在外循环的入口语句前方加上标号 返回语句return return语句从当前方法中退出 返回到调用该方法的语句处 并从紧跟该语句的下一条语句继续程序的执行 返回语句有两种格式 returnexpression return return语句通常用在一个方法体的最后 否则会产生编译错误 除非用在if else语句中 例2 11 数组 数组的概念 数组名是符合Java标识符定义规则的用户自定义标识符 数组的维数用方括号 的个数来确定 对于一维数组来说 只需要一对方括号 二维就是 数组元素的数据类型可以是Java的任何数据类型 例如 基本类型 int float double char等 类 class 或接口 interface 等 声明数组就是要确定数组名 维数和元素的数据类型 类型标识符数组名 类型标识符 数组名 例如 intabc String example myClass mc 注 Java中的数组可以看作是一个对象 例如上面的声明如果进行了初始化 则看作两个对象 分别为abc和example 它们有自己的属性 如length属性 一维数组的声明格式 使用关键字new 可将数组看成一个特殊对象格式如下 类型标识符数组名 new类型标识符 数组长度 类型标识符 数组名 new类型标识符 数组长度 一维数组 三种初始化方法之一 产生一个有10个单元 类型为int的数组对象 所有单元的初值为0 abc newint 10 产生一个具有10个单元 类型为String的数组对象 所有单元的初值为null 不要写成newString 10 example newString 10 产生一个类型为myClass容纳10个myClass对象引用的数组对象 每个单元值是null mc newmyClass 10 一维数组 初始化例子 注 1 不是产生10个myClass对象 2 对象数组化的目的在于可以进行对象的遍历控制 3 数组产生后的默认值同对象属性初始化默认值规定 直接在声明的时候进行定义及初始化 例如 String s ab bc cd int a 3 4 5 6 对于对象数组 Integerresults newInteger 3 newInteger 5 newInteger 8 String dogs newString Fido newString Spike newString Aiko 一维数组 三种初始化方法之二 注 这种初始化方法只能写在声明代码中 内用 号分隔 下面的写法是错误的 int a a 3 4 5 6 采用1和2相结合方式进行初始化 例如 floatf4 newfloat 1 0f 2 0f 3 0f floatf4 f4 newfloat 1 0f 2 0f 3 0f 注 此时float中的 不应该给出具体数字 一维数组 三种初始化方法之三 将数组整体看成一个对象 通过数组引用进行相应的操作 floatfl f2 f1和f2就是数组声明fl newfloat 10 f1变为引用f2 f1 引用赋值 f2和f1拥有相同的数组成员 Objecto f1 这样赋值也成立Java中数组的下标从0开始 如果数组越界 产生的异常为 IndexOutOfBoundsException 它继承RuntimeException 若定义数组大小为负数会产生NgativeArraySizeException 它继承RuntimeException 但是数组长度可以为0 不是null 数组引用 二维数组的声明格式 类型说明符数组名 类型说明符 数组名 例如 intarr int arr 使用关键字new格式如下 数组名 new类型说明符 数组长度 数组名 new类型说明符 数组长度 数组长度 其中 对数组名 类型说明符和数组长度的要求与一维数组一致 对于没有初始化的维度 其值为null 二维数组 二种初始化方法之一 intarra arra newint 3 4 等价于 arra newint 3 创建有3个元素的数组 各元素也是一个数组arra 0 newint 4 创建arra 0 元素的数组 它有4个元素arra 1 newint 4 创建arra 1 元素的数组 它有4个元素arra 2 newint 4 创建arra 2 元素的数组 它有4个元素也等价于 arra newint 3 for inti 0 i 3 i arra i newint 4 二维数组 初始化例子 二维数组 是用指定的初值对数组初始化 例如 int arr1 3 9 6 8 0 1 11 9 8 它等价于 int arr1 newint 3 arr1 0 newint 3 9 arr1 1 newint 8 0 1 arr1 2 newint 10 11 9 8 二维数组 二种初始化方法之二 也等价于 int arr1 newint 3 intarb1 3 9 intarb2 8 0 1 intarb3 10 11 9 8 arr1 0 arb1 arr1 1 arb2 arr1 2 arb3 注 对于二维数组 当只定义第一维维数时 另一维的维数可以不一样 也就是说不一定是规则的矩阵形式 例如 int arra arra newint 3 arra 0 newint 3 arra 1 newint 2 arra 2 newint 1 arra 2 13 编程打印如下图形 打印到8 3333333 3222223 3211123 3210123 3211123 3222223 3333333 分析 将数放置到数组当中 将数组中的数打印出来 二维数组 应用举例 二维数组 应用举例2 例 2 14 编程打印数字斜塔 136101525914481371211
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!