级《面向对象程序设计》第二章教学.ppt

上传人:max****ui 文档编号:6130896 上传时间:2020-02-17 格式:PPT 页数:51 大小:762.31KB
返回 下载 相关 举报
级《面向对象程序设计》第二章教学.ppt_第1页
第1页 / 共51页
级《面向对象程序设计》第二章教学.ppt_第2页
第2页 / 共51页
级《面向对象程序设计》第二章教学.ppt_第3页
第3页 / 共51页
点击查看更多>>
资源描述
第二章Java基础 学习目标 掌握标识符和关键字熟练使用各种数据类型的定义 表示和引用掌握算术 逻辑和布尔运算符自动类型转换和强制类型转换 2 1标识符Java保留字 标识符的命名规则 一定要牢记啊 类名首字母大写 符号常量名全部字母大写 变量名 对象名 方法名 包名等标识符全部采用小写字母 如果标识符由多个单词构成 则首字母小写 其后单词的首字母大写 其余字母小写 合法的标识符identifieruserNameUser Name sysval changeA98 23 abc非法的标识符2mailroom classA 43 1 the Java保留字 又称关键字 关键字不能作为标识符 关键字是具有专门的意义和用途 不能当作一般的标识符使用 这些标识符称为保留字 reservedword 下面列出了java语言中的所有保留字 abstractdoimplementsprotectedthrowsbooleandoubleimportpublictransientbreakelseinstanceofreturntruethisthrowbyteextendsintshorttrysynchronizedcasefalseinterfacestaticvoidcontinuecatchfinallongstrictpfvolatilegotodefaultcharfinallynativesuperwhilepackageclassfloatnewswitchconstfornullifprivatejava中的关键字均用小写字母表示 数据类型与常量 变量 数据是计算机程序处理的对象 数据的类型决定了数据的表示方式 取值范围以及可进行的操作 基本类型包括 整型 byte short int和long浮点型 float和double字符型 char逻辑型 boolean引用类型 需要用户自己定义 数组接口类 基本数据类型 存储没有小数部分的数据类型Java各整数类型有固定的表数范围和字段长度 而不受具体操作系统的影响 以保证Java程序的可移植性 1 整型 数值20在内存中的存储形式 00010100byte 1字节 0000000000010100short 2字节 高位置000000000000000000000000000010100int 4字节 0000000000000000000000000000000000000000000000000000000000010100Long 8字节 2 浮点型 浮点型是带有小数部分的数据类型 包括两种不同的数据类型 float和double float类型的变量占用4个字节 32位 double类型的数据则需要8个字节 64位 内存 在许多程序中 就其表示的数值范围而言 使用float类型来存储浮点数已经足够了 浮点数据有两种表示形式十进制数形式 必须含有小数点 例如 3 14314 0 314科学记数法形式 如3 14e23 14E 12Java浮点数据默认为double型 如要声明一个常量为float型 则需在数字后面加f或F 如 doubled 3 14 floatf 3 14f 3 布尔型 boolean 布尔数据类型用于表达两个逻辑状态之一的值 true 真 或false 假 布尔型数据只有两个值true和false 且它们不对应于任何整数值 布尔型变量的定义如 booleanb true 4 字符型 char 字符型数据类型用于存放单个字符 每个字符占用2个字节 16位 的存储空间 将一个字符放到一个字符变量中 实际上并不是把该字符本身放到内存单元中去 而是将该字符的相应的Unicode代码放到存储单元中 charc1 t charc2 3 char基于Unicode编码 u前缀标志着这是一个Unicode值例如 u0061代表字符 a 新术语 在Java技术中 变量 属性方法 操作类仍然称作类 所谓类就是一类属性 变量 和操作 方法 的描述 其中 属性可用一系列的变量表达 而操作用一系列方法表示 一类人员Person 抽象出下列属性 名字 年龄 身高 婚否 性别 分别用变量name age height marriage sex表示 见名知义 吃饭 讲话 走路等行为可表示为相应的方法eat speak walk 等 用Java语言描述Person类如下 classPerson 以下5个是变量Stringname intage doubleheight booleanmarriage charsex speak 方法 eat 方法 对Person类中某一特定的人 上述变量就有特定的值 如name 张三 age 20 height 1 76 marriage false sex m 变量 属性 变量是用来存放指定类型的数据 其值在程序运行过程中是可变的 在使用Java中的每个变量之前 都必须对它进行声明 变量的声明形式如下 修饰符 类型标识符号变量名 常量 变量声明包括指明变量的数据类型 变量名和作用域其中数据类型说明了这个变量能存放什么样的数据 变量名是用来标识该变量的 我们存取变量的内容 变量的值 都是通过变量名来实现的 变量名 在Java中用标识符来表示变量名 象Person这个类 我们使用了name age tall marriage sex这几个标识符 分别定义了五个变量 程序员应该为变量取有意义的名称 以利于程序的阅读和理解 见名知义 但变量取名时还有一些限制 变量名由字母 数字 下划线或美元符 组成的变量名不能以数字作为第一个字符区分大小写下面是合法的变量名 Month 不同于month student name class1 dollar abc而下面的变量名都不合法 3a46 a b abc d ef 变量名 变量名中字母大写和小写是有区别的 name和Name表示两个不同的变量名 Java中约定 变量名以小写字母开头 若一个变量名由超过一个单词所组成 则第一个单词之后的所有单词都以大写字母开头 以便于理解该变量名 例如 anIntVar表示一个整型变量 变量的初始化 赋予变量一个初值 称为变量的初始化 可在定义变量的同时进行变量的初始化 如 intanIntVar 1 charaCharVar A floataFloatVar 1 23f booleanaBooleanVar true 也可定义变量后再单独初始化 如 intanIntVar charaCharVar floataFloatVar booleanaBooleanVar anIntVar 1 aCharVar A aFloatVar 1 23f aBooleanVar true 两种方法都完成了定义变量 anIntVar aCharVar aFloatVar aBooleanVar 并分别给它们赋初值 1 A 1 23 true 变量的作用域 变量的作用域 变量的使用范围 假定在某代码段中能够使用一特定变量 则此段代码即是该变量的作用域 在类中声明的类成员变量 可在该类的各个成员方法中使用 在某个方法体中或参数表中声明的变量 只能在该方法体中使用 在某个语句块中声明的变量 只能在该语句块中使用 变量的作用域 publicclassVariableLifeTime publicstaticvoidmain String args intsum 0 intA 10 for intx 1 x 5 x inty 0 y y A sum sum y System out print x x System out print y y System out println sum sum System out println sum sum 查看结果 VariableLifeTime java classPerson 以下5个成员变量Stringname intage doubletall booleanmarriage charsex 以下2个方法eat Stringeatwhat System out println name ateupthe eatwhat Speak Stringsaywhat inttime inti for i 0 i time i System out println name say saywhat 变量name age tall marriage sex的作用域 变量i的作用域 下图为变量作用域的示意图 由左图可以看出 变量name age tall marriage sex和变量i的作用域是不同的 变量name age tall marriage 和sex的作用域是整个类 在类的方法中也可使用它们 这种变量称之为成员变量 确切地讲 成员变量是在类当中 但不是在其类的方法中定义的变量 而变量i是定义在speak方法中 它的作用域仅限于speak方法中 这类定义在某方法中的变量叫做局部变量 注意 同一作用域中不可有同名的变量 如上面的代码在speak方法中不能再定义一个名字为i的变量 在Java中嵌套的程序块的内层和外层 不允许定义相同的变量名 否则将导致编译错误 publicclassScopeError publicstaticvoidmain String args intE 999 intE 999 System out println E E 常量 常量是指在程序运行过程中其值不变的量 定义常量的方法有两种 1 在定义变量的类型前面加final关键字 并同时进行初始化 如下所示 finalintaFinalVar 0 finaldoublePI 3 14159 2 在定义变量的类型前面加final关键字 不进行初始化 通过另外的语句进行赋值 如下所示 finalintaFinalVar aFinalVar 0 常量和变量 常量与变量之间最根本的区别是 常量在经过定义并给它一个值之后 不能再对它进行修改 而变量则无此限制 对于常量a 进行如下的操作是错误的 finalinta 1 a 2 而对于变量a 如下这段代码则是正确的 inta 1 a 2 示例 publicclassAssign publicstaticvoidmain String args intx inty 定义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 x 给整型变量y赋值为12 2 3运算符和表达式 运算符分类依据操作数的个数 单目运算符 一元运算符 双目运算符 二元运算符 多目运算符 根据操作数和运算结果分为 算术 关系 逻辑 位运算符 赋值运算符 条件运算符 括号运算符 1 算术运算符 运算符优先级别 优先级规则 乘除 从左到右 加减 从左到右 复杂的表达式 C 25 5 4 2 10 4 从左到右的规则求值 结果是 34按照优先级规则求值 结果是 9用 来表述想要的结构 2 关系运算符 3 逻辑 布尔 运算符 逻辑 布尔 运算真值表 条件与 短路与 条件或 短路或 4 位运算符 位运算是对整数类型的操作数按二进制的位进行运算 运算的结果仍然是整数类型值 位运算真值表 位移运算符 位移运算举例 运算符 将操作数的二进制位右移 低位溢出 高位补充原来高位的值 如intb 60 b b 1 此时b的值为30 二进制右移一位相当于该数除 考虑若b 60 b b 1 b 运算符 将操作数的二进制位右移 低位溢出 高位补0 5 赋值运算符及条件运算符 赋值运算符的形式 变量名 表达式 复合赋值运算符x y x x yx y x x y条件运算符的形式 表达式1 表达式2 表达式3举例intmin x 4 y 20 min x y x y 运算符的优先级及结合性 表达式的运算法则 按照运算符优先级从高到低的顺序进行计算 同级运算符按运算符的结合性进行 到遇到圆括号时 先进行括号内的运算 再将括号内的运算结果与括号外运算符和操作数进行计算 运算符号的优先级 单目运算符 算术运算 位移运算 关系运算 按位逻辑运算 逻辑运算 条件运算 赋值运算 升级和类型转换 赋值和表达式可能引起计算的数据类型与保存结果的存储位置之间的不匹配 右边的数据类型小于左边的数据类型 bytenum1 53 bytenum2 47 longnum3 num3 num1 num2 右边的数据类型大于左边的数据类型 intnum1 53 intnum2 47 bytenum3 num3 num1 num2 右边的数据类型和数据大于左边的数据类型 intnum1 53 intnum2 47 bytenum3 num3 num1 num2 注意 Java是强类型语言 因此 在进行赋值操作时要对类型进行检查 当将占位数少的类型赋值给占位数多的类型时 Java自动使用隐式类型转换 升级 当将占位数多的类型赋值给占位数少的类型时 需要由用户使用显式的强制类型转换 其一般形式为 类型名 表达式 类型转换 短类型 长类型 自动升级长类型 短类型 强制转换 自动升级规则 1 byte或short opint int2 byte或short或int oplong long3 byte或short或int或long opfloat float4 byte或short或int或long或float opdouble double5 charopint int其中 箭头左边表示参与运算的数据类型op为运算符 如加 减 乘等 右边表示运算结果的数据类型 如 3 4 5 因为4 5是float型 所以3先被转换为float型 然后再于4 5相加 其结果也为float型 例 自动升级实例 publicclassPromotion publicstaticvoidmain Stringargs byteb 10 charc a inti 90 floatf 3 5f doubled 1 234 floatf1 f1 f b inti1 i1 c i doubled1 d1 f1 i1 d 查看结果 Test java 查看结果 Promotion java 强制类型转换 类型转换可缩小值的范围例 inta longb b a a int b 把long型变量b强制转换为int型 intx 365 bytey byte x 把int型变量i强制转换为byte型 强制转换后丢失一部分数据 使得y的值为100 一般使用强制类型转换可能会导致数值溢出或精度的下降 应尽量避免 浮点类型转换为整数类型将使所有小数部分丢失 publicclassAge publicstaticvoidmain Stringargs intageYears intageDays longageSeconds ageYears Integer parseInt args 0 ageDays ageYears 365 ageSeconds ageYears 365 24L 60 60 System out print Youare ageDays daysold System out print Youare ageSeconds secondsold 查看结果 Age java 变量类型转换 短类型 长类型 默认长类型 短类型 强制例 inta longb b a a int b 不同类型数据间的优先关系如下 低 高byte short char int long float double 高级数据类型要转换成低级数据类型 需要用到强制类型转换 其一般形式为 类型名 表达式 如 inti byteb i 356 b byte i 强制转换后丢失一部分数据 使得b的值为100 一般使用强制类型转换可能会导致数值溢出或精度的下降 应尽量避免
展开阅读全文
相关资源
相关搜索

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


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

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


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