




已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主讲教师张智计算机学院软件工程系 2Java编程基础 2 1标识符与关键字2 2数据类型2 3运算符和表达式2 4包装类2 5控制台输入2 6控制语句2 7编程练习 2 1标识符与关键字 Java标识符是以字母 下划线 或美元符号 开头 随后跟随字母 下划线 美元符号 或数字 标识符是大小写区别对待的 标识符未规定最大长度 下列标识符是有效的 identifier userName User name sys varl change 标识符不能是关键字 例如 this是一个关键字不能作为标识符 Java关键字 注意 关键字和保留字都是小写 如true false 所有类型的长度和表示是固定的 不依赖执行 无sizeof运算符 保留字2个 goto和const Return 2 2数据类型 8个 true false 基本类型用法注意 整数类型 byte short int和long用法与C C 相同 如 17 十 017 八 0 x17 十六 17L 长整型 浮点数 float和double用法与C C 相同 如 3 14 3 02E23 2 718F 123 4D注意 floata 3 4F F 不能丢 floata 3 4 正确用法 doublea 3 4 数据格式的控制 方法1 String format 格式串 数值数据 方法2 System out printf 格式串 数值数据 示例 intn1 100 doubled1 123 456 System out println String format d f n1 d1 System out printf 05d 2f n n1 d1 boolean类型 boolean有两个文字值 即true和false 小写 注意 数字值不能自动转换为boolean 例如 intflag 1 if flag JavaError butC C Correctif flag 0 OK 显示写出条件booleanflag true if flag OK 条件使用布尔值 char类型 一个char代表一个16bit无符号的Unicode字符 一般用法 charch1 a ch2 n Unicode写法 charch u0041 字母 A 4个16进制数字 以 u开头 Unicode编码查询 http www unicode org Unicode 统一码 是一种在计算机上使用的字符编码 它为每种语言中的每个字符设定了统一并且唯一的二进制编码 以满足跨语言 跨平台进行文本转换 处理的要求 字符检测的方法 已知charch a Character isLetter ch ch是否是字母Character isDigit ch ch是否是数字Character isLetterOrDigit ch ch是否是字母或数字Character isWhitespace ch ch是否是空格Character isLowerCase ch ch是否是小写字母Character isUpperCase ch ch是否是大写字母 Character类 符号常量 自定义符号常量 finaldoublePI 3 14159 系统提供的符号常量 如 Integer MIN VALUEInteger MAX VALUE 变量初始化 任何变量都必须经初始化后才能被使用 intx int Math random 100 inty z if x 50 y 9 z y x ymaynothavebeeninitializeds 注意 当一个对象被创建时 在方法外定义的变量 属性 将被自动初始化 publicclasstest privateinti 100 j privatebooleanf publicvoiddisplay System out println j j j 1 System out println f f publicstaticvoidmain Stringargs testt newtest t display 输出结果 j 1f false 实例变量在分配存储单元的同时被下列值初始化 byte short int 0long 0Lfloat 0 0fdouble 0 0dchar u0000 即Null boolean false所有引用类型 Null 实例化后会自动初始化 String类型 String不是原始类型 而是一个类 class 它被用来表示字符序列 字符串 字符本身符合Unicode标准 与C和C 不同 String不用 0 作为结束 基本用法 直接赋值 Strings1 Hello s2 Java 或者new一个String Strings1 newString Hello 字符串连接操作 Strings3 s1 s2 字符串连接s3 HelloJava inti 10 Stringstr i i str的值为 i 10 说明 如果字符串与其他类型变量进行 运算 系统将自动将其他类型转换为字符串 示例 inta 1 b 2 Stringstr hello System out println str a b System out println a b str 输出结果 hello123hello 字符串数值的转换 字符串 数值方法1 常用inti Integer parseInt 123 doubled Double parseDouble 1 23 parse方法很重要 方法2 inti Integer valueOf 123 intValue 注意 字符串转换成数值时对数据格式要求严格inti Integer parseInt 123 4 intI Integer valueOf 123 4 intValue 字符串数值的转换 续 数值 字符串方法1 Strings String valueOf value 其中value为任一种数字类型 方法2 Strings Integer toString 123 方法3 最直接Strings value 其中value为任意一种数字类型 字符数组字符串的转换 字符数组 字符串例如 char c a b c Stringstr newString c 字符串 字符数组例如 Stringstr abc char c str toCharArray String类常用方法 创建新StringStringconcat Strings 返回一个新串 在原串后附加上s Stringreplace Stringold Stringnew 返回一个新串 将原串中出现的old替换成new Stringsubstring intstart intend 返回一个新串 它是原串中从start到end的一部分 StringtoLowerCase 返回一个新串 它将原串中的大写字母变成小写 StringtoUpperCase 返回一个新串 它将原串中的小写字母变成大写 理解返回一个新串的含义 Stringstr give str replace i a 则str 查找方法booleanendsWith Strings 如原串以s串为结尾 则返回true booleanstartsWith Strings 如原串以s串为开始 则返回true intindexOf Strings 返回串中第一次出现s串的序号值 intindexOf Strings intoffset 返回串中从offset开始查找 第一次出现s串的序号值 类似有lastIndexOf 从串尾开始查找 比较方法booleanequals Strings 如果原串与s串相等 则返回true booleanequalsIgnoreCase Strings 如果在忽略大小写的情况下 原串与s串相等 则返回true intcompareTo Strings 进行字典序比较 如果原串小于s串则返回负数 如果原串大于s串则返回正数 如果原串等于s串则返回零 其它方法charcharAt intindex 返回index处的字符 intlength 返回串的长度 特别提醒 字符串内容的比较不能用 字符串equals和 操作 以下输出结果是什么 Strings1 abc Strings2 abc Strings3 newString abc Strings4 newString abc System out println s1 s2 System out println s1 equals s2 System out println s3 s4 System out println s3 equals s4 输出结果 truetruefalsetrue 示例 publicclasstest publicstaticvoidmain Stringargs Strings1 newString youareastudent Strings2 newString howareyou if 1 判断s1与s2是否相同System out println s1与s2相同 else System out println s1与s2不相同 Strings3 newString 22030219851022024 if 2 判断s3的前缀是否是 220302 System out println 吉林省的身份证 示例 publicclasstest publicstaticvoidmain Stringargs Strings1 newString youareastudent Strings2 newString howareyou if 1 判断s1与s2是否相同System out println s1与s2相同 else System out println s1与s2不相同 Strings3 newString 22030219851022024 if 2 判断s3的前缀是否是 220302 System out println 吉林省的身份证 示例 续 Strings4 newString cat Strings5 newString dog if 3 按字典序比较s4 s5System out println 按字典序s4 s5 else System out println 按字典序s4 s5 intposition 0 Stringpath c java jsp A java 获取path中最后出现目录分隔符号的位置position 4 System out println c java jsp A java中最后出现 的位置 position 示例 续 StringfileName 5 获取path中 A java 子字符串System out println c java jsp A java中含有的文件名 fileName Strings6 newString 100 Strings7 newString 123 678 intn1 6 将s6转化成int型数据doublen2 7 将s7转化成double型数据doublen n1 n2 System out println 8 输出n 保留2位小数Strings8 newString ABCDEF System out println 9 将s8转化为小写输出System out println 10 输出s8的最后一个字符 endmain endclass Return 2 3运算符和表达式 运算符使用注意 算术运算两个整数类型的数据做除法时 结果只保留整数部分 如 3 2 1 但是3 0 2 1 5自增与自减运算符只适用于变量 如10 运算不仅能用于整型 也能用于浮点类型 如 9 2 19 5 2 1 5 关系运算关系表达式的运算结果是逻辑值 true false 小写 例如 inta 1 b 4 booleanc a0 则可以 布尔逻辑运算只能是布尔量 true false 参加运算 结果也是布尔型布尔量也可以 相当于单个的位运算 具有短路效应 例如 m a b n c d 如果m false 则n c d不计算 位运算 每右移一位 最高位由原来的最高位补充 正数补0 负数补1 0填充右移 无符号右移 例如 inta 1 a 24 则a 一般情况下 a n移位的结果是 a 2n 类型转换当没有信息丢失时 变量可被自动升级为一个较长的形式 如 int至long的升级 longbigval 6 6isaninttype OKintsmallval 99L 99Lisalong errordoublez 12 414F 12 414Fisfloat OKfloatz1 12 414 12 414isdouble error 类型转换 续 对 运算符来说 当两个操作数是原始数据类型时 其结果至少有一个int 并且有一个通过提升操作数到结果类型 或通过提升结果至一个较宽类型操作数而计算的值 这可能会导致溢出或精度丢失 例如 shorta b ca 1 b 2 c a b 上述程序会因为在操作short之前提升每个short至int而出错 然而 如果c被声明为一个int 或按如下操作进行类型转换 c short a b 则上述代码将会成功通过 设计变量时要考虑好类型 instanceof作用 测试它左边的对象是否是它右边的类的实例 返回boolean类型的数据 例如 Integerd 123 booleanisInt dinstanceofInteger truebooleanisObj dinstanceofObject true说明 Object是类层次结构的根类 每个类都使用Object作为超类 Return Java语言不把基本数据类型看作对象 8个基本数据类型都有相应的包装类 2 4包装类 包装类 续 包装类都有自己的属性和方法 例如Integer parseInt 方法 Integer MAX VALUE属性 可以通过将被包裹的值传递到合适的构造函数中来构造包装类对象 例如 inta 100 Integeri newInteger a 构造包装类对象可以通过intValue 方法将包装类变成基本类型 例如 inttheInt newInteger a intValue Return 装箱操作 拆箱操作 2 5控制台输入 importjava util Scanner 导入java包publicclasstest publicstaticvoidmain String args finaldoublePI 3 14159 符号常量Scannerscanner newScanner System in 创建控制台输入对象System out print 请输入圆的半径 doubler scanner nextDouble 读取一个double数据System out print 计算圆面积 String format 2f PI r r 相应的有 nextInt nextByte nextFloat nextLong nextBoolean 获取boolean数据 如输入true或falsenextLine 获取字符串数据 Return 格式化数值数据的方法 2 6控制语句 if else intx 2 if x 2 x else x System out println x x intx 2 inty x 2 x x System out println x x switch语句 switch expr1 caseexpr2 statements break caseexpr3 statements break default statements break 如没break语句 则程序的执行将继续到下一个case 而不检查case表达式的值 expr1可以是int byte short或char类型 不允许使用浮点或long表达式 不允许有重复case值 示例 importjava util Scanner publicclasstest publicstaticvoidmain String args System out print 请输入成绩 intscore newScanner System in nextInt 连在一起写inta score 10 switch a case10 case9 System out println score 优秀 break case8 System out println score 良好 break case7 System out println score 中等 break case6 System out println score 及格 break default System out println score 不及格 break while do while for intx 1 while x 10 System out println x x x intx 1 do System out println x x x while x 10 for intx 1 x 10 x System out println x x break continue 用法 break 标注 continue 标注 注 标注可标识控制需要转换到的任何有效语句 块 标注用法标注 语句 块 即在有效语句块前加个标识符 break 强行退出一个循环 publicclasstest publicstaticvoidmain String args for inti 1 true i if i 5 break System out println i System out println 退出循环了 运行结果 1234退出循环了 continue 结束本次循环 跳至下一次循环 publicclasstest publicstaticvoidmain Stringargs for inti 0 i 10 i System out print i if i 2 0 continue System out println 运行结果 0123456789 标注示例 publicclasstest publicstaticvoidmain Stringargs outer for inti 0 i 3 i System out print Pass i for intj 0 j 10 j if j 5 breakouter System out print j System out println 运行结果 Pass0 01234 标注示例 publicclasstest publicstaticvoidmain Stringargs outer for inti 1 ii System out println continueouter System out print i j System out println 运行结果 124369481216 Return 编程练习 判断输入的字符串是否为回文 如abcba 输入一个字符串 统计大写字母 小写字母 数字 空格以及其他字符个数 递归方法求2 4 6 100之和 回文判断 System out println 请输入字符串 Stringstr newScanner System in nextLine booleanflag true charch1 ch2 for inti 0 i str length 2 i ch1 str charAt i ch2 str charAt str length i 1 if ch1 ch2 flag false break if flag System out println 是回文 elseSystem out println 不是回文 大小写等判断 intlower 0 upper 0 number 0 space 0 other 0 System out println 请输入字符串 Strings newScanner System in nextLine for inti 0 i s length i if Character isLowerCase s charAt i lower elseif Character isUpperCase s charAt i upper elseif Character isDigit s charAt i number elseif Character isSpace s charAt i space elseother System out println 小写字母个数 lower 大写字母个数 upper 数字个数 number System out println 空格个数 space 其他字符个数 other 递归函数求2 4 6 100之和 publicclasstest publicstaticvoidmain Stringargs System out print fadd 100 publicstaticintfadd intn if n 2 return2 elsereturnn fadd n 2 完 补充1 数学类 java lang Math类主要包括下列方法和两个常数 doubleabs doubled 返回d的绝对值 doublemin doubled1 doubled2 返回d1与d2中的小者 doublemax doubled1 doubled2 返回d1与d2中的大者 doublesqrt doubled 返回d的平方根 doublepow doubled1 doubled2 返回d1的d2次幂 doublerandom 返回 0 1 的随机数 两个常数 PI 圆周率 double E 自然对数的底 double 对于float int long有类似的函数 补充2 StringBuffer类 在Java中有3个类来负责字符的操作 Character是进行单个字符操作的 String对一串字符进行操作 不可变类 StringBuffer也是对一串字符进行操作 但是可变类 String为不可变对象 一旦被创建 就不能修改它的值 对于已经存在的String对象的修改都是重新创建一个新的对象 然后把新的值保存进去 StringBuffer是一个可变对象 当对它进行修改的时候不会像String那样重新建立对象 在实际应用中 经常会遇到对字符串进行动态修改 这时候 String类的功能受到限制 而StringBuffer类可以完成字符串的动态添加 插入和替换等操作 StringBuffer的效率要比String高 StringBuffer对象的创建 StringBuffer对象只能通过构造函数来建立StringBuffers newStringBuffer s hello 不能通过 符号进行付值s append hello StringBuffer构造函数StringBuffer 创建
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中英语口语教学策略优化与实践研究论文
- 花桥镇干部管理制度
- 茶叶分公司管理制度
- 防聚集工作管理制度
- 财务会计岗位综合实训(一)
- 论坛营销 - 网络营销系列之三
- 财务会计业务题
- 设备主管工作职责
- 山东省滨州市博兴县2024-2025学年九年级下学期4月期中考试数学试题(含部分答案)
- 红白色创意笔刷西藏旅游介绍
- DB32-T 4878-2024 居住区供配电设施建设标准
- 《心肺运动试验介绍》课件
- 2024年05月恒丰银行上海分行零售金融部社会招聘(4人)笔试历年参考题库附带答案详解
- 经济师考试知识产权高级经济实务新考纲题库详解(2025年)
- 医院培训课件:《失血性休克的急救护理》
- 【MOOC】模式识别-青岛大学 中国大学慕课MOOC答案
- 透析患者贫血的护理
- 【MOOC】电子线路设计、测试与实验(二)-华中科技大学 中国大学慕课MOOC答案
- 《LNG基本知识培训》课件
- 2024年宁夏中考历史真题卷及答案解析
- 国家太空安全
评论
0/150
提交评论