ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:110.32KB ,
资源ID:7989474      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7989474.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第2章Java的基本数据类型运算符及表达式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第2章Java的基本数据类型运算符及表达式.docx

1、第2章 Java的基本数据类型运算符及表达式第2章 Java的基本数据类型、运算符及表达式本章将简要介绍Java的标识符、保留字、变量、常量、数据类型、运算符和表达式等等。读者如果已经对其他的程序设计语言等有所了解,只要注意比较一下它们的相同和不同之处,学习起来就会感到比较轻松。2.1 用户标识符与保留字2.1.1 用户标识符用户标识符是程序员对程序中的各个元素加以命名时使用的命名记号。在Java语言中,标识符是以字母、下划线(”_”)或美元符(”$”)开始,后面可以跟字母、下划线、美元符和数字的一个字符序列。例如:userName,User_Name,_sys_val,Name,name,$

2、change 等为合法的标识符。而:3mail,room#,#class 为非法的标识符。注意:标识符中的字符是区分大小写的。例如,Name和name被认为是两个不同的标识符。2.1.2 保留字保留字是特殊的标识符,具有专门的意义和用途,不能当作用户的标识符使用。Java语言中的保留字均用小写字母表示。下表2.1列出了Java语言中的所有保留字。表2.1 保留字abstractbreakbytebooleancatchcaseclasscharcontinuedefaultdoubledoelseextendsfalsefinalfloatForfinallyifimportimplement

3、sintinterfaceinstanceoflong1engthnativenewnullpackageprivateprotectedpublicreturnswitchshortstaticsupertrytruethisthrowthrowsvoidthreadsafetransientwhilesynchronized2.2 数据类型Java语言的数据类型可划分为基本数据类型和引用数据类型(如图2-1所示)。本章我们主要介绍基本数据类型,引用型数据类型将在后边的章节中介绍,数组和字符串本身属于类,由于它们比较特殊且常用,因此也在图2-1中列出。基本数据类型如表2.2所示。下边我们将简

4、要介绍这些数据类型。表2.2 Java的基本数据类型数据类型所占二进制位所占字节取值byte81-2727-1short162-215215-1int324-231231-1long648-263263-1char162任意字符boolean81true , falsefloat324-3.4E38(3.41038)3.4E38(3.41038)double648-1.7E308(1.710308)1.7E308(1.710308)2.2.1 常量和变量常量和变量是程序的重要元素。1常量所谓常量就是在程序运行过程中保持不变的量即不能被程序改变的量,也把它称为最终量。常量可分为标识常量和直接常量

5、(字面常量):1) 标识常量标识常量使用一个标识符来替代一个常数值,其定义的一般格式为:final 数据类型 常量名=value,常量名=value ;其中final 是保留字,说明后边定义的是常量即最终量; 数据类型 是常量的数据类型,它可以是基本数据类型之一;常量名 是标识符,它表示常数值value,在程序中凡是用到value值的地方均可用常量名标识符替代。例如: final double PI=3.1415926; /定义了标识常量PI,其值为3.1415926注意:在程序中,为了区分常量标识符和变量标识符,常量标识符一般全部使用大写书写。2)直接常量(字面常量)直接常量就是直接出现在程

6、序语句中的常量值,例如上边的3.1415926。直接常量也有数据类型,系统根据字面量识别,例如:21,45,789,1254,-254 表示整型量;12L,123l, -145321L 尾部加大写字母L或小写字母l表示该量是长整型量;456.12,-2546,987.235 表示双精度浮点型量;4567.2145F,54678.2f 尾部加大写字母F或小写字母f表示单精度浮点型量。 2变量变量是程序中的基本存储单元,在程序的运行过程中可以随时改变其存储单元的值。1) 变量的定义变量的一般定义如下:数据类型 变量名=value , 变量名=value ;其中:数据类型 表示后边定义变量的数据类型

7、;变量名 变量名,是一个标识符,应遵循标识符的命名规则。可以在说明变量的同时为变量赋初值。例如:int n1=456,n2=687;float f1=3654.4f,f2=1.325fdouble d1=2145.2; 2)变量的作用域变量的作用域是指变量自定义的地方起,可以使用的有效范围。在程序中不同的地方定义的变量具有不同的作用域。一般情况下,在本程序块(即以大括号“”括起的程序段)内定义的变量在本程序块内有效。例2.1 说明变量作用域的示例程序。/* 这是说明变量作用域的示例程序 * 程序的名字为Var_Area_Example.java */public class Var_Area_

