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

下载本文档

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

文档简介

Java语言程序设计实用教程,第三讲类型与运算符,3,本章学习要点:,理解Java的数据类型掌握Java一维、二维数组的使用掌握Java的运算符使用,4,数据类型,数据是程序操作的对象,具有名称、类型和作用域等特性。数据由标识符命名;数据的类型表示数据的性质、占用内存多少以及存放格式,不同的数据类型执行不同的操作;数据的作用域表示数据在程序中可以使用的范围。Java语言的数据类型分为两类:原始数据类型(基本数据类型)和引用数据类型(复合数据类型)。,数据类型的分类,数据类型的分类如下所示:,数据类型,基本数据类型,复合数据类型,数值型,字符型:char,布尔型:boolean,整型:byte,short,int,long,实型:float,double,类:class,数组和字符串,接口:interface,6,基本数据类型的说明(P53页,表3-1),所有基本数据类型的大、小(所占用的字节数)都已明确规定好,在各种不同的平台上都保持一致,这一特性有助于提高Java程序的可移植性。长度类型范围8bitsbyte-27(128).27-116bitsshort-215(32728).215132bitint-231(21亿).231164bitslong-263(900亿亿).2631注:还可以用java.math包中的两个类:BigInteger,可以操作任意长度的整数运算。BigDecimal,可以操作任意长度的浮点数运算,浮点值,缺省为double浮点文字包括小数点或下列各项之一E或e(增加指数值),F或f(float),D或d(double)例如:3.14一个简单的double值4.02E23一个大的double值2.718F一个简单的float值三种特殊的浮点值:最大值:Double.MAX_VALUE(2-2-52)21023)最小值:Double.MIN_VALUE(2-1074)正无穷大:Double.POSITIVE_INFINITY负无穷大:Double.NEGATIVE_INFINITY非数字:Double.NaN无穷大表示溢出,如0除任何数。非数字表示出错,如0/0或负数开方。,浮点变量类型及范围,长度类型范围32bitsfloat约3.40282347E+38F(有效小数6-7位)64bitsdouble约1.797693134862317E+308(有效小数15位)注意:浮点变量之间注意=运算符的使用。应该用如下形式:doublex,y;x=;y=;/*错误的用法*/if(x=y)/*正确的用法*/if(Math.abs(x-y)高byte,short,char-int-long-float-double强制类型转换当两种类型彼此不兼容,或者目标类型的取值范围小于源类型,自动转换无法进行,这时就需要进行强制类型转换。强制类型转换的通用格式如下:目标类型变量=(目标类型)值;高级数据要转换成低级数据,需用到强制类型转换表达式数据类型的自动提升如果在JAVA应用程序表达式中出现数据类型不一致的情形,那么JAVA运行时系统首先自动将低优先级类型的数据转换成高优先级类型的数据,然后才进行表达式值的计算。,数据类型的转换(二),数据类型之间的逻辑转换,上图画出了可以自动进行的类型转换,如intsalary=2000;floatoutput=salary;黑色粗箭头表示无精度损失的转换,红色细箭头表示有可能会出现精度损失的转换。,Wrapper类,把基本数据类型包装为类,如int类型有java.lang.Integer类做为包装器.可使原始变量有类的表现形式.,Wrapper类的数据类型转换,利用类的方法:不同类型的转换方式是类似的parseXXX的方法,例如:inta=Interger.paseInt(“123456”);也可用可以使用valueOf()方法来转换类型:inta=Interger.value(123456);Strings=String.valueOf(time);利用对象方法:Doubled;Strings;d=newDouble(12.3);/构造s=d.toString();,14,复合数据类型,复合数据类型是建立在基本数据类型的基础上的,即可再分。复合数据类型是由用户自己定义的、用来限制其他数据的类型。Java语言中不支持C/C+中的指针类型、结构类型、联合类型和枚举类型。参考P53表3-2,书上漏了String类型,一维数组,在Java中,数组是独立的类,可有自身的方法,不是变量的集合。一个数组是数组类的一个对象,将相同类型的数据存储在连续存储单元中,可用数字索引数组中单独数据项。语法:intIntArray(提倡格式)类型变量名数组定义有三种方法,1.声明数组2.声明并创建数组3.声明、创建、并初始化数组,具体参阅P54,表3-3,如:intIntArray=newint5,引用类型数组,intintArray=11,47,93,26,38分配空间+赋初值静态初始化必须与数组定义放在一个语句中。intArray=newint10;/原数组丢失。,XXXX,intArray,11,47,93,38,26,数组元素为类的对象,定义数组Integera;/NullhandleIntegerb=newInteger5;创建数组元素的对象实例for(inti=0;ib.length;i+)bi=newInteger(I*10);创建数组时初始化Integerd=newInteger(1),newInteger(2),newInteger(3);,多维数组定义,数组元素又是数组对象,参阅P55,表3-4当为多维数组分配内存时,只需要为第一维(最左边的一维)指定大小和分配内存,而其余的可以单独分配。例如,下面的代码就在声明table时为它的第一维分配了内存,而它的第二维是手动分配内存的。intintArray=newint105;intintArray=1,3,2,4,1,2,3,4,数组类,数组使用之前要确定大小,可以在程序中根据需要指定其大小(如用表达式计算出大小)。一旦生成数组,大小不可改变。java不支持变长数组。数组的属性length数组元素的个数java数组作为一种对象类型,可以作为方法的参数,传的是指向数组的引用。ArrayIndexOutOfBoundsException例外,数组使用举例,intm1,m2;inta;m1=5;m2=10;a=newintm1m2;for(inti=0;i5;i+)for(intj=0;j10;j+)aij=i*j;for(inti=0;iB的话,就将100赋给C,否则就将200赋给C运算符可分为算术操作、位操作、关系操作和逻辑操作,算术运算符(P58,表3-5),inti=6;inti=6;intj=i+;intj=+i;resulti=7,j=6resulti=7,j=7,/:0/0非法,0/0.0合法,double、float存的都是不精确的数,0不是真正的0,也许是0.0000000002,有微小的误差,所以除一下就很大一个数了,int的0就是0;%:可用于浮点数运算;+、-:前缀用法与后缀用法不一样;,+、-、*、/、%、+、-,位运算符(P59,表3-6),关心值内部表示,所有的整数类型都可用二进制表示,例如:移位带符号右移:左侧空出位全用符号位填充,理解为不带符号右移:左侧空出位用0填充2x23000011110011110000000011100000111-1711101111101111001111101100111011,1281128/21=642564256/24=16-2564-256/24=-161281128*21=256163)利用了+优先级比高=instanceof=!=&|?:=+=-=*

温馨提示

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

评论

0/150

提交评论