版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第2章章 数据类型与运算符数据类型与运算符数据类型与运算符数据类型与运算符本章要点本章要点n目标目标n理解:理解:常量、变量和表达式。常量、变量和表达式。n掌握:掌握:Java中的八种原始数据类型。中的八种原始数据类型。n掌握:运算符和表达式的应用。掌握:运算符和表达式的应用。n重点重点n掌握:熟练使用整型、浮点型、字符型常用的数据类型的定义,表示掌握:熟练使用整型、浮点型、字符型常用的数据类型的定义,表示和引用。和引用。n掌握:算术运算符、关系运算符和逻辑运算符的应用。掌握:算术运算符、关系运算符和逻辑运算符的应用。n难点难点n掌握:自增、自减运算符的不同用法。掌握:自增、自减运算符的不同
2、用法。数据类型与运算符数据类型与运算符n2.1.1 2.1.1 常量常量n定义:定义:n常量是在程序运行过程中其值始终保持不变的量。常量是在程序运行过程中其值始终保持不变的量。n声明常量语法:声明常量语法:nfinal final 数据类型数据类型 常量名常量名= =值;值;n例如:例如:final int A=12;n一般常量用大写。一般常量用大写。n2.1.2 2.1.2 变量变量n定义:定义:n变量是在程序运行时值会发生变化的量。变量是在程序运行时值会发生变化的量。n声明变量语法:声明变量语法:n数据类型数据类型 变量名变量名1,1,变量名变量名2 2,;n数据类型数据类型 变量名变量名
3、1 =1 =初值初值,变量名变量名2 =2 =初值初值,;,;nint k int k ; / /声明一个存放整型且名是声明一个存放整型且名是k k的变量的变量nfloat x, y; /float x, y; /声明浮点型变量声明浮点型变量x,yx,ynchar ch = w; /char ch = w; /声明字符变量声明字符变量chch,初值为初值为w w2.1 常量、变量和表达式常量、变量和表达式数据类型与运算符数据类型与运算符2.1 常量、变量和表达式常量、变量和表达式【例例2-1】源程序名源程序名“ComputeArea.java”,计算面积示例。计算面积示例。 /ComputeA
4、rea为类名;public class ComputeAreapublic static void main (String args)double radius, area;/声明变量;final double PI=3.1415926;/声明常量;radius=20;/给变量赋值;area=radius*radius*PI;System.out.println(“area is”+area);数据类型与运算符数据类型与运算符2.2数据类型数据类型n每个数据类型都有一个值域,或者叫做范围。编译器根据变量或常每个数据类型都有一个值域,或者叫做范围。编译器根据变量或常量的数据类型对其分配存储空间
5、。量的数据类型对其分配存储空间。Java为数值、字符值和布尔值数为数值、字符值和布尔值数据提供了几种基本数据类型。据提供了几种基本数据类型。Java语言的数据类型划分如图语言的数据类型划分如图2-1。数据类型基本数据类型类class数据类型整数类型浮点类型字符类型char布尔类型boolean接口interface数组单精度浮点型float双精度浮点型double字节型byte短整型short整型int长整型long图2-1 Java语言的数据类型数据类型与运算符数据类型与运算符2.2数据类型数据类型表表2-1 Java的基本数据类型的基本数据类型数据类型数据类型关键字关键字占用位数占用位数缺
6、省数值缺省数值取值范围取值范围布尔型布尔型boolean8falsetrue , false 字符型字符型char16u0000u0000 uFFFF字节型字节型byte80128 127短整型短整型short16032768 32767整型整型int3202147483648 2147483647长整型长整型long6409223372036854775808 9223372036854775807单精度单精度float320.0F-3.4E383.4E38双精度双精度double640.0D-1.7E3081.7E308数据类型与运算符数据类型与运算符2.2 数据类型数据类型n2.2.1
7、整数类型整数类型n包括四种类型:包括四种类型: byte、short、int、long。n整数常量:整数常量:n十进制整数,如,十进制整数,如,10,-4;n八进制整数,以八进制整数,以0开头,如开头,如010,-012。n十六进制整数,以十六进制整数,以0 x开头,如开头,如0 x10,零零x。nJava默认整数常量类型为默认整数常量类型为int;要表示;要表示long类型需要在整数后面加上类型需要在整数后面加上L或或l。n整数变量:整数变量:n声明整数类型变量:声明整数类型变量:nint aintvar/声明声明aintvar变量是变量是 int类型;类型;nlong alongvar/声
8、明声明alongvar变量是变量是 long类型;类型;n注意:要根据变量可能处于的最大值选择合适的整型。注意:要根据变量可能处于的最大值选择合适的整型。n2.2.2 浮点类型浮点类型n包括两种类型:包括两种类型:float和和doublenJava默认的浮点型是默认的浮点型是double类型;类型;n数字后面跟数字后面跟d或或D,表示,表示double类型类型;n数字后面跟数字后面跟f或或F,表示,表示float类型类型;数据类型与运算符数据类型与运算符2.2 数据类型数据类型n【例【例2-2】源程序名】源程序名“TypeMaxValue.java”,数值数据类数值数据类型的最大值示例。型的
9、最大值示例。 public class TypeMaxValuepublic class TypeMaxValue public static void main(String args) public static void main(String args) byte largestByte = Byte.MAX_VALUE;byte largestByte = Byte.MAX_VALUE;/ / 定义定义bytebyte类型变量类型变量short largestShort = Short.MAX_VALUE;short largestShort = Short.MAX_VALUE;/定
10、义定义shortshort类型变量类型变量 int largestInteger = Integer.MAX_VALUE; int largestInteger = Integer.MAX_VALUE; /定义定义intint类型的变量类型的变量long largestLong = Long.MAX_VALUE;long largestLong = Long.MAX_VALUE;/定义定义longlong类型的变量类型的变量float largestFloat = Float.MAX_VALUE;float largestFloat = Float.MAX_VALUE;/定义定义floatfl
11、oat类型的变量类型的变量double largestDouble = Double.MAX_VALUE;/double largestDouble = Double.MAX_VALUE;/定义定义doubledouble类型变量类型变量 / / 在屏幕上显示对应类型的最大值在屏幕上显示对应类型的最大值System.out.println(System.out.println(最大的最大的bytebyte值是:值是: + + largestByte);largestByte);System.out.println(System.out.println(最大的最大的shortshort值是:值是
12、: + + largestShort);largestShort);System.out.println(System.out.println(最大的最大的integerinteger值是:值是: + + largestInteger);largestInteger);System.out.println(System.out.println(最大的最大的longlong值是:值是: + + largestLong);largestLong);System.out.println(System.out.println(最大的最大的floatfloat值是:值是: + + largestFloa
13、t);largestFloat);System.out.println(System.out.println(最大的最大的doubledouble值是:值是: + + largestDouble);largestDouble); 数据类型与运算符数据类型与运算符2.2 数据类型数据类型n运行结果运行结果n程序分析程序分析nJavaJava中每种数据类型都封装为一个类,通过类型类的中每种数据类型都封装为一个类,通过类型类的MAX_VALUEMAX_VALUE方法找到各方法找到各种数值数据类型的取值最大值。种数值数据类型的取值最大值。数据类型与运算符数据类型与运算符2.2 数据类型数据类型n2.2
14、.3 字符类型字符类型n字符型常量字符型常量n字符型常量就是用两个单引号括起来的一个字符。如字符型常量就是用两个单引号括起来的一个字符。如AA,11, 表示空格。表示空格。nFinal char NAME=A;Final char NAME=A;n字符型变量字符型变量n字符型变量是字符型变量是charchar,用于表示单个字符。,用于表示单个字符。nchar letter=d;char letter=d;nchar numchar=2;char numchar=2;n字符串常量字符串常量n字符串常量就是括在两个双引号之间字符串常量就是括在两个双引号之间0 0个或多个字符组成的序列。个或多个字符
15、组成的序列。nString message=“Welcome to String message=“Welcome to Java!”;/!”;/字符串必须用双引号括住。字符串必须用双引号括住。 n注意:注意:n字符型变量可以进行增量减量运算。字符型变量可以进行增量减量运算。n“A”是字符串;而是字符串;而A是字符。是字符。数据类型与运算符数据类型与运算符2.2 数据类型数据类型n2.2.4 布尔类型布尔类型n布尔数据类型的值域包括两个值:真(布尔数据类型的值域包括两个值:真(truetrue)和假(和假(falsefalse)。)。nboolean doorOpen=true;n布尔类型的值
16、不能转换成任何数据类型,布尔类型的值不能转换成任何数据类型,truetrue不等于不等于1 1,falsefalse也不也不等于等于0 0。n2.2.5 2.2.5 类型之间的转换类型之间的转换n自动类型转换自动类型转换n自动转换按照低级类型转换成高级类型的规则进行,有系统自动实现。自动转换按照低级类型转换成高级类型的规则进行,有系统自动实现。nbye-short-int-long-float-doublebye-short-int-long-float-double/从左到右依次自动转换从左到右依次自动转换nchar-intchar-int/char/char类型可以直接转换成类型可以直接转
17、换成intint类型类型n强制类型转换强制类型转换n由高级类型向低级类型转换叫做强制类型转换。由高级类型向低级类型转换叫做强制类型转换。n格式:(目标数据类型)变量名或表达式格式:(目标数据类型)变量名或表达式n例如:例如:int a=345;int a=345;byte b;byte b;b=(byte)a;b=(byte)a;数据类型与运算符数据类型与运算符2.2 数据类型数据类型n【例【例2-3】源程序名】源程序名“TypeTest.java”,数据类型转换示数据类型转换示例。例。 public class TypeTestpublic class TypeTestpublic stat
18、ic void main (String args ) public static void main (String args ) int c; int c; long d=6000;long d=6000;float ffloat f;double g=123456789.987654321;double g=123456789.987654321;c=(int)d;c=(int)d;f=(float)g; /f=(float)g; /导致精度的损失导致精度的损失. .System.out.println(c= +c); System.out.println(c= +c); System.
19、out.println(d= +d); System.out.println(d= +d); System.out.println(f= +f); System.out.println(f= +f); System.out.println(g= +g); System.out.println(g= +g); 数据类型与运算符数据类型与运算符2.1 简单数据类型n运行结果运行结果 n程序分析程序分析n将将longlong类型数据强制转换为类型数据强制转换为intint类型,有些情况可能导致数据溢出。类型,有些情况可能导致数据溢出。n将将doubledouble类型数据强制转换为类型数据强制转换为
20、floatfloat类型,将导致精度的损失,通过类型,将导致精度的损失,通过运行结果可以看出。运行结果可以看出。n所以,进行数据类型的强制转换时一定需要慎重。所以,进行数据类型的强制转换时一定需要慎重。数据类型与运算符数据类型与运算符n2.2.6 转义序列转义序列n转义字符代表一些特殊字符。转义字符代表一些特殊字符。n转义字符主要通过在字符前加一个反斜杠转义字符主要通过在字符前加一个反斜杠“”“”来实现。来实现。n常用的转义字符常用的转义字符 转义字符转义字符含含 义义转义字符转义字符含含 义义bb退格退格uxxxx用用4位位16进制数表示字符进制数表示字符tt制表符制表符tabtab 双引号
21、双引号r回车回车 单引号单引号nn换行换行反斜线反斜线ff换页换页dddddd用用3 3位位8 8进制数表示字符进制数表示字符2.2 数据类型数据类型数据类型与运算符数据类型与运算符2.3 运算符和表达式运算符和表达式n运算符是表明作何种运算的符号。运算符是表明作何种运算的符号。n操作数是被运算的数据。操作数是被运算的数据。n表达式是由操作数和运算符组成的式子。表达式是由操作数和运算符组成的式子。n表达式的运算结果称为表达式的值。表达式的运算结果称为表达式的值。nJavaJava提供的运算符,按操作数的数目来分,可有:提供的运算符,按操作数的数目来分,可有:n一元运算符:需要一个操作数。一元运
22、算符:需要一个操作数。i i,i i,i i,i in二元运算符:需要二个操作数。二元运算符:需要二个操作数。a ab b,a ab b,ababn三元运算符:需要三个操作数。表达式三元运算符:需要三个操作数。表达式1 1 ?表达式?表达式2 : 2 : 表达式表达式3 3n三目表达式的运算规则是:如果表达式三目表达式的运算规则是:如果表达式1 1的值为的值为truetrue,则整个表达式的值取则整个表达式的值取表达式表达式2 2的值。如果表达式的值。如果表达式1 1的值为的值为falsefalse,则整个表达式的值取表达式则整个表达式的值取表达式3 3的值。的值。n例如,例如,43? 4:3
23、43? 4:3表达式的值为表达式的值为4 4。n多数二元运算符具有自左向右的结合性,一元运算符具有自右向左结合性。多数二元运算符具有自左向右的结合性,一元运算符具有自右向左结合性。n运算符按功能分为运算符按功能分为8类:类:n算术运算符;关系运算符;逻辑运算符;位运算符;条件运算符;算术运算符;关系运算符;逻辑运算符;位运算符;条件运算符;n赋值运算符;扩展运算符;其他运算符(分量运算符,下标运算符等)。赋值运算符;扩展运算符;其他运算符(分量运算符,下标运算符等)。数据类型与运算符数据类型与运算符2.3 运算符和表达式运算符和表达式n2.3.1算术运算符算术运算符n算术运算符可以对数值型和字
24、符型数据进行运算,但不能对布算术运算符可以对数值型和字符型数据进行运算,但不能对布尔类型数据进行运算。尔类型数据进行运算。表表2-3 Java 定义的算术运算符定义的算术运算符运算符运算符意义意义运算符运算符意义意义+加加%求余求余-减减+自增自增*乘乘-自减自减/除除 n基本算术运算符基本算术运算符n加,减,乘,除;加,减,乘,除;n注意:对整数进行注意:对整数进行“/”除法运算时,所有余数都去掉。除法运算时,所有余数都去掉。ndouble i1=1.0/2.0 ; /i1的结果是的结果是0.5n int i2=1/2 ; /i2的结果是的结果是0nint i3=5/2; /i3的结果是的结
25、果是2ndouble i4=5.0/2.0 /i4的结果是的结果是2.5数据类型与运算符数据类型与运算符2.3 运算符和表达式运算符和表达式n2.3.1算术运算符算术运算符n模运算符模运算符n整数,浮点数都可以进行模运算,其结果是整数和浮点数。整数,浮点数都可以进行模运算,其结果是整数和浮点数。nint i5=42%10 /i5的值为的值为2ndouble i6=42.5%10 /i6的值为的值为2.5n自增和自减运算符自增和自减运算符nx+,+x等同于等同于x=x+1;nx-,-x等同于等同于x=x-1; n+,-前置后置于变量使用不同前置后置于变量使用不同n若运算符是前置于变量的,则变量先
26、加若运算符是前置于变量的,则变量先加1 1或减或减1 1,再参与表达式中的运算。,再参与表达式中的运算。n若运算符是后置于变量的,则变量先参与表达式的运算,再加若运算符是后置于变量的,则变量先参与表达式的运算,再加1 1或减或减1 1。n例如:例如:nint i=10int i=10;nint nint n;nn=10n=10* *i+i+;/先算先算1010* *i i即即1010* *1010等于等于100100,再计算机,再计算机i+i+,i i的值是的值是1111,n n值是值是100100n另例:另例:ndouble x=1.0;double x=1.0;ndouble y=5.0;
27、double y=5.0;ndouble z=x- - +(+ +y); double z=x- - +(+ +y); n三行都执行完后,三行都执行完后,y变为变为6.0,z变为变为7.0,而,而x变为变为0.0。数据类型与运算符数据类型与运算符2.3 运算符和表达式运算符和表达式n2.3.22.3.2关系运算符和逻辑运算符关系运算符和逻辑运算符n关系运算符关系运算符n关系运算又称比较运算,用来比较两个同类型数据的大小。关系运算符关系运算又称比较运算,用来比较两个同类型数据的大小。关系运算符都是双目运算符。关系运算的结果是布尔值,即都是双目运算符。关系运算的结果是布尔值,即true(真)或真)
28、或false(假)。假)。Java提供的关系运算符见表提供的关系运算符见表2-4表。表。表表2-4 2-4 比较运算符比较运算符运算符运算符名称名称例例结果结果 小于小于1313truetrue=小于等于小于等于1=31 大于大于1212falsefalse=大于等于大于等于1=21=2falsefalse=等于等于1=21=2falsefalse数据类型与运算符数据类型与运算符2.3 运算符和表达式运算符和表达式n逻辑运算符逻辑运算符n逻辑运算又称布尔运算,是对布尔值进行运算,其运算结果仍为布尔值。逻辑运算又称布尔运算,是对布尔值进行运算,其运算结果仍为布尔值。常用的逻辑运算符如表常用的逻辑
29、运算符如表2-5所示。所示。 表表2-5 2-5 逻辑运算符逻辑运算符运算符运算符名称名称举例举例描描 述述! !非非! !x x对对x x 进行取反运算。例如,若进行取反运算。例如,若x x为为truetrue,结果为结果为falsefalse&与与x&yx&y若若x x和和y y都为都为truetrue,结果才为结果才为truetrue|或或x|yx|y若若x x和和y y都为都为falsefalse,结果才为结果才为falsefalse异或异或xyxy假设变量假设变量x=1x=1和和y=2y=2,则则( (x1) (y= =2)x1) (y= =2)的结果为的结果
30、为truetrue。数据类型与运算符数据类型与运算符2.3 运算符和表达式运算符和表达式n2.3.3 2.3.3 位运算符位运算符n位运算符用于对二进制位位运算符用于对二进制位(bit)进行运算。位运算符的操作数和结果都是进行运算。位运算符的操作数和结果都是整数。整数。n常见的位运算符如表常见的位运算符如表2-6所示。所示。表表2-6 位运算符位运算符运算符运算符名名 称称应用举例应用举例运算规则运算规则 按位取反按位取反 x x对对x x每个二进制位取反每个二进制位取反& &按位与按位与x&yx&y对对x x,y y每个对应的二进制位做与运算每个对应的二进制位
31、做与运算| |按位或按位或x|yx|y对对x x,y y每个对应的二进制位做或运算每个对应的二进制位做或运算 按位异或按位异或xyxy对对x x,y y每个对应的二进制位做异或运算每个对应的二进制位做异或运算按位左移按位左移xax按位右移按位右移xaxa将将x x各二进制位右移各二进制位右移a a位位不带符号的不带符号的按位右移按位右移xaxa将将x x各二进制位右移各二进制位右移a a位,左面的空位要位,左面的空位要补补0 0数据类型与运算符数据类型与运算符2.3 运算符和表达式运算符和表达式n2.3.4 2.3.4 赋值运算符和条件运算符赋值运算符和条件运算符n赋值运算符赋值运算符n赋值运
32、算符用于给变量或对象赋值。赋值运算符用于给变量或对象赋值。n基本赋值运算符使用形式:基本赋值运算符使用形式:n变量或对象变量或对象= =表达式表达式n“= =”的作用是,把右边表达式的值赋给左边的变量或对象。的作用是,把右边表达式的值赋给左边的变量或对象。n例如:例如:nj=k=i+2j=k=i+2; /运算顺序是,先将运算顺序是,先将i i加加2 2的值赋给的值赋给k k,再把再把k k的值赋给的值赋给j j。nx=12.45;x=12.45;ny=2y=2* *x+1;x+1;ni=(int)x;i=(int)x;n条件赋值运算符:条件赋值运算符:n条件赋值运算符(?条件赋值运算符(?:
33、: )是)是三元运算符。三元运算符。n一般形式:一般形式:n 1? 2: 3nA=5; B=A10?100:1000;A=5; B=A10?100:1000;/结果结果B为10001000数据类型与运算符数据类型与运算符2.3 运算符和表达式运算符和表达式n2.3.5 2.3.5 扩展运算符扩展运算符n扩展运算符是在基本赋值运算符前面加上其他运算符后构成的赋值扩展运算符是在基本赋值运算符前面加上其他运算符后构成的赋值运算符。运算符。Java提供的各种扩展运算符见表提供的各种扩展运算符见表2-7所示。所示。 表表2-7 扩展运算符扩展运算符表2-7 复合赋值运算符运运 算算 符符名名 称称举举
34、例例功功 能能+=+=加赋值运算符加赋值运算符a+=ba+=ba=a+ba=a+b-=-=减赋值运算符减赋值运算符a-=ba-=ba=a-ba=a-b* *= =乘赋值运算符乘赋值运算符a a* *=b=ba=aa=a* *b b/=/=除赋值运算符除赋值运算符a/=ba/=ba=a/ba=a/b%=%=取余赋值运算符取余赋值运算符a%=ba%=ba=a%ba=a%b&=&=位与赋值运算符位与赋值运算符a&=ba&=ba=a&ba=a&b|=|=位或赋值运算符位或赋值运算符a|=ba|=ba=a|ba=a|b=位异或赋值运算符位异或赋值运算符a=
35、ba=ba=aba=ab=算术左移赋值运算符算术左移赋值运算符a=ba=ba=aba=a=算术右移赋值运算符算术右移赋值运算符a=ba=ba=aba=ab数据类型与运算符数据类型与运算符2.3 运算符和表达式运算符和表达式n2.2.3.6 3.6 其他运算符其他运算符n分量运算符(分量运算符(“.”“.” ):):n意为意为SytemSytem类的类的outout方法方法; ;n实例运算符(实例运算符(instanceofinstanceof):):nt instanceof Tread;t instanceof Tread; / /用来测试用来测试t t是否是是否是TreadTread的一个实例的一个实例n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 轻钢模板施工方案(3篇)
- 酸碱罐泄漏应急预案(3篇)
- 镀锌风管现场施工方案(3篇)
- 青白石台阶施工方案(3篇)
- 职业角色转变指南
- 新护士五年成长计划
- 锅炉大件热处理工复测模拟考核试卷含答案
- 保安员操作管理强化考核试卷含答案
- 铁合金火法冶炼工变革管理考核试卷含答案
- 大型桥梁机械操作工创新方法测试考核试卷含答案
- 水厂配套引水管道工程环评环境影响报告书
- 【能力提升】高中选择性必修下册第二单元测试卷(含解析)
- 加油站会议管理制度
- HG∕T 4104-2019 水性氟树脂涂料
- 2023年烟草辽宁公司招聘考试真题及答案
- 第1单元水复习(课件)科教版科学三年级上册
- 《项目物资管理》课件
- iso14000环境管理体系
- CATIA各模块功能全面讲解经典收藏(基础)
- 临沂市兰山区2022-2023学年小升初数学重难点模拟卷含答案
- 脚手架外挂架
评论
0/150
提交评论