8、Example static int n_var1=10; /类变量,对整个类都有效 public void display() int n_var2=200; /方法变量,只在该方法内有效 n_var1=n_var1+n_var2; System.out.println(n_var1=+n_var1); System.out.println(n_var2=+n_var2); public static void main(String args) int n_var3; /方法变量,只在该方法内有效 n_var3=n_var1*2; System.out.println(n_var1=+n_

9、var1); System.out.println(n_var3=+n_var3); 2.2.2 基本数据类型1. 整型Java提供了四种整型数据,如上表2-2所示。1)整型常量的表示方法整型常量可以十进制、八进制和十六进制表示。一般情况下使用十进制表示,如:123,456,0 ,23456。在特定情况下,根据需要可以使用八进制或十六进制形式表示整常量。以八进制表示时,以0开头,如:0123表示十进制数83,-011表示十进制数-9。以十六进制表示整常量时,以0x或0X开头,如:0x123表示十进制数291,-0X12表示十进制数-18。此外长整型常量的表示方法是在数值的尾部加一个拖尾的字符L

10、或l,如:456l,0123L,0x25l。2) 整型变量的定义例如:int x=123; /指定变量x为int型,且赋初值为123 byte b=8; /指定变量b为byte型,且赋初值为8short s=10; /指定变量s为short型,且赋初值为10long y=123L,z=123l; /指定变量y,z为long型,且分别赋初值为123 2. 字符型(char)字符型(char)数据占据两个字节16个二进制位。字符常量是用单引号括起来的一个字符,如a,A等。字符型变量的定义,如:char c=a; /指定变量c为char型,且赋初值为a3. 布尔型(boolean)布尔型数据的值只有

11、两个:true和false。因此布尔的常量值也只能取这两个值。布尔型变量的定义,如:boolean b1=true, b2=false; /定义布尔变量b1,b2并分别赋予真值和假值。4. 浮点型(实型)Java提供了两种浮点型数据,单精度和双精度,如表2-2所示。1)实型常量的表示方法一般情况下实型常量以如下形式表示:0.123, 1.23, 123.0 等等表示双精度数;123.4f, 145.67F, 0.65431f 等等表示单精度数。当表示的数字比较大或比较小时,采用科学计数法的形式表示,如:1.23e13 或123E11 均表示1231011;0.1e-8 或1E-9 均表示 10

12、-9 。我们把e或E之前的常数称之为尾数部分,e或E后面的常数称之为指数部分。注意: 使用科学计数法表示常数时,指数和尾数部分均不能省略,且指数部分必须为整数。2) 实型变量的定义在定义变量时,都可以赋予它一个初值,例如:float x=123.5f, y=1.23e8f; /定义单精度变量x,y并分别赋予123.5、1.23108的值 double d1=456.78, d2=1.8e50 ; /定义双精度变量d1,d2 并分别赋予456.78、1.81050的值。2.2.3 基本数据类型的封装以上介绍的Java的基本数据类型不属于类,在实际应用中,除了需要进行运算之外,有时还需要将数值转换

13、为数字字符串或者将数字字符串转换为数值等等。在面向对象的程序设计语言中,类似这样的处理是由类、对象的方法完成的。在Java中,对每种基本的数据类型都提供了其对应的封装类(称为封装器类wrapper class)。如下表2.3所示。表2.3 基本数据类型和对应的封装类数据类型对应的类数据类型对应的类booleanBooleanintIntegerbyteBytelongLongcharCharacterfloatFloatshortShortdoubleDouble应该注意的是,尽管由基本类型声明的变量或由其对应类建立的类对象,它们都可以保存同一个值,但在使用上不能互换,因为它们是两个完全不同的

14、概念,一个是基本变量,一个是类的对象实例。我们将在后边的章节中讨论它们。 2.3 Java运算符和表达式运算符和表达式是构成程序语句的要素,必须切实掌握灵活运用。Java提供了多种运算符,分别用于不同运算处理。表达式是由操作数(变量或常量)和运算符按一定的语法形式组成的符号序列。一个常量或一个变量名是最简单的表达式。表达式是可以计算值的运算式,一个表达式有确定类型的值。2.3.1 算术运算符和算术表达式算术运算符用于数值量的算术运算,它们是: +(加),-(减),*(乘),/(除),%(求余数),+(自加1),-(自减1)。按照Java语法,我们把由算术运算符连接数值型操作数的运算式称之为算术

