




已阅读5页,还剩74页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象的程序设计 Java 课前思考 1 Java中的标识符是由哪些字符组成的 2 Java中有哪些保留字 简单数据类型包含哪几种 各种数据类型变量的定义方法和常量的表示方法及取值范围 3 Java中各简单数据类型间的优先次序和自动转换规则是什么 各数据类型间在什么情况下 进行自动转换 在什么情况下使用强制转换 4 Java中有哪些运算符 这些运算符的优先关系是怎样的 5 Java中有哪些控制语句 你了解每一种控制语句的语法规则吗 6 Java中的一维数组和多维数组在数组动态初始化和静态初始化时有何不同 7 Java中的字符串有两种表示方法 这两种表示方法有什么不同 8 如何访问字符串 如何修改字符串 如何对两个字符串进行比较 学习目标 本讲主要讲述java编程语言的基本语法知识 如java中的简单数据类型 运算符和表达式 控制语句 数组及字符串的处理 通过本讲的学习 同学们可以编写简单的java程序 注意 同任何一种编程语言一样 应深刻理解各知识点的概念 牢记一些java的语法 从而达到学习的目的 重点 1 深刻理解各知识点的概念 并熟记java的语法规范 2 熟练使用各种数据类型的定义 表示和引用 3 能熟练使用各种控制语句 4 能熟练处理字符串 难点 1 动态初始化复杂类型数组时 要先为数组中的元素开辟引用空间 再为每个元素开辟空间 2 使用StringBuffer类表示和操作字符串时 要注意它可以处理可变字符串 即当在StringBuffer类型的字符串中插入字符而超出已分配的缓冲区时 系统会自动地为它分配额外的空间 标识符 程序员对程序中的各个元素加以命名时使用的命名记号称为标识符 identifier Java语言中 标识符是以字母 下划线 美元符 开始的一个字符序列 后面可以跟字母 下划线 美元符 数字 例如 identifier userName User Name sys val change为合法的标识符 而2mailroom class为非法的标识符 保留字 具有专门的意义和用途 不能当作一般的标识符使用 这些标识符称为保留字 reservedword 也称为关键字 下面列出了java语言中的所有保留字 bstract 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 length native new null package private protected public return switch synchronized short static super try true this throw throws threadsafe transient void while java语言中的保留字均用小写字母表示 第二章基本语法 2 1Java程序构成2 2数据类型2 3变量和常量2 4运算符和表达式2 5流程控制 2 1Java程序构成 Java程序是由类和对象组成的 而对象和类又是由方法和变量构成的 方法由语句组成 语句又由表达式 变量 常量 关键字组成 2 1Java程序构成 语句 用编程语言书写的简单命令 它导致计算机执行某种操作 表达式 生成一个值的语句 不同的语句之间用 分开 多个语句可用左 右大括号 括起来 表示一个语句块 2 2数据类型 二 Java基本数据类型 基本数据类型是非面向对象的 Java有八种基本数据类型 如下图 java中的数据类型 java语言的数据类型有简单类型和复合类型简单数据类型包括 整数类型 Integer byte short int long浮点类型 Floating float double字符类型 Textual char布尔类型 Logical boolean复合数据类型包括 classinterface数组 常量和变量 常量 用保留字final来实现finaltypeSpecifiervarName value varName value 如 finalintNUM 100 变量 是java程序中的基本存储单元 它的定义包括变量名 变量类型和作用域几个部分 其定义格式如下 typeSpecifiervarName value varName value 如 intcount charc a 布尔类型 boolean 布尔型数据只有两个值true和false 且它们不对应于任何整数值 布尔型变量的定义如 booleanb true 字符类型 char 字符常量 字符常量是用单引号括起来的一个字符 如 a A 字符型变量 类型为char 它在机器中占16位 其范围为0 65535 字符型变量的定义如 charc a 指定变量c为char型 且赋初值为 a 整型常量 十进制整数如123 456 0 八进制整数以0开头 如0123表示十进制数83 011表示十进制数 9 十六进制整数以0 x或0X开头 如0 x123表示十进制数291 0X12表示十进制数 18 浮点型 实型 数据 实型常量 十进制数形式由数字和小数点组成 且必须有小数点 如0 123 1 23 123 0 科学计数法形式如 123e3或123E3 其中e或E之前必须有数字 且e或E后面的指数必须为整数 float型的值 必须在数字后加f或F 如1 23f 简单数据类型变量 数据类型所占位数缺省值数的范围boolean8falsetrue falsechar16 u0000 0 65535byte80 27 27 1short160 215 215 1int320 231 231 1long640 263 263 1float320 0F3 4e 038 3 4e 038double640 0D1 7e 308 1 7e 308 简单数据类型的例子 publicclassAssign publicstaticvoidmain Stringargs intx y 定义x y两个整型变量floatz 1 234f 指定变量z为float型 且赋初值为1 234doublew 1 234 指定变量w为double型 且赋初值为1 234booleanflag true 指定变量flag为boolean型 且赋初值为truecharc 定义字符型变量cStringstr 定义字符串变量strStringstr1 Hi 指定变量str1为String型 且赋初值为Hic A 给字符型变量c赋值 A str bye 给字符串变量str赋值 bye x 12 给整型变量x赋值为12y 300 给整型变量y赋值为300 不同类型数据间的优先关系 低 高byte short char int long float double 自动类型转换规则 整型 实型 字符型数据可以混合运算 运算中 不同类型的数据先转化为同一类型 然后进行运算 转换从低级到高级 强制类型转换 高级数据要转换成低级数据 需用到强制类型转换 如 inti byteb byte i 把int型变量i强制转换为byte型 2 2数据类型 所有基本类型所占的位数都是确定的 并不因操作系统的不同而不同 char类型采用Unicode编码 而不是ASC 编码 boolean类型不对应任何整数类型 2 2数据类型 三 数据类型转换 自动类型转换整型 实型 字符型数据可以混合运算 运算中 不同类型的数据先转化为同一类型 然后进行运算 转换从低级到高级 低 高byte short char int long float double 操作数1类型操作数2类型转换后的类型byte short charintintbyte short char intlonglongbyte short char int longfloatfloatbyte short char int long floatdoubledouble 2 2数据类型 三 数据类型转换 强制类型转换如果从高级转换成低级 则需要强制类型转换 但会导致溢出或精度下降 如 inti 8 byteb byte i 2 2数据类型 四 什么时候加后缀 f d 文字在源文件中是一个字符串 java编译器会将它们直接翻译成特定类型的数值 文字可被看成一个整数或浮点数 字符串 Unicode字符 布尔类型值或null 如下表 2 2数据类型 2 2数据类型 如果定义一个超出int范围的文字 系统不会自动将它升级 必须加后缀 l 或 L longvalue1 1234567890123 错 longvalue1 1234567890123l 对 假设需要一个浮点类型变量而不是双精度型变量 以下赋值必须加后缀 f 或 F floatvalue1 3 14159 错 floatvalue1 3 14159f 对 floatvalue1 float 3 14159f 对 2 3变量和常量 一 标识符 identifier 标识任何一个变量 常量 方法 对象和类 字母 数字 下划线或 美元符 的序列 必须以字母 下划线或美元符号开头 大小写敏感 最大长度为65535个字符 2 3变量和常量 二 保留字 reservedword 具有专门的意义和用途 不能当作一般的标识符使用 这些标识符称为保留字 abstractbreakbytebooleancatchcaseclasscharcontinuedefaultdoubledoelseextendsfalsefinalfloatforfinallyifimportimplementsintinterfaceinstanceoflonglengthnativenewnullpackageprivateprotectedpublicfinalreturnswitchsynchronizedshortstaticsupertrytruethisthrowthrowsthreadsafetransientvoidwhile 2 3变量和常量 三 变量 程序中的基本存储单元 其定义包括变量名 变量类型和作用域几个部分 定义格式为 TypevarName value varName value 变量必须先申明后使用 Java有三种变量 实例变量 类变量和局部变量 2 3变量和常量 四 常量 值保持不变的 变量 定义格式为 finalTypevarName value 例 finalbooleanDEBUG false finalfloatPI 3 141592 2 4运算符和表达式 一 运算符 算术运算符 关系运算符 赋值运算符 及其扩展赋值运算符如 等 条件运算符 其它 包括分量运算符 下标运算符 实例运算符instanceof 内存分配运算符new 强制类型转换运算符 类型 方法调用运算符 等 由于数据类型的长度是确定的 所以没有长度运算符sizeof 2 4运算符和表达式 1 算术运算符 只有整数类型 int long short 的数据才能进行取余运算 两个整数类型做除法时 结果是取商数的整数部分 而小数部分被截掉了 和 这两个单目运算符在操作数的前面 则先执行单目运算 修改后的值作为新值参再与复杂表达式的运算 intx 2 inty x 3 结果是x 3 y 9 intx 2 inty x 3 结果是x 3 y 6 2 4运算符和表达式 2 关系运算符 注意 和赋值号 不要混淆 3 逻辑运算符 和 被称为 非简洁运算符 它们在运算时 左右两边的表达式都要执行 而 和 在运算时 右边的表达式在一定情况下可以不执行 2 4运算符和表达式 4 位运算符 操作数只能为整型和字符型数据 2 4运算符和表达式 Java使用补码来表示二进制数 在补码表示中 最高位为符号位 正数的符号位为0 负数为1 补码的规定如下 对正数来说 最高位为0 其余各位代表数值本身 以二进制表示 如 42的补码为00101010 对负数而言 把该数绝对值的补码按位取反 然后对整个数加1 即得该数的补码 如 42的补码为11010110 00101010按位取反11010101 1 11010110 用补码来表示数 0的补码是唯一的 都为00000000 而在原码 反码表示中 0和 0的表示是不唯一的 可参见相应的书籍 而且可以用111111表示 1的补码 这也是补码与原码和反码的区别 2 4运算符和表达式 5 条件运算符 与C语言相同 x y z先计算表达式x的值 若x为真 则整个三目运算的结果取y的值 若x为假 则最终结果取z的值 2 4运算符和表达式 二 运算符的优先级和结合性 1 9 2 instanceof10 3 new type 11 4 12 5 13 6 优先级决定了表达式中不同运算执行的先后次序 结合性决定相同优先级运算的先后执行次序 2 4运算符和表达式 三 注释 行注释 以 开头到本行末的所有字符都是注释 块注释 以 开头到以 结尾的所有字符都是注释 2 5流程控制 分支语句 if else switch循环语句 while do while for与程序转移有关的其它语句 break continue return例外处理语句 try catch finally throw 2 5流程控制 一 分支语句 if else语句if boolean expression1 statements1 elseif boolean expression2 statements2 else statementsN 2 5流程控制 布尔表达式boolean expression是任意一个返回布尔数据类型的表达式 而且必须是 比C或C 要严格 与C或C 一样 每个单一语句后面都要有分号 为了增强程序的可读性 应将if或else后的语句用 括起来 else子句是任选的 不能单独作为语句使用 它必须和if语句配对使用 并且总是与离它最近的if配对 inti1 123 inti2 456 if i1 i2 System out println Thebiggeroneis i1 else System out println Thebiggeroneis i2 2 5流程控制 switch语句switch expression casevalue1 statements1 break casevalueN statementsN break default defaultStatements 2 5流程控制 表达式expression的返回值类型必须是这几种类型之一 int byte char short case子句中的值valueI必须是常量 而且所有case子句中的值应是不同的 default子句是任选的 break语句用来在执行完一个case分支后 使程序跳出switch语句 即终止switch语句的执行 如果某个case分支后没有break语句 程序将不再做比较而执行下一个分支 switch语句的功能可以用if else语句来实现 但某些情况下 使用switch语句更简炼 2 5流程控制 inta 100 intb 20 intc charoper switch oper case c a b break case c a b break default c a b break 2 5流程控制 二 循环语句 循环语句while 当型循环 initialization 初始化条件while termination 循环条件body 循环体 iteration 迭代 变更循环条件 当表达式termination为true时 执行 中的语句 否则终止循环 2 5流程控制 循环语句do while 直到型循环 initialization 初始化条件do body 循环体 iteration 迭代 变更循环条件 while termination 循环条件首先执行一遍 中的语句 当表达式termination为true时 继续执行 中的语句 否则终止循环 2 5流程控制 循环语句for 另一种当型循环 for initialization termination iteration body 循环体 initialization 初始化条件termination 循环条件iteration 迭代 变更循环条件 2 5流程控制 for语句执行时 首先执行初始化操作 然后判断终止条件是否满足 如果满足 则执行循环体中的语句 最后执行迭代部分 完成一次循环后 重新判断终止条件 初始化 终止以及迭代部分都可以为空语句 但分号不能省 三者均为空的时候 相当于一个无限循环 在初始化部分和迭代部分可以使用逗号语句 来进行多个操作 逗号语句是用逗号分隔的语句序列 for inti 0 intj 10 i j i j 2 5流程控制 intn 1 sum 0 while n 10 sum sum n n intn 10 sum 0 do sum n n while n 0 intsum 0 for inti 1 i 10 i sum i while循环 do while循环 for循环 2 5流程控制 三 程序转移相关语句break 在switch语中 break语句用来终止switch语句的执行 使程序从整个switch语句后的第一条语句开始执行 在Java中 可以为每个代码块加一个标号 一个代码块通常是用大括号 括起来的一段代码 加标号的格式为 BlockLabel codeBlock break语句的第二种使用情况就是跳出它所指定的块 并从紧跟该块后的第一条语句处执行 breakBlockLabel a 标记代码块a b 标记代码块b c 标记代码块c breakb 这段语句将不执行 代码块c结束 这段语句也不执行 代码块b结束 从这段语句开始执行 代码块a结束 2 5流程控制 2 5流程控制 四 程序转移相关语句continue continue语句用来结束本次循环 跳过循环体中下面尚未执行的语句 接着进行终止条件的判断 以决定是否继续循环 对于for语句 在进行终止条件的判断前 还要先执行迭代语句 它的格式为 continue 也可以用continue跳转到括号指明的外层循环中 这时的格式为continueouterLable 2 5流程控制 outer for inti 0 i 10 i 外层循环 inner for intj 0 j 10 j 内层循环 if i j continueouter 内层循环结束 外层循环结束 for inti 0 i 10 i if i 5 continue 2 5流程控制 五 程序转移相关语句return return语句从当前方法中退出 返回到调用该方法的语句处 并从紧跟该语句的下一条语句继续程序的执行 返回语句有两种格式 returnexpression 当方法需要返回某种类型数据时return 当方法的返回类型为void时单独一条return语句放在方法中间时 会产生编译错误 因为其后的语句将不会执行到 若真需要退出方法 可以通过将return语句嵌入某些语句 如if else 来使程序在未执行完方法中所有语句时退出 数组 java语言中 数组是一种最简单的复合数据类型 数组是有序数据的集合 数组中的每个元素具有相同的数据类型 可以用一个统一的数组名和下标来唯一地确定数组中的元素 数组有一维数组和多维数组 一维数组的定义 typearrayName 类型 type 可以为Java中任意的数据类型 包括简单类型和复合类型 例如 intintArray DatedateArray 一维数组的初始化 静态初始化intintArray 1 2 3 4 StringstringArray abc How you 动态初始化1 简单类型的数组intintArray intArray newint 5 2 复合类型的数组StringstringArray StringstringArray newString 3 为数组中每个元素开辟引用空间 32位 stringArray 0 newString How 为第一个数组元素开辟空间stringArray 1 newString are 为第二个数组元素开辟空间stringArray 2 newString you 为第三个数组元素开辟空间 一维数组元素的引用 数组元素的引用方式为 arrayName index index为数组下标 它可以为整型常数或表达式 下标从0开始 每个数组都有一个属性length指明它的长度 例如 intArray length指明数组intArray的长度 多维数组 二维数组的定义typearrayName type arrayName 二维数组的初始化 静态初始化intintArray 1 2 2 3 3 4 5 Java语言中 由于把二维数组看作是数组的数组 数组空间不是连续分配的 所以不要求二维数组每一维的大小相同 动态初始化1 直接为每一维分配空间 格式如下 arrayName newtype arrayLength1 arrayLength2 inta newint 2 3 2 从最高维开始 分别为每一维分配空间 arrayName newtype arrayLength1 arrayName 0 newtype arrayLength20 arrayName 1 newtype arrayLength21 arrayName arrayLength1 1 newtype arrayLength2n 3 例 二维简单数据类型数组的动态初始化如下 inta newint 2 a 0 newint 3 a 1 newint 5 对二维复合数据类型的数组 必须首先为最高维分配引用空间 然后再顺次为低维分配空间 而且 必须为每个数组元素单独分配空间 例如 Strings newString 2 s 0 newString 2 为最高维分配引用空间s 1 newString 2 为最高维分配引用空间s 0 0 newString Good 为每个数组元素单独分配空间s 0 1 newString Luck 为每个数组元素单独分配空间s 1 0 newString to 为每个数组元素单独分配空间s 1 1 newString You 为每个数组元素单独分配空间 二维数组元素的引用 对二维数组中的每个元素 引用方式为 arrayName index1 index2 例如 num 1 0 课堂练习 请利用数组实现两个矩阵相乘 publicclassMatrixMultiply publicstaticvoidmain Stringargs inti j k inta newint 2 3 动态初始化一个二维数组intb 1 5 2 8 5 9 10 3 2 7 5 18 静态初始化一个二维数组intc newint 2 4 动态初始化一个二维数组for i 0 i 2 i for j 0 j 3 j a i j i 1 j 2 for i 0 i 2 i for j 0 j 4 j c i j 0 for k 0 k 3 k c i j a i k b k j System out println MatrixC 打印MatrixC标记for i 0 i 2 i for j 0 j 4 j System out println c i j System out println 字符串的处理 Java语言中 把字符串作为对象来处理 类String和StringBuffer都可以用来表示一个字符串 类名都是大写字母打头 1 字符串常量字符串常量是用双引号括住的一串字符 HelloWorld 2 String表示字符串常量用String表示字符串 String charchars String charchars intstartIndex intnu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省德阳市2024-2025学年高二下期期末考试政治
- 消防考核面试题目及答案
- 新解读《GB-T 35077-2018机械安全 局部排气通风系统 安全要求》
- 化妆培训教学知识点总结课件
- 县区国企面试题目及答案
- 机械厂安全知识培训内容课件
- 瓯江小学数学试卷
- 南票区中考数学试卷
- 七年级下册抽考数学试卷
- 宁夏小学毕业考数学试卷
- 翼状胬肉手术配合
- 楼顶彩钢瓦雨棚合同范例
- 制衣厂管理规章制度
- 2025年高考生物一轮复习:人教版必修1、2+选择性必修1、2、3共5册知识点考点提纲汇编
- 河南省濮阳市2024-2025学年八年级上学期11月期中语文试题(含答案)
- 重大科技攻关计划项目投标书
- 南方全站仪NTS-332R说明书
- 浪潮社会招聘在线测评题
- 电缆价格自动核算表
- 2024年内蒙古呼伦贝尔农垦拉布大林上库力三河苏沁农牧场招聘115人历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 【魔镜洞察】2024药食同源保健品滋补品行业分析报告
评论
0/150
提交评论