Java语言程序设计实用教程第三讲类型与运算符.ppt_第1页
Java语言程序设计实用教程第三讲类型与运算符.ppt_第2页
Java语言程序设计实用教程第三讲类型与运算符.ppt_第3页
Java语言程序设计实用教程第三讲类型与运算符.ppt_第4页
Java语言程序设计实用教程第三讲类型与运算符.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

SISE Java语言程序 设计实用教程 Java语言程序设计实用教程 SISE Java语言程序 设计实用教程 第三讲 类型与运算符 SISE Java语言程序 设计实用教程 3 本章学习要点: q理解Java的数据类型 q掌握Java一维、二维数组的使用 q掌握Java的运算符使用 SISE Java语言程序 设计实用教程 4 数据类型 l 数据是程序操作的对象,具有名称、类型和作用 域等特性。 数据由标识符命名; 数据的类型表示数据的性质、占用内存多少以及存放 格式,不同的数据类型执行不同的操作; 数据的作用域表示数据在程序中可以使用的范围。 l Java语言的数据类型分为两类:原始数据类型( 基本数据类型)和引用数据类型(复合数据类型 )。 SISE Java语言程序 设计实用教程 数据类型的分类 q 数据类型的分类如下所示: 数据类型 基本数 据类型 复合数 据类型 数值型 字符型:char 布尔型:boolean 整型:byte,short,int,long 实型:float,double 类:class 数组和字符串 接口:interface SISE Java语言程序 设计实用教程 6 基本数据类型的说明 ( P53页,表3-1 ) l 所有基本数据类型的大、小(所占用的字节数)都已明确 规定好,在各种不同的平台上都保持一致,这一特性有助 于提高Java程序的可移植性。 长度类型范围 8 bitsbyte-27(128) . 27 -1 16 bits short-215(32728) . 215 1 32 bitint-231(21亿) . 231 1 64 bits long-263(900亿亿) . 263 1 注:还可以用java.math包中的两个类: BigInteger,可以操作任意长度的整数运算。 BigDecimal,可以操作任意长度的浮点数运算 SISE Java语言程序 设计实用教程 浮点值 l 缺省为double l 浮点文字包括小数点或下列各项之一 q E或e (增加指数值),F或f (float),D或d (double) l 例如: 3.14 一个简单的double值 4.02E23 一个大的double值 2.718F 一个简单的float值 l 三种特殊的浮点值: q最大值:Double.MAX_VALUE (2-2-52)21023) q最小值:Double.MIN_VALUE (2-1074) q正无穷大:Double.POSITIVE_INFINITY q负无穷大:Double.NEGATIVE_INFINITY q非数字:Double.NaN q无穷大表示溢出,如0除任何数。 q非数字表示出错,如0/0或负数开方。 SISE Java语言程序 设计实用教程 浮点变量类型及范围 q 长度类型范围 q 32 bitsfloat约3.40282347E+38F q(有效小数6-7位) q 64 bitsdouble约 1.797693134862317E+308 q(有效小数15位) q 注意:浮点变量之间注意= =运算符的使用。应该用如下形式: double x, y; x = ; y = ; /*错误的用法*/if (x = = y) /*正确的用法*/if( Math.abs(x-y) 高 qbyte,short,char- int - long - float - double q强制类型转换 当两种类型彼此不兼容,或者目标类型的取值范围小 于源类型,自动转换无法进行,这时就需要进行强制类 型转换。强制类型转换的通用格式如下: 目标类型 变量=(目标类型)值; 高级数据要转换成低级数据,需用到强制类型转换 p表达式数据类型的自动提升 如果在JAVA应用程序表达式中出现数据类型不一致 的情形,那么JAVA运行时系统首先自动将低优先级类型 的数据转换成高优先级类型的数据,然后才进行表达式 值的计算。 数据类型的转换(二) SISE Java语言程序 设计实用教程 数据类型之间的逻辑转换 int char byteshortlong floatdouble q 上图画出了可以自动进行的类型转换,如 int salary = 2000; float output = salary; q 黑色粗箭头表示无精度损失的转换,红色细箭头表示有可能会出 现精度损失的转换。 SISE Java语言程序 设计实用教程 Wrapper类 l 把基本数据类型包装为类,如int类型有 java.lang.Integer类做为包装器.可使原始变量有类的 表现形式. SISE Java语言程序 设计实用教程Wrapper类的数据类型转换 l 利用类的方法:不同类型的转换方式是类似的parseXXX 的方法,例如:int a=Interger.paseInt(“123456”); 也可用可以使用valueOf()方法来转换类型: int a=Interger.value(“123456“); String s=String.valueOf(time); l 利用对象方法: Double d ; String s; d=new Double(12.3) ; /构造 s= d.toString(); SISE Java语言程序 设计实用教程 14 复合数据类型 l 复合数据类型是建立在基本数据类型的基础上的 ,即可再分。 l 复合数据类型是由用户自己定义的、用来限制其 他数据的类型。 l Java语言中不支持C/C+中的指针类型、结构类 型、联合类型和枚举类型。 l 参考P53表3-2,书上漏了String类型 SISE Java语言程序 设计实用教程 一维数组 q在Java中,数组是独立的类,可有自身的方法 ,不是变量的集合。 q一个数组是数组类的一个对象,将相同类型的数 据存储在连续存储单元中,可用数字索引数组中 单独数据项。 q语法:int IntArray (提倡格式) q 类型 变量名 q数组定义有三种方法,1.声明数组2.声明并创建 数组3.声明、创建、并初始化数组,具体参阅 P54,表3-3, 如:int IntArray = new int 5 SISE Java语言程序 设计实用教程 引用类型数组 qint intArray = 11, 47, 93, 26, 38 q分配空间+赋初值 q静态初始化必须与数组定义放在一个语句中。 qintArray = new int10 ; /原数组丢失。 XXXXintArray 11 47 93 38 26 SISE Java语言程序 设计实用教程 数组元素为类的对象 q定义数组 Integer a; / Null handle Integer b = new Integer5; q创建数组元素的对象实例 for(int i = 0; i B ? 100 :200; 这条语句的意思是,如果AB的话,就将100赋给C,否则 就将200赋给C 运算符可分为算术操作、位操作、关系操作和逻辑操作 SISE Java语言程序 设计实用教程算术运算符(P58,表3-5) int i=6; int i=6; int j=i+; int j=+i; result i=7, j=6 result i=7, j=7 /: 0/0非法,0/0.0合法,double、float存的 都是不精确的数,0不是真正的0,也许是 0.0000000002,有微小的误差,所以除一下就很大 一个数了,int的0就是0 ; %: 可用于浮点数运算; +、-:前缀用法与后缀用法不一样; +、-、*、 /、 %、+、 - SISE Java语言程序 设计实用教程位运算符(P59,表3-6) q关心值内部表示,所有的整数类型都可用二进制表示 ,例如:移位 q 带符号右移:左侧空出位全用符号位填充,理解为 q不带符号右移 :左侧空出位用0填充 q 2 x 2 q 30 00011110 011110000000011100000111 q -17 11101111 101111001111101100111011 1281 128 / 21 = 64 2564 256 / 24 = 16 -2564 -256 / 24 = -16 128 、 =、instanceof 运算结果是一个布尔值boolean. instanceof: 判断一个reference的类型是否属 于某种类,即测试它左边的对象是否是它右边的类 的实例 String s=“jlj”; if(s instanceof String) else SISE Java语言程序 设计实用教程 &、 |、 !、 、 &、 | 逻辑运算符(P61,表3-8) l是将两个布尔值进行逻辑运算并布尔结果返回相应的 布尔结果 l|,&表示快速或、快速逻辑与(建议使用),含义是 在整个逻辑表达式中,只要运算符左侧已经能够得出 整个表达式的值,则不再计算右运算符。 例如:true|boolean,false&boolean SISE Java语言程序 设计实用教程 26 运算符的优先级 l 表达式的运算次序取决于表达式中各种运算符的优 先级。优先级高的先运算,优先级低的后运算,另 外还可用括号“()”改变表达式的运算次序。优 先级由高到低为: . ( ) + - +(正号) -(负号) (造型) new * / % 优先级顺序可以省略括号: + - 语句if ( x+y3 )利用了+优先级比 高 = = instanceof = != & | ?: = += - = *= /= SISE Java语言程序 设计实

温馨提示

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

评论

0/150

提交评论