15、表达式。例如: x+y*z/2 、 i+ 、 (a+b)%10 等等。加、减、乘、除四则运算大家已经很熟悉了,下边看一下其他运算符的运算:% 求两数相除后的余数,如: 5/3 余数为2;5.5/3 余数为2.5。+、- 是一元运算符,参与运算的是单变量,其功能是自身加1或减1。它分为前置运算和后置运算,如:+i,i+,-i,i-等等。下边举一个例子说明算术运算符及表达式的使用。例2.2 使用算术运算符及表达式的示例程序。 class Arithmetic public static void main(String arg) int a=0,b=1; float x=5f,y=10f; flo

16、at s0,s1; s0=x*a+; /5*0=0 s1=+b*y; /2*10=20 System.out.println(a=+a+ b=+b+ s0=+s0+ s1=+s1); s0=a+b; /1+2=3 s1+; /20+1=21 System.out.println(x%s0=+x%s0+ s1%y=+s1%y); 图2-2 示例2.2运行结果程序运行结果如下:2.3.2关系运算符和关系表达式关系运算符用于两个量的比较运算,它们是: (大于),=(大于等于),y 产生true值;x=y 产生false值。2.3.3 布尔逻辑运算符和布尔表达式布尔逻辑运算符用于布尔量的运算,有3个布

17、尔逻辑运算符:1. !(逻辑非)!是一元运算符,用于单个逻辑或关系表达式的运算。!运算的一般形式是: ! A 其中:A 是布尔逻辑或关系表达式。若A的值为true,则!A的值false,否则为true。例如:若x=90,y=80,则表达式:! (xy) 的值为false(由于xy产生true值)。!(x=y) 的值为true(由于x=y产生false值)。2. &(逻辑与)& 用于两个布尔逻辑或关系表达式的与运算。&运算的一般形式是: A&B其中:A、B 是布尔逻辑或关系表达式。若A和B的值均为true,则A&B的值为true,否则为false。例如:若x=50,y=60,z=70,则表达式:

18、(xy) & (yz) 的值为false(由于两个表达式xy、yz的关系均不成立)。(yx)&(zy)的值为true(由于两个表达式yx、zy的关系均成立)。(yx)&(yz)的值为false(由于表达式yz的关系不成立)。 3. |(逻辑或)| 用于两个布尔逻辑或关系表达式的运算。| 运算的一般形式是: A | B 其中:A、B 是布尔逻辑或关系表达式。若A和B的值只要有一个为true,则A|B的值为true;若A和B的值均为false时,A|B的值为false。例如:若x=50,y=60,z=70,则表达式:(xy)| yz)的值为false(由于两个表达式xy、yz的关系均不成立)。(y

19、x)|(zy)的值为true(由于两个表达式yx、zy的关系均成立)。(yx)|(yz)的值为true(由于表达式yx的关系成立)。 下边举一个例子看一下布尔逻辑运算符及表达式的使用。例2.3 布尔逻辑运算符及表达式的示例。class LogicExam2_3public static void main(String arg) int a=0,b=1; float x=5f,y=10f; boolean l1,l2,l3,l4,l5; l1=(a=b)|(xy); /l1=false l2=(x) 用于整数的二进制位右移运算,在移位操作的过程中,符号位不变,其他位右移。例如,将整数a进行右移

20、2位的操作: a22) 位左移运算() 用于整数的二进制位左移运算,在移位操作的过程中,左边的位移出(舍弃),右边位补0。例如,将整数a进行左移3位的操作: a) 用于整数的二进制位右移运算,在移位操作的过程中,右边位移出,左边位补0。例如,将整数a进行不带符号右移2位的操作: a22. 按位运算1)&(按位与)& 运算符用于两个整数的二进制按位与运算,在按位与操作过程中,如果对应两位的值均为1,则该位的运算结果为1,否则为0。例如,将整数a和b进行按位与操作: a&b2) |(按位或)| 运算符用于两个整数的二进制按位或运算,在按位或操作过程中,如果对应两位的值只要有一个为1,则该位的运算结

21、果为1,否则为0。例如,将整数a和b进行按位或操作: a|b3) (按位异或) 运算符用于两个整数的二进制按位异或运算,在按位异或操作过程中,如果对应两位的值相异(即一个为1,另一个为0),则该位的运算结果为1,否则为0。例如,将整数a和b进行按位异或操作: ab4) (按位取反) 是一元运算符,用于单个整数的二进制按位取反操作(即将二进制位的1变为0,0变为1)。例如,将整数a进行按位取反操作: a下边举一个例子简要说明位运算的使用。例2.4 整数二进制位运算的示例。为了以二进制形式显示,程序中使用Integer类的方法toBinaryString()将整数值转换为二进制形式的字符串,程序代

