Java语言编程基础(贾克).ppt_第1页
Java语言编程基础(贾克).ppt_第2页
Java语言编程基础(贾克).ppt_第3页
Java语言编程基础(贾克).ppt_第4页
Java语言编程基础(贾克).ppt_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

第2章Java语言编程基础 主讲 贾克 复习与思考 1 举例说明什么是对象 什么是类 类和对象有什么不同 2 举例说明类的继承性 2 1Java语言的基本组成 2 1 1分隔符1 空白符 换行 回车 空格 tab2 注释语句 例题参见P25 一行的注释内容 一行或多行的注释内容 文档注释内容 3 普通分隔符 共4种 2 1Java语言的基本组成 2 1 2关键字所有的关键字都是小写的 参见P25const和goto是java的保留字 但已经不再使用then和sizeof都不是java的关键字 大写的NULL不是java语言的关键字 String是java语言的一个封装类的类名 也不是关键字 使用时要注意 2 1Java语言的基本组成 2 1 3Java语言标识符首字符必须是字母 大小写均可 下划线 或美元符 标识符可以由数字 0 9 所有从A Z的大写字母 a z的小写字母和下划线 美元符 和所有在十六进制0 xc0前的ASCII码等构成长度不限 2 1Java语言的基本组成 2 1 4Java的编码规范包package 包名采用完整的英文描述符 全由小写字母组成类class和接口interface 类名采用完整的英文描述符 所有单词的第一个字母均大写组件 部件 Component 使用完整的英文描述来说明组件的用途 末端应接上组件类型 2 1Java语言的基本组成 2 1 4Java的编码规范异常 Exception 通常采用字母e表示异常的实例变量variable和方法method 采用完整的英文描述 第一个字母小写 后面任何单词的首字母大写静态常量字段 staticfinal 全部采用大写字母 单词之间用下划线分隔 2 2基本数据类型 数据类型 2 2基本数据类型 2 2 1基本数据类型1 布尔型boolean也称为逻辑型 只有两个取值 true表示逻辑真 false表示逻辑假 这种变量称为boolean型变量2 字符型charchar型是用来表示字母的 它仅能表示一个单一的Unicode字母 其值用16位无符号整数表示 2个字节 因此可以存放汉字 范围是0 65535 2 2基本数据类型 2 字符型char例 下面分别输出什么 chara a System out println a inta a System out println a chara a 1 System out println a 2 字符型char在java中 对char进行运算的时候 就是将其当作其ASCII码对应的整数 2 2基本数据类型 2 2 1基本数据类型3 整型在Java语言中 提供了4种整型数据类型 byte short int long 它们都是定义了一个整数 但它们能够表示数据的范围不同 byte1个字节 128 127 21 8 1 21 8 1 1short2个字节 22 8 1 22 8 1 1int4个字节 24 8 1 24 8 1 1long8个字节 28 8 1 28 8 1 1 2 2基本数据类型 2 2 1基本数据类型3 整型判断输出bytea 128 System out println a inta 077 System out println a inta 0X77 System out println a 2 2基本数据类型 2 2 1基本数据类型4 浮点型在Java语言中有两种浮点数类型 float double区别在于表示范围不一样 float4个字节double8个字节浮点数常量是double类型如果要求是float型实数 必须加上F标志 判断输出floata 3 4 System out println a 问题 float也叫单精度 double双精度 他们表示的精度有什么差别吗 2 2基本数据类型 2 2 2数据类型转换自动类型转换判断对错 inta 3 4 doublea 3 4 强制类型转换inta int 3 4 2 2基本数据类型 2 2 2类型转换计算中类型转换 整型 实型 字符型数据可以进行混合运算 运算时 不同类型的数据先转换成同一类型后再参与运算 转换的原则是位数少的类型转换成位数多的类型 称为自动类型转换 例 下面会出现何种情况 inta 3 intb a 3 4 inta 15 floatb 3 0f System out println a a b b n System out println a b a b n 例 inta 7 intb 3 floatg h System out println a a b b g a b System out println a b g n System out println a a b b h float a b 若此处改为 float a b System out println a b h 2 3运算符与表达式 2 3 1算术运算符1 双目算术运算符双目算术运算符包括 和 取模 五种运算符 例 用java编写程序计算两个数是否能够整除 publicclass 2 publicstaticvoidmain Stringargs inta 3 intb 6 if b a 0 System out println yes elseSystem out println no 2 3运算符与表达式 2 3 1算术运算符2 单目算术运算符 inti 10 j k m n j i k i m i m i n i n i 2 3运算符与表达式 2 3 2关系运算符 注意 不是关系运算符 而是赋值运算符 2 3运算符与表达式 2 3 3逻辑运算符 为双目运算符 实现逻辑与 逻辑或 非简洁运算对于布尔逻辑运算 先求出运算符左边的表达式的值 对或运算如果为true 则整个表达式的结果为true 不必对运算符右边的表达式再进行运算 同样 对与运算 如果左边表达式的值为false 则不必对右边的表达式求值 整个表达式的结果为false 这种逻辑运算又称为逻辑短路与和逻辑短路或 2 3 3逻辑运算符inti 10 booleank true 9 i System out println i i System out println k k inti 10 booleank true 9 i System out println i i System out println k k 2 3运算符与表达式 2 3 4位运算符 按位取反 按位与 按位或 按位异或 op1右移op2位 op1无符号右移op2位注意 0和1如何进行位运算 inti 1 intj 2 intflag i j System out println flag flag intflag i j 同 的区别 最高位的填充 4 2 1最高为填充与原最高位相同 4 2 1073721823最高位一律填充0 2 3运算符与表达式 2 3 5赋值运算符 1 赋值运算符赋值运算符 把一个数据赋给一个变量 在赋值运算符两侧的类型不一致的情况下 进行类型转换2 扩展赋值运算符在赋值符 前加上其它运算符 即构成扩展赋值运算符a 3等价于a a 3 2 3运算符与表达式 2 3 6条件运算符条件运算符 为三目运算符 它的一般形式为 expression statement1 statement2例 inta 2 b 3intmaxValue a b a b 2 3 7表达式计算优先级大体上由高到低排列为 一元运算符 算数运算符 关系和逻辑运算符 赋值运算符a b c d e f 复习提问 1 指出下面的标识符 哪些合法 哪些非法 chari90integer 271stringmyFile 2文件1IloveJava 2 运算与 运算有什么区别 3 64 3 2 4数组 Java语言把内存分两种 栈内存 存放基本类型的变量和对象的引用变量例 inta 6 charb k Catcat1 newCat 内存cat1内存放的是堆cat1的首地址堆内存 存放由New运算符创建的对象和数组例 Catcat1 newCat 2 4数组 2 4 1一维数组1 一维数组的定义inta 或int a 2 一维数组元素的引用定义了一个数组 并用运算符new为它分配了内存空间后 就以引用数组中的每一个元素了 a newint 3 数组元素的引用方式为 数组的第一个元素 a 0 二 a 1 三 a 2 2 4 1一维数组inta a newint 3 inta newint 5 2 4数组 2 4 1一维数组3 一维数组的初始化对数组元素可以先声明再进行赋值 也可以在定义数组的同时进行初始化 inta newint 3 a 0 1 a 1 2 a 2 3 如 intarr 2 4 6 8 4 但intarr 5 2 4 6 8 4 非法 例 方老太养了6只鸡 体重分别1kg 2kg 3kg 3kg 4kg 5kg 求这些鸡的总体重 体重分别1kg 2kg 3kg 3kg 4 4kg 5 2kg 求平均体重 数组的定义 初始化 赋值 引用 inta a newint 6 a 0 1 a 1 2 a 2 3 a 3 4 a 4 5 a 5 6 inti intsum 0 for i 0 i a length i sum sum a i System out println sum sum floata 1 2 3 3 4 4f 5 2f inti floatsum 0 aver 0 for i 0 i a length i sum sum a i aver sum 6 System out println aver aver 数组不能越界inta newint 3 a 3 4 如何知道数组的长度a length 例2 8 求Fabonacci数组的前10项 intf f 1 1 f 2 1 intf i f newint 10 f 0 1 f 1 1 for i 2 i 10 i f i f i 1 f i 2 for i 0 i 10 i System out println f i f i 既然int float double 都可以有数组 那么 可不可以有对象数组呢 养鸡厂有4只鸡 求这些鸡体重最大和最小那只的名字 classChick Stringname floatweight publicclass 2 publicstaticvoidmain Stringargs floatmaxweight 0 minweight 4 5f intmaxnum 0 minnum 0 Chickchicks newChick 4 chicks 0 newChick 此行特别注意chicks 0 name 小白 chicks 0 weight 4 5f chicks 1 newChick chicks 1 name 小黑 chicks 1 weight 5 5f chicks 2 newChick chicks 2 name 小花 chicks 2 weight 4 chicks 3 newChick chicks 3 name 小雪 chicks 3 weight 5f for inti 0 imaxweight maxweight chicks i weight maxnum i elseif chicks i weight minweight minweight chicks i weight minnum i System out println 体重最大的鸡的名字为 chicks maxnum name 体重最轻的鸡的名字为 chicks minnum name 上机练习要求 在歌唱比赛中 共有10位评委进行打分 在计算歌手得分时 去掉一个最高分 去掉一个最低分 然后剩余的8位评委的分数进行平均 就是该选手的最终得分 如果已知每个评委的评分 求该选手的得分 该题实际上涉及到求数组的最大值 最小值 以及求数组中所有元素的和 也是数组方便统计的用途体现 实现思路 求出数组元素的最大值 最小值以及和 然后使用和减去最大值和最小值 然后除以8获得得分 判断一个数组中是否存在相同的元素 如果存在相同的元素则输出 重复 否则输出 不重复 该题中如果需要判断数组中元素是否重复 则需要对数组中的元素进行两两比较 如果有任意一组元素相等 则该数组中的元素存在重复 如果任意一组元素都不想等 则表示数组中的元素不重复 实现思路 假设数组中的元素不重复 两两比较数组中的元素 使用数组中的第一个元素和后续所有元素比较 接着使用数组中的第二个元素和后续元素比较 依次类推实现两两比较 如果有一组元素相同 则数组中存储重复 结束循环 把比较的结果存储在一个标志变量里 最后判断标志变量的值即可 要求 判断数组元素是否对称 例如 1 1 2 0 2 1 1 2 3 3 2 1 这样的都是对称数组 该题中用于判断数组中的元素关于中心对称 也就是说数组中的第一个元素和最后一个元素相同 数组中的第二个元素和倒数第二个元素相同 依次类推 如果比较到中间 所有的元素都相同 则数组对称 实现思路 把数组长度的一半作为循环的次数 假设变量i从0循环到数组的中心 则对应元素的下标就是数组长度 i 1 如果对应的元素有一组不相等则数组不对称 如果所有对应元素都相同 则对称 考察题 要求 统计一个整数中出现最多的数字 如果数字个数一样 则以最大的数字为准 例如1输出1 121输出1 23231输出3 该题是一个综合的题目 在实际分析时可以分解成三个问题 1 把整数中的每个数字拆分出来 2 统计拆分出的数字中0 9每个的个数 3 获得数字个数的最大值 实现思路 1 拆分数字 整数和10取余可以获得该整数的个位值 然后用该整数除以10可以去掉个位 整数除法 按照这种结构实现循环 并把拆分出的数字 也就是余数 存储到数组中 2 统计数字 声明一个长度是10的整型数组 使用这个数组中的第一个元素保存数字0出现的次数 第二个元素保存数字1出现的次数 依次类推 使用循环实现数字个数的统计 3 获得最大值对应的数字 获得个数数组中最大值的下标 就是需要的数字 2 4数组 2 4 2多维数组1 二维数组的定义inta a newint 3 4 直接分配每维空间 intarr newint 2 3 也可从高维开始 分别为每一维分配空间 intarr newint 2 arr 0 newint 3 特别注意 此处要用new创建arr 1 newint 3 2 4数组 2 4 2多维数组Java的二维数组和C的二维数组的区别在哪里 在C语言中定义一个二维数组 必须是一个m n二维矩阵块 Java语言的多维数组不一定是规则的矩阵形式inta newint 2 arr 0 newint 2 arr 1 newint 3 定义第二维长度不同的二维数组inta newint 2 a 0 newint 2 a 0 0 1 a 0 1 2 a 1 newint 3 a 1 0 3 a 1 1 4 a 1 2 5 for inti 0 i a length i for intj 0 j a i length j System out print a i j System out print n 2 4数组 2 4 2多维数组2 二维数组的初始化直接对每个元素赋值如 inta 2 3 1 5 3 4 定义的同时初始化 intarr 3 4 7 1 4 12 2 4 2多维数组如何求多维数组的总元素个数一维数组a length二维数组a length表示数组a的行数 inta 2 3 4 5 6 7 intnum 0 for inti 0 i a length i for intj 0 j a i length j num System out println num 实例2 10 矩阵的乘法运算 publicclassarray publicstaticvoidmain Stringargs inta a newint 3 2 a 0 0 1 a 0 1 1 a 1 0 1 a 1 1 1 a 2 0 1 a 2 1 1 for inti 0 i a length i for intj 0 j a i length j System out print a i j a i j System out print n intb newint 2 b 0 newint 3 b 1 newint 3 b 0 0 1 b 0 1 2 b 0 2 3 b 1 0 4 b 1 1 5 b 1 2 6 上面注释部分等同于下面一行代码intb 1 2 3 4 5 6 System out println 下面是矩阵b for inti 0 i b length i for intj 0 j b i length j System out print b i j b i j System out print n intc c newint 3 3 for inti 0 i 3 i for intj 0 j 3 j c i j 0 for intk 0 k 2 k c i j a i k b k j System out println 下面是矩阵c for inti 0 i c length i for intj 0 j c i length j System out print c i j c i j System out print n 2 4数组 2 4 3与数组有关的系统函数 方法 1 数组复制System arraycopy 格式 publicstaticvoidarraycopy Objectsrc intsrcPos Objectdest intdestPos intlength arraycopy source o dest o x 表示复制源数组中从下标0开始的x个元素到目标数组 从目标数组下标0对应的位置开始存放 2 数组排序Array sort 格式 Array sort 数组变量名 功能 将元素由小到大排序 结果仍然放在原数组中 2 4数组 实例 数组排序publicclassArrSort publicstaticvoidmain String args intia 4 18 6 10 25 3 Arrays sorts ia for inti 0 i ia length i System out print ia i 复习提问 1 数组下标变量是从哪个数字开始编号的 假如有一个数组a 其长度怎么表示 2 指出下面数组定义中有没有错误 int 46 intStudentNo inta newint 3 inta newint 2 inta 5 1 2 3 4 5 3 定义一个整形数组myArray大小为4 并赋值 任意数 写出代码段 2 5控制结构 2 5 1分支语句1 条件语句if else格式 if boolean expression statement1 elsestatement2 实例1 判断今年是否为闰年 2 5控制结构 闰年规则 年份用4位数表示且符合2个条件之一1 能被4整除 但不能被100整除 2 能被400整除即可以表示为 year 4 0 year 100 0 year 400 0 找出三个整数中的最大值和最小值 inta 0 b 3 c 9 max min max a b a b min a b b a max c max c max min c min c min System out println a a b b 2 5控制结构 2 5 1分支语句2 多分支选择语句switchswitch expression casevalue1 statement1 break casevalue2 statement2 break casevalueN statemendN break default defaultStatement 实例2 根据运算符输出结果 inta 1 b 2 floatr 0 charc switch c case r a b break case r a b break case r a b break case r float a b break default r 0 System out println resultis r 2 5控制结构 2 5 1分支语句3 break语句 在switch语中 break语句用来终止switch语句的执行 使程序从switch语句后的第一个语句开始执行 格式1 break 直接中止并退出格式2 breakblockLabel blockLabel 代码块4 返回语句return格式1 returnexpression 返回一个值 相当于定义一个函数格式2 return 不返回任何值 用于void方法 2 5控制

温馨提示

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

评论

0/150

提交评论