《第02章数据类型及其运算-yrlong优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第02章数据类型及其运算-yrlong优秀PPT.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第02章数据类型及其运算-yrlong现在学习的是第1页,共53页主要内容2.1标识符和关键字 2.2常量和变量 2.3基本数据类型 2.4运算符 2.5表达式 2.6数组 现在学习的是第2页,共53页标识符n标识符:为程序中的各个元素进行命名.n一般地,在Java 中标识符是以字母、下划线(_)、美元符号($)等其它货币符号(如,)开始的一个字符序列,后面可以跟字母、下划线、美元符号、数字等字符。nJava语言使用Unicode字符集 n标识符是大小写敏感的,没有最大长度的限制,不能和关键字相同 现在学习的是第3页,共53页标识符n总体来说定义标识符可以使用的字符包括:n大小写字母、数字;n
2、Unicode字符集中编号大于0 xC0的所有字符。n凡是用Character.isJavaIdentifierStart()返回true,都可作为首字符,Character.isJavaIdentifierPart()返回true,都可作为标识符的一部分。n合法的标识符:nBody,_test,$hellon非法标识符:n 5Test,hello*,world#,classn注意:在中文环境下,可以使用汉字作为标识符。例如,int 中文=5;现在学习的是第4页,共53页练习题Which declarations of identifiers are legal?A.$personsB.Two
3、UsersC.*pointD.thisE._endline 现在学习的是第5页,共53页关键字n所有的关键字都是小写的。如果被大写,就不是关键字了。n用于数据类型的关键字nbyte short int long float double char booleann用于流程控制语句的关键字nif else switch case default do while for break continuen方法、类型、变量的修饰关键字nprivate public protected final static abstract synchronized volatilen异常处理关键字ntry cat
4、ch finally throw throws现在学习的是第6页,共53页关键字n对象相关关键字nnew extends implements class instanceof this supern字面值常量关键字nfalse true nulln方法相关关键字nreturn voidn包相关关键字npackage import现在学习的是第7页,共53页练习题Which of the following are Java keywords?1)NULL 2)new 3)instanceOf 4)wend现在学习的是第8页,共53页注释 n单行注释n单行注释以“/”开头,至该行结尾,其格式如
5、下:n多行注释n/*注释文本n n*/n文档注释n/*注释文本n*注释文本n*n*/现在学习的是第9页,共53页主要内容2.1标识符和关键字 2.2常量和变量 2.3基本数据类型 2.4运算符 2.5表达式 2.6数组 现在学习的是第10页,共53页变量 n修饰符修饰符 =,=.;nint i;nint j=5,k=4;n作用域分,变量大致可分为:局部变量、类成员变量、方法参数、异常处理参数。现在学习的是第11页,共53页变量作用域n局部变量是在方法内部或代码块中声明的变量,它的作用域为它所在的代码块,在程序设计中,以“”为界。n类成员变量,它的作用域是整个类。又可以细分为静态变量和实例变量
6、n方法参数的作用域,是它所在的方法 n异常处理参数的作用域,是它所在的异常处理部分 n变量隐藏(按作用域的大小)(在一个作用域中有多个同名的变量)现在学习的是第12页,共53页常量 n整形常量234,实型常量23.4,字符常量a,布尔常量true和false,以及字符串常量“hello world!”nfinal关键字(后面还会碰到)nfinal int MAX=100;nfinal int MAX_LOOP=5;现在学习的是第13页,共53页主要内容2.1标识符和关键字 2.2常量和变量 2.3基本数据类型 2.4运算符 2.5表达式 2.6数组 现在学习的是第14页,共53页数据类型分类数
7、据类型基本类型引用类型数值类型字符类型(char)布尔类型(boolean)整数类型(byte,short,int,long)浮点类型(float,double)类(class)接口(interface)数组图图 2-1 Java语言的数据类型语言的数据类型现在学习的是第15页,共53页数据类型nJava的基本数据类型都有固定的数据位,不随运行平台的变化而变化。n引用类型都是用类或对象实现的。n布尔类型 nboolean b=false;现在学习的是第16页,共53页字符类型字符类型n一个字符用一个16位的Unicode码表示 nchar c,c1=a;n中的Unicode码是u4e2d n整
8、数和字符型数据在一起运算 n字符向整数转换转义字符转义字符 描述描述 ddd1到3位8进制数所表示的字符(ddd)uxxxx1到4位16进制数所表示的字符(xxxx)单引号字符双引号字符 反斜杠 r回车 n换行 f走纸换页 t横向跳格 b退格现在学习的是第17页,共53页整数类型 nJava中的整数有三种进制形式表示:n十进制:用09的数值表示,首位不能为0,例如:124,-100;n八进制:以0开头,后跟多个07之间的数字,如0134;n十六进制:以0 x或者0X开头,后跟多个09之间的数字、或AF之间的的大写字、或者af之间的小写字母。af或者A-F分别表示1015,例如,0 x23FE,
9、等于十进制数9214。现在学习的是第18页,共53页整数类型数据类型数据类型所占位数所占位数数的范围数的范围byte8-27(27-1)short16-215(215-1)int32-231(231-1)long64-263(263-1)在表示在表示long型常量时,需要在数字后面加上后缀型常量时,需要在数字后面加上后缀L或者或者l。例如3L表示一个long型的常量,而不是int型常量。现在学习的是第19页,共53页浮点类型 数据数据类类型型所占位数所占位数数的范数的范围围float(单精度浮点数)323.4e-038 3.4e+038double(双精度浮点数)641.7e-308 1.7e
10、+308一个浮点数隐含为double型。在一个浮点数后加字母F或f,表示float型。常量值3.45的类型是double;3.45F的类型是float。现在学习的是第20页,共53页各类型数据间的相互转换 n自动类型转换自动类型转换n从低级到高级发生自动类型转换。从表达范围小的类型向表达范围大的类型发生自动类型转换。不同数据类型的转换如下所示:n低低-高高nbyte,short,char-int-long-float-doublen注意:注意:byte,short和char在一起运算时,首先转换为int类型进行运算。n【例例2-1】分析下面程序中的错误。nbyte b1=5;nshort s1
11、=6;nshort s2;ns2=b1+s1;现在学习的是第21页,共53页类型转换n强制类型转换强制类型转换n由高级向低级数据类型转换时,需要强制类型转换。例如:n int i65;n char c;n c=(char)i;/把int型变量转换成char型,需要强制类型转换。现在学习的是第22页,共53页练习题Which of the following are legal statements?1)float f=1/3;2)int i=1/3;3)float f=1.01;4)double d=999d;现在学习的是第23页,共53页主要内容2.1标识符和关键字 2.2常量和变量 2.3
12、基本数据类型 2.4运算符 2.5表达式 2.6数组 现在学习的是第24页,共53页算数运算符 运算符运算符用法用法含含义义结结合性合性二元运算符+op1+op2加法左-op1-op2减法左*op1*op2乘法左/op1/op2除法左%op1%op2模运算(求余)左一元运算符+op1正数右-op1负数右+op1,op1+自增右,左-op1,op1+自减右,左现在学习的是第25页,共53页算数运算符的特点n对于二元运算符,运算结果的数据类型一般为两个操作数中表达范围较大的类型。例如,一个整数和浮点数运算的结果为浮点数。n对于一元运算符,运算结果的类型与操作数的类型相同。n自增、自减运算符有前缀和
13、后缀两种形式,当是前缀形式(即+、-符号出现在变量的左侧)时,对变量实施的运算是“先运算后使用”;当是后缀形式(即+、-符号出现在变量的右侧)时,对变量实施的运算是“先使用后运算”。现在学习的是第26页,共53页算数运算符的注意事项算数运算符的注意事项 n在Java中,%(求模运算符)的操作数可为浮点数,如52.3%10=2.3;nJava对+运算进行了扩展,可作字符串连接运算符,如ab+efd得abefd;n做+运算时,如果一个操作数是字符串,其它操作数自动转换成字符串.如:String s;s=s:+4*5;/结果是s=s:20;nbyte,short,char等类型进行混合运算时,会先自
14、动转换为int类型再运算。现在学习的是第27页,共53页赋值运算符 nj=i+20;运算符运算符示例示例含含义义+=count+=2count=count+2-=count-=2count=count-2*=count*=2count=count*2/=count/=2count=count/2%=count%=2count=count%2现在学习的是第28页,共53页条件运算符 n(boolean_expr)?true_statement:false_statement;n result=sum=0?100:2*num;现在学习的是第29页,共53页位运算符 nJava 用补码表示二进制数
15、n1表示为二进制为n 00000000 00000000 00000000 00000001(4个字节)n-1表示为二进制为n11111111 11111111 11111111 11111111 (4个字节)现在学习的是第30页,共53页运算运算符符示例示例含含义义&Op1&Op2使Op1和Op2按位相与|Op1|Op2使Op1和Op2按位相或Op对Op按位取反Op1 Op2使Op1和Op2按位异或Op1 Op1 Op2使Op1右移Op2位(带符号,左边补充符号位)Op1 Op2使Op1无符号右移Op2位(左边始终补添0)位运算符位运算符 现在学习的是第31页,共53页注意事项n除 为右结合
16、外,其余为左结合。n操作数的类型一般为整型或字符型。&,|,三个运算符可以用于boolean。n右移是用符号位来填充右移后留下的空位,是用零来填充空位.n若两个数据的长度不同,如a&b,a为byte型,b为int型,系统首先会将a的左侧24位填满,若a为正,则填满0,若a为负,填满1即进行“符号扩充”。现在学习的是第32页,共53页举例:按位与运算符按位与运算符&十进制数二进制数操作数1500000000 00000000 00000000 00000101操作数2900000000 00000000 00000000 00001001运算结果100000000 00000000 000000
17、00 00000001现在学习的是第33页,共53页举例n51的 结果 现在学习的是第34页,共53页逻辑运算符 n逻辑运算只能处理布尔类型的数据,所得结果也是布尔值 n逻辑运算符支持短路运算逻辑运算符支持短路运算 运算符运算符示例示例含含义义结结合性合性&Op1&Op2逻辑与运算左|Op1|Op2逻辑或运算左!Op逻辑非运算右现在学习的是第35页,共53页主要内容2.1标识符和关键字 2.2常量和变量 2.3基本数据类型 2.4运算符 2.5表达式 2.6数组 现在学习的是第36页,共53页表达式n表达式是程序设计语言的基本组成部分,表示一种求值的规则,是由运算符和操作数组成的符号序列。n表
18、达式的运算结果的类型,就是表达式的类型 n在对表达式进行运算时,遵循一定的规则,要按运算符的优先级从高到低进行,同级的运算符则按从左到右的方向进行。现在学习的是第37页,共53页表达式高高|低低1 1.()+-!instanceof.()+-!instanceof 2new(type)3*/%4+-5 6=7=!=8&910|11&12|13?:14=+=-=*=/=%=15&=!=现在学习的是第38页,共53页几个特点 n赋值运算符的优先级最低,因为赋值运算符要使用表达式的值;n关系运算符的优先级比布尔逻辑运算符的优先级高;n.,()等运算符的优先级最高;n一元运算符的优先级也比较高;n算术
19、元算符要比关系运算符和二元逻辑运算符的优先级要高。现在学习的是第39页,共53页练习题Which of the following will compile without error?1)char c=1;System.out.println(c1);2)Integer i=Integer(1);System.out.println(i1);3)int i=1;System.out.println(i1);4)int i=1;System.out.println(i1);现在学习的是第40页,共53页练习题nWhich of the following are Java key words?
20、1)double2)Switch3)then4)instanceof现在学习的是第41页,共53页练习题nWhich of the following are not Java keywords?1)volatile2)sizeOf3)goto4)try现在学习的是第42页,共53页练习题Given the following variables which of the following lines will compile without error?String s=Hello;long l=99;double d=1.11;int i=1;int j=0;1)j=i s;2)j=ij
21、;3)j=id;4)j=i1);1)02)-13)14)2147483647现在学习的是第45页,共53页练习题nWhat will be output by the following statement?System.out.println(1 32);1)12)-13)324)-2147483648现在学习的是第46页,共53页主要内容2.1标识符和关键字 2.2常量和变量 2.3基本数据类型 2.4运算符 2.5表达式 2.6数组 现在学习的是第47页,共53页一维数组的定义一维数组的定义 n int a;或者n int a;n这里只有数组变量的定义,没有为数组元素分配空间,只为数组的
22、引用分配了空间,a目前为一个空的引用。n在声明数组时,可以为数组赋初值。例如:n int a=0,1,2,3,4;现在学习的是第48页,共53页使用使用new为数组分配空间为数组分配空间 n=new ;na=new int5;n创建了一个包含个元素的数组,每个元素被自动初始化为 nint a =new int5n每个数组都有一个属性length,指明它的长度 可以讲一个用筛选法求素数 现在学习的是第49页,共53页变量的自动化初始值变量的自动化初始值 数数组组元素的元素的类类型型初始初始值值byte,short,int,long 0float,double0.0char0booleanfals
23、e引用类型null现在学习的是第50页,共53页一维数组的图形表示a null(a)int a a 0 x0345o堆a001234a1 a2 a3 a4(b)int a=0,1,2,3,4 a 0 x4345o堆a000000a1 a2 a3 a4(c)int a;a=new int5;图图2-2 一维数组存储结构一维数组存储结构现在学习的是第51页,共53页二维数组 n最常用的二维数组是一个特殊的一维数组,它的每个元素都是一个一维数组。又叫做数组的数组 n int two;n或 int two;n这里只有变量的定义,没有分配内存空间。n在定义二维数组时也可以赋初值,将数组元素的值用多层括号括起来,例如:n int two=0,1,2,3,4,5;现在学习的是第52页,共53页使用使用new为二维数组分配空间为二维数组分配空间 nint two =new int23;n或者nint two ;n two=new int2 3;n二维数组还有另外一种初始化方式,就是从最高维开始,分别为每一维分配空间。nint two ;ntwo=new int2;ntwo0=new int2;ntwo1=new int3;现在学习的是第53页,共53页
限制150内