22、码如下:class BitExam2_4 public static void main(String arg) int i1=-128,i2=127; System.out.println( i1=+Integer.toBinaryString(i1); System.out.println(i12 =+Integer.toBinaryString(i12); System.out.println(i12=+Integer.toBinaryString(i12); System.out.println( i2=+Integer.toBinaryString(i2); System.out.p

23、rintln(i22=+Integer.toBinaryString(i22); System.out.println( i1&i2=+Integer.toBinaryString(i1&i2); System.out.println( i1i2=+Integer.toBinaryString(i1i2); System.out.println( i1|i2=+Integer.toBinaryString(i1|i2); System.out.println( i1=+Integer.toBinaryString(i1); 图2-4 位运算示例结果程序运行结果如图2-4所示。结果是以二进制形式

24、显示的,如果是负值,32位二进制位数全显示;如果是正值,前导0忽略,只显示有效位。2.3.5 赋值运算符(=)和赋值表达式赋值运算符是最常用的运算符,用于把一个表达式的值赋给一个变量(或对象)。在前边的示例中,我们已经看到了赋值运算符的应用。与c、c+类似,Java也提供了复合的或称扩展的赋值运算符:对算术运算有: +=,- =,*=,/=,%= 。对位运算有: &=,=,|=,=,=。例如:x*=x+y ; 相当于x=x*(x+y) ;x+=y; 相当于 x=x+y ;y&=z ; 相当于 y=y&z ; y=2; 相当于 y=y2 ; 2.3.6 条件运算符( ? :)及表达式条件运算符是

25、三元运算符,有条件运算符组成的条件表达式的一般使用格式是:逻辑(关系)表达式 ? 表达式1 : 表达式2其功能是:若逻辑(关系)表达式的值为true,取表达式1的值,否则取表达式2的值。条件运算符及条件表达式常用于简单分支的取值处理。例如,若已定义a,b为整型变量且以赋值,求a,b两个数中的最大者,并赋给另一个量max,可以用如下式子处理:max=(ab) ? a : b;2.3.7 对象运算符对象运算符如下:1. 构造对象(new)new 运算符主要用于构建类的对象,我们将在后边的章节作详细介绍。 2. 分量运算符(.). 运算符主要用于获取类、对象的属性和方法。例如上边程序中使用Syste

26、m类对象的输出方法在屏幕上输出信息: System.out.println(“my first Java program”);3. 对象测试(instanceof )instanceof 运算符主要用于对象的测试。将在后边应用时介绍它。 2.3.8 其它运算符还有如下一些运算符:1. 数组下标运算符( )主要用于数组。2. 强制类型转换运算符((类型))在高类型的数据向低类型的数据转换时,一般需要强制转换。 3. ( ) 运算符( ) 运算符用在运算表达式中,它改变运算的优先次序;用于对象方法调用时作为方法的调用运算符。4. 字符串连接符(+)在表达式中,如果+号运算符前边的操作数是一个字符串

27、,此时该+号运算符的作用是字符串连接符,例如: ”i1*i2=”+i1*i2在程序中的System.out.print()输出方法的参数中,我们常常使用这种形式的表达式。2.3.9 表达式的运算规则最简单的表达式是一个常量或一个变量,当表达式中含有两个或两以上的运算符时,就称为复杂表达式。在组成一个复杂的表达式时,要注意以下两点:1. Java运算符的优先级表达式中运算的先后顺序由运算符的优先级确定,掌握运算的优先次序是非常重要的,它确定了表达式的表达是否符合题意,表达式的值是否正确。表2.4列出了Java中所有运算符的优先级顺序。表2.4 Java运算符的优先次序1. , , ()9&2一元运算:+,-,+ , - , ! , 10 3new, (类型)11|4* , / , %12&5+ , -13|6 , , , = , =, instanceof15= , += , -= , *= , /= , %= , =8= , !=16&= , |= , = , = 当然,我们不必刻意去死记硬背这些优先次序,使用多了,自然也就熟悉了。在书写表达式时,如果不太熟悉某些优先次序,可使用()运算符改变优先次序。2. 类型转换整型、实型、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,一般情况下,系统自动将两个运算数中低级的运算数转

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1