Java结构化程序设计元素.ppt

上传人:max****ui 文档编号:6362888 上传时间:2020-02-23 格式:PPT 页数:45 大小:511.31KB
返回 下载 相关 举报
Java结构化程序设计元素.ppt_第1页
第1页 / 共45页
Java结构化程序设计元素.ppt_第2页
第2页 / 共45页
Java结构化程序设计元素.ppt_第3页
第3页 / 共45页
点击查看更多>>
资源描述
第2讲 结构化程序设计元素 1Java程序的构成2关键字 标识符 数据类型3常量与变量4运算符5控制流程6数组7字符串 面向对象的编程也是以面向过程编程为基础而发展起来的 因为在对象的方法等程序片内部 仍然需要严格遵守传统的结构化程序设计原则 因此 熟练掌握结构化程序设计的三种基本流程是进一步学习Java面向对象程序设计的基础 1Java程序的构成 Java语言的源程序代码由一个或多个编译单元组成 每个编译单元可包含三个要素 1 一个包声明 packagestatement 可选 2 任意数量引入语句 importstatements 3 类的声明 classdeclarations 和接口声明 interfacedeclarations 该三要素必须以上述顺序出现 也就是说任何引入语句出现在所有类定义之前 如果使用包声明 则包声明必须出现在类和引入语句之前 每个Java的编译单元可包含多个类或接口 但是每个编译单元最多只能有一个类或者接口是公共的 定义包语句 package 无名包包与类的存放路径包中间类的引用与执行 引入包语句 import 所引用的包的位置lang包常见的其他包 utilawtjavax swingnet applet 2关键字 标识符 数据类型 关键字对Java编译器有特殊的含义 它们可标识数据类型名或程序构造 construct 名 1 true false和null为小写 而不是象在C 语言中那样为大写 严格地讲 它们不是关键字 而是文字 然而 这种区别是理论上的 2 无sizeof运算符 因为所有数据类型的长度和表示是固定的 与平台无关 不是象在C语言中那样数据类型的长度根据不同的平台而变化 这正是Java语言的一大特点 3 goto和const不是Java编程语言中使用的关键字 标识符 在Java编程语言中 标识符是赋予变量 类或方法的名称 变量 函数 类和对象的名称都是标识符 程序员需要标识和使用的东西都需要标识符 标识符可从一个字母 下划线 或美元符号 开始 随后也可跟数字 字母 下划线或美元符号 标识符是区分大小写 没有长度限制 可以为标识符取任意长度的名字 下面是几个非法的变量名 3max 变量名不能以数字开头 room 包含非法字符 class class 为保留字 下面是几个有效的标识符 identifierthisoneUserNameUser name system varl max Java编程语言有八个原始数据类型 可分为以下四种 1 逻辑类booleanboolean数据类型有两种文字值 true和false 注意在Java编程语言中boolean类型只允许使用boolean值 在整数类型和boolean类型之间无转换计算 在C语言中允许将数字值转换成逻辑值 这在Java编程语言中是不允许的 数据类型 2 字符类char使用char类型可表示单个字符 字符是用单引号括起来的一个字符 如 a B 等 Java中的字符型数据是16位无符号型数据 它表示Unicode集 而不仅仅是ASCII集 与C语言类似 Java也提供转义字符 以反斜杠 开头 将其后的字符转变为另外的含义 数据类型 值得注意的一点是 用双引号引用的文字 就是我们平时所说的字符串类型不是原始类型 而是一个类 class String 它被用来表示字符序列 字符本身符合Unicode标准 且上述char类型的转义字符适用于String 3 整数类byte short int long在Java编程语言中有四种整数类型 每种类型可使用关键字byte short int和long中的任意一个进行声明 所有Java编程语言中的整数类型都是带符号的数字 不存在无符号整数 整数类型的文字可使用十进制 八进制和十六进制表示 首位为 0 表示八进制的数值 首位为 0 x 表示16进制的数值 请看下面的例子 5表示十进制值5075表示八进制数值75 也就是十进制数61 0 x9ABC表示十六进制的数值9ABC 也就是十进制数39612 整数类缺省为int类型 如在其后有一个字母 L 表示一个long值 也可以用小写 l 由于小写 l 与数字 1 容易混淆 因而 建议大家采用大写 L 4 浮点类double float在Java编程语言中有两种浮点类型 float和double 如果一个数包括小数点或指数部分 或者在数字后带有字母F或f float D或d double 则该数为浮点数 如果不明确指明浮点数的类型 浮点数缺省为double 下面是几个浮点数 3 14159 double型浮点数 2 08E25 double型浮点数 6 56f float型浮点数 在两种类型的浮点数中 float为32位 单精度 double为64位 双精度 也就是说double类型的浮点数具有更高的精度 在Java中 不同类型的数据既可以以常量的形式出现 也可以以变量的形式出现 常量就是指在程序执行期间其值不能发生变化的数据 常量是固定的 如整型常量123 实型常量1 23 字符常量 A 布尔常量true等 变量的值则是可以变化的 它的定义包括变量名 变量类型和作用域几个部分 注意以下几点 1 变量名必须是一个合法的标识符 变量名应具有一定的含义 以增加程序的可读性 2 变量类型可以为前面所说的任意一种数据类型 3 常量与变量 3 声明一个变量的同时也就指明了变量的作用域 变量的作用域指明可访问该变量的一段代码 按作用域来分 变量可以有下面几种 局部变量 类变量 方法参数 例外处理参数 局部 local 变量是在一个方法内定义的变量 也被称作自动 automatic 临时 temporary 或栈 stack 变量 当执行进入一个方法时 局部变量被创建 当执行离开该方法时 局部变量被清除 它的作用域为它所在的代码块 整个方法或方法中的某块代码 在成员函数内定义的变量对该成员变量是 局部的 因而 你可以在几个成员函数中使用相同的变量名而代表不同的变量 在一个确定的域中 变量名应该是唯一的 通常 一个域用大括号 和 来划定 4 下面是几个变量的声明 inta b c 定义a b c为int型变量doubled e 定义d e为double型变量floatf 2 5 g 5 8 定义f g为float型变量 并赋初值 5 在Java程序中声明变量后 需给该变量赋值 可用赋值语句来初始化变量 任何变量都不能没有初始值 否则 则无法通过编译 publicclassDatatype publicstaticvoidmain Stringargs bytea 120 shortb 250 intc 2200 longd 500000 chare 花 floatf 11111 111f doubleg 11111111 111 boolean男 true boolean女 false System out println a a System out println b b System out println c c System out println d d System out println e e System out println f f System out println g g System out println 男 男 System out println 女 女 4运算符 按照运算符功能来分 基本的运算符分包括算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 条件运算符等 算术运算算术运算符包括加号 减号 乘号 除号 取模 自增运算符 自减运算符 等 在算术运算中 有以下值得注意的地方 1 算术运算符的总体原则是先乘除 再加减 括号优先 2 整数除法会直接砍掉小数 而不是进位 3 与C语言不同 对取模运算符 来说 其操作数可以为浮点数 如 37 2 10 7 2 4 Java也用一种简写形式进行运算 并同时进行赋值操作 例如 为了将10加到变量x 并将结果赋给x 可用 x 10 5 Java对加运算符进行了扩展 使它能够进行字符串的连接 如 abc def 得到串 abcdef 6 前缀 与后缀 的区别 i 前缀 在使用i之前 使i的值加1 因此执行完 i后 整个表达式和i的值均为i 1 i 后缀 在使用i之后 使i的值加1 因此执行完i 后 整个表达式的值为i 而i的值变为i 1 7 由于取消了指针 有关地址运算符不再能够使用 如 8 增加了instanceof 运算符 9 引用符号 取消 5控制流程 在Java语言中 提供了很丰富的流程控制语言 包括选择控制语句 循环控制语句 跳转控制语句 if语句 格式1 if condition statement1 elsestatement2 格式2 if condition statement elseif condition statement elseif condition statement elsestatement switch语句 switch expression casevalue1 statementsequencebreak casevalue2 statementsequencebreak casevalueN statementsequencebreak default defaultstatementsequence 将括号里 expression 的值同每种情况列出的值做比较 若相等就执行后面的语句 若不等 就执行default语句 注意 表达式expression必须为byte short int或char类型 每个case语句后的值value必须是与表达式类型兼容的特定的一个常量 它必须为一个常量 而不是变量 重复的case值是不允许的 通常在每一种case情况后都应使用break语句 否则 第一个相等情况后面所有的语句都会被执行 这种情况被称为落空 循环语句 for循环while循环do while循环 for语句的格式 for initialization condition iteration body for语句的执行过程 1 当循环启动时 先执行其初始化部分即initialization 通常 这是设置循环控制变量值的一个表达式 作为控制循环的计数器 重要的是你要理解初始化表达式仅被执行一次 2 计算条件condition的值 条件condition必须是布尔表达式 它通常将循环控制变量与目标值相比较 如果这个表达式为真 则执行循环体body 如果为假 则循环终止 3 执行循环体的反复部分即iteration 这部分通常是增加或减少循环控制变量的一个表达式 4 接下来重复循环 首先计算条件condition的值 然后执行循环体 接着执行反复表达式 这个过程不断重复直到控制表达式变为假 while循环语句 while condition bodyofloop 判断控制表达式condition的值 当其是真时 while语句重复执行一个语句或语句块 其中条件condition可以是任何布尔表达式 只要条件表达式为真 循环体就被执行 当条件condition为假时 程序控制就传递到循环后面紧跟的语句行 若只有单个语句需要重复 大括号则是不必要的 do while循环语句 do bodyofloop while condition 先执行循环体 然后再计算条件表达式condition 如果表达式为真 则循环继续 否则 循环结束 对所有的Java循环都一样 条件condition必须是一个布尔表达式 跳转控制语句 break语句continue语句return语句 break语句 break 功能在switch语句中 它被用来终止一个语句序列 在循环体中能被用来退出一个循环 它能作为一种 变形 的goto语句来使用 continue语句 continue 功能在while和dowhile循环中 continue语句使控制直接转移给控制循环的条件表达式 然后继续循环过程 在for循环中 循环的反复表达式被求值 然后执行条件表达式 循环继续执行 对于这三种循环 任何中间的代码都将被绕过 return语句 return语句用来明确地从一个方法返回 也就是return语句使程序控制返回到调用它的方法 因此 将它分类到跳转语句中 在一个方法的任何时间 return语句可被用来使正在执行的分支程序返回到调用它的方法 Thisprogramdemonstratesreturnstatement classReturn publicstaticvoidmain Stringargs booleant true System out println Beforethereturn if t return returntocallerSystem out println Thiswon texecute 特别的流程控制 异常流程 try catch catch 6数组 1 数组声明 声明数组包括数组的名字 数组包含的元素的数据类型 声明一维数组有下列两种格式 数组元素类型数组名字 数组元素类型 数组名字 声明二维数组有下列两种格式 数组元素类型数组名字 数组元素类型 数组名字 创建数组声明数组仅仅是给出数组名字和元素的数据类型 要想真正的使用数组还必须为它分配内存空间 即创建数组 在为数组分配内存空间时必须指明数组的长度 为数组分配内存空间的格式如下 数组名字 new数组元素的类型 数组元素的个数 例如 boy newfloat 7 声明数组和创建数组可以一起完成 例如 floatboy newfloat 7 二维数组和一维数组一样 在定义之后必须用new运算符分配内存空间 例如 intmytwo mytwo newint 3 5 或intmytwo newint 3 4 一维数组通过下标符访问自己的元素 如boy 0 boy 1 等 需要注意的时下标从0开始 因此 数组若是8个元素 下标到7为止 importjava applet importjava awt publicclassExample5 1extendsApplet floata publicvoidinit a newfloat 5 a 0 23 9f a 1 34 9f a 2 45f a 3 56 98f a 4 100f publicvoidpaint Graphicsg g drawString a 0 a 0 a 1 a 1 a 2 a 2 a 3 a 3 a 4 a 4 12 12 注 有一个重要的表示数组长度 即元素的个数 的格式 比如 如果创建了floata newfloat 6 则a length的值为6 创建数组后 系统会给每个数组元素一个默认的值 如 float型是0 0 我们在声明数组时同时也还可以给数组的元素一个初始值 如 floatboy 12 3f 23 89f 2 0f 23f 578 98f 上述语句相当于 floatboy newfloat 5 然后 boy 0 12 3f boy 1 23 89f boy 2 2 0f boy 3 23f boy 4 578 98f 例如 Strings we are hello 123 who 初始值 7字符串 Java使用java lang包中的String类来创建一个字符串变量 因此字符串变量是类类型变量 是一个对象 1 字符串常量如 你好 1234 978 weqweo 2 声明字符串如 Strings 3 创建字符串使用String类的构造方法 string 字符串常量 例如 s newString wearestudents string还有两个比较常用的构造方法 1 String chara 用一个字符数组a创建一个字符串对象 2 String chara intstartIndex intendIndex 提取字符数组a中的一部分字符创建一个字符串对象 参数startIndex和endIndex分别指定在a中提取字符的起止位置 字符串与字符 字节数组 String类中有两个用字节数组创建字符串对象的构造方法 String byte 该构造方法使用平台默认的字符编码 用指定的字节数组构造一个字符串对象 String byte intoffset intlength 该构造方法使用平台默认的字符编码 用知道的字节数组的一部分 即从数组起始位置offset开始取length个字节构造一个字符串对象 String类有一个将字符串转化为字符数组的实例方法 publicbyte getBytes 使用平台默认的字符编码 将当前字符串转换为一个字节数组 publicclassExample publicstaticvoidmain Stringargs byteb newbyte 9 b 0 97 b 1 98 b 2 99 字母a的ASCII码值是97 b 3 100 b 4 101 b 5 102 b 6 g b 7 f b 8 h Strings b newString b Strings b 3 newString b 3 6 Strings c newString ABC Strings d newString 你我他 bytec s c getBytes byted s d getBytes System out println s b System out println s b 3 System out println 数组c的长度是 c length System out println 数组d的长度是 一个汉字占两个字节 d length System out println 用ASCII数值输出c for inti 0 i c length i System out println c i c i System out println 用ASCII数值对应的字符输出数组c for inti 0 i c length i System out println c i char c i System out println 用ASCII数值输出数组d for inti 0 i d length i System out println d i d i 上述程序的输出结果 abcdefgfhdefgfh数组c的长度是 3数组d的长度是 一个汉字占两个字节 6用ASCII数值输出c c 0 65c 1 66c 2 67用ASCII数值对应的字符输出数组c c 0 Ac 1 Bc 2 C用ASCII数值输出数组d d 0 60d 1 29d 2 50d 3 46d 4 53d 5 5 作业 用从命令行输入数据的方式 写一个整数的排序算法 提示 字符串转化为整数的可以使用Integer parseInt Strings 进行
展开阅读全文
相关资源
相关搜索

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


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

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


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