欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载  

    Java语言程序设计实用教程第三讲类型与运算符.ppt

    • 资源ID:2201876       资源大小:241.51KB        全文页数:28页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java语言程序设计实用教程第三讲类型与运算符.ppt

    Java语言程序设计实用教程,第三讲 类型与运算符,3,本章学习要点:,理解Java的数据类型 掌握Java一维、二维数组的使用 掌握Java的运算符使用,4,数据类型,数据是程序操作的对象,具有名称、类型和作用域等特性。 数据由标识符命名; 数据的类型表示数据的性质、占用内存多少以及存放格式,不同的数据类型执行不同的操作; 数据的作用域表示数据在程序中可以使用的范围。 Java语言的数据类型分为两类:原始数据类型(基本数据类型)和引用数据类型(复合数据类型)。,数据类型的分类,数据类型的分类如下所示:,数据类型,基本数据类型,复合数据类型,数值型,字符型:char,布尔型:boolean,整型:byte,short,int,long,实型:float,double,类:class,数组和字符串,接口:interface,6,基本数据类型的说明( P53页,表3-1 ),所有基本数据类型的大、小(所占用的字节数)都已明确规定好,在各种不同的平台上都保持一致,这一特性有助于提高Java程序的可移植性。 长度 类型 范围 8 bits byte -27(128) . 27 -1 16 bits short -215(32728) . 215 1 32 bit int -231(21亿) . 231 1 64 bits long -263(900亿亿) . 263 1 注:还可以用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或负数开方。,浮点变量类型及范围,长度 类型 范围 32 bits float 约±3.40282347E+38F (有效小数6-7位) 64 bits double 约±1.797693134862317E+308 (有效小数15位) 注意:浮点变量之间注意= =运算符的使用。应该用如下形式: double x, y; x = ; y = ; /*错误的用法*/ if (x = = y) /*正确的用法*/ if( Math.abs(x-y) 0.00001 ) 其中,0.00001表示需要的计算精度要求。,数据类型的转换有自动转变和强制转换两种形式 自动类型转换 整型,实型,字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级。 要实现自动类型转变,需要同时满足两个条件,第一是两种类型彼此兼容,第二是目标类型的取值范围大于源类型。 例如,当byte型向int型转换时,由于int型的取值范围大于byte型,就会发生自动转换。,数据类型的转换(一),不同类型数据间的优先关系如下: 低-高 byte,short,char- int - long - float - double 强制类型转换 当两种类型彼此不兼容,或者目标类型的取值范围小于源类型,自动转换无法进行,这时就需要进行强制类型转换。强制类型转换的通用格式如下: 目标类型 变量=(目标类型)值; 高级数据要转换成低级数据,需用到强制类型转换 表达式数据类型的自动提升 如果在JAVA应用程序表达式中出现数据类型不一致的情形,那么JAVA运行时系统首先自动将低优先级类型的数据转换成高优先级类型的数据,然后才进行表达式值的计算。,数据类型的转换(二),数据类型之间的逻辑转换,上图画出了可以自动进行的类型转换,如 int salary = 2000; float output = salary; 黑色粗箭头表示无精度损失的转换,红色细箭头表示有可能会出现精度损失的转换。,Wrapper类,把基本数据类型包装为类,如int类型有java.lang.Integer类做为包装器.可使原始变量有类的表现形式.,Wrapper类的数据类型转换,利用类的方法:不同类型的转换方式是类似的parseXXX的方法,例如:int a=Interger.paseInt(“123456”);也可用可以使用valueOf()方法来转换类型: int a=Interger.value(“123456“); String s=String.valueOf(time); 利用对象方法: Double d ; String s; d=new Double(12.3) ; /构造 s= d.toString();,14,复合数据类型,复合数据类型是建立在基本数据类型的基础上的,即可再分。 复合数据类型是由用户自己定义的、用来限制其他数据的类型。 Java语言中不支持C/C+中的指针类型、结构类型、联合类型和枚举类型。 参考P53表3-2,书上漏了String类型,一维数组,在Java中,数组是独立的类,可有自身的方法,不是变量的集合。 一个数组是数组类的一个对象,将相同类型的数据存储在连续存储单元中,可用数字索引数组中单独数据项。 语法:int IntArray (提倡格式) 类型 变量名 数组定义有三种方法,1.声明数组2.声明并创建数组3.声明、创建、并初始化数组,具体参阅P54,表3-3, 如:int IntArray = new int 5,引用类型数组,int intArray = 11, 47, 93, 26, 38 分配空间+赋初值 静态初始化必须与数组定义放在一个语句中。 intArray = new int10 ; /原数组丢失。,XXXX,intArray,11,47,93,38,26,数组元素为类的对象,定义数组 Integer a; / Null handle Integer b = new Integer5; 创建数组元素的对象实例 for(int i = 0; i b.length; i+) bi = new Integer(I*10); 创建数组时初始化 Integer d = new Integer(1), new Integer(2), new Integer(3);,多维数组定义,数组元素又是数组对象,参阅P55,表3-4 当为多维数组分配内存时,只需要为第一维(最左边的一维)指定大小和分配内存,而其余的可以单独分配。例如,下面的代码就在声明table时为它的第一维分配了内存,而它的第二维是手动分配内存的。 int intArray = new int 105 ; int intArray = 1,3,2,4,1,2,3,4 ,数组类,数组使用之前要确定大小,可以在程序中根据需要指定其大小(如用表达式计算出大小)。 一旦生成数组,大小不可改变。java不支持变长数组。 数组的属性length 数组元素的个数 java数组作为一种对象类型,可以作为方法的参数,传的是指向数组的引用。 ArrayIndexOutOfBoundsException 例外,数组使用举例,int m1 , m2 ; int a ; m1=5 ; m2=10; a=new intm1m2; for(int i=0 ; i5 ; i+) for(int j=0 ; j10 ; j+) aij = i*j ; for(int i=0 ; ia.length ; i+) for(int j=0 ; jai.length ; j+) System.out.print(aij + “ “); System.out.println(“); ,运算符,运算符是一种特殊字符,用来操作一个或多个操作数,然后生成结果。 一元:只需一个操作数,运算符在操作数前面或者后面 二元:需要有两个操作数,运算符在它们之间 三元:需要三个操作数的运算符被成为三元运算符,它是由?:符号表示的,具体的含义其实就和if-else结构的含义差不多,例如: Int A,B,C; A=2; B=3; C=AB ? 100 :200; 这条语句的意思是,如果AB的话,就将100赋给C,否则就将200赋给C 运算符可分为算术操作、位操作、关系操作和逻辑操作,算术运算符(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 ; %: 可用于浮点数运算; +、-:前缀用法与后缀用法不一样;,+、-、*、 /、 %、+、 -,位运算符(P59,表3-6),关心值内部表示,所有的整数类型都可用二进制表示,例如:移位 带符号右移:左侧空出位全用符号位填充,理解为 不带符号右移 :左侧空出位用0填充 2 x 2 30 00011110 01111000 00000111 00000111 -17 11101111 10111100 11111011 00111011,1281 128 / 21 = 64 2564 256 / 24 = 16 -2564 -256 / 24 = -16 128 1 128 * 21 = 256 16 2 16 * 22 = 64,关系运算符(P60,表3-7),=、!=、 =、instanceof,运算结果是一个布尔值boolean.,instanceof: 判断一个reference的类型是否属于某种类,即测试它左边的对象是否是它右边的类的实例,String s=“jlj”; if(s instanceof String) else ,&、 |、 !、 、 &&、 |,逻辑运算符(P61,表3-8),是将两个布尔值进行逻辑运算并布尔结果返回相应的布尔结果 |,&&表示快速或、快速逻辑与(建议使用),含义是在整个逻辑表达式中,只要运算符左侧已经能够得出整个表达式的值,则不再计算右运算符。 例如:true|boolean,false&&boolean,26,运算符的优先级,表达式的运算次序取决于表达式中各种运算符的优先级。优先级高的先运算,优先级低的后运算,另外还可用括号“()”改变表达式的运算次序。优先级由高到低为: . ( ) + - +(正号) -(负号) (造型) new * / % 优先级顺序可以省略括号: + - 语句if ( x+y3 )利用了+优先级比高 = = instanceof = != && | ?: = += - = *= /=,27,实验,书上例子: P54,例3-1 P56,例3-2 P58,例3-3 P60,例3-4 P61,例3-5 书上习题:P63,3.1-3.5,28,小结,掌握数据类型的大小、适用范围 数组在很多实际的问题中很有用,需要灵活应用,特别是需掌握数组大小的定义、赋值、引用等 掌握四种类型运算符在不同场合上的使用,通常一个程序包含了四种类型的运算符,

    注意事项

    本文(Java语言程序设计实用教程第三讲类型与运算符.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开