Java程序设计标准教程 ppt第2章.ppt_第1页
Java程序设计标准教程 ppt第2章.ppt_第2页
Java程序设计标准教程 ppt第2章.ppt_第3页
Java程序设计标准教程 ppt第2章.ppt_第4页
Java程序设计标准教程 ppt第2章.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、第2章 数据类型、运算符与表达式,2.1 变量和数据类型 2.2 运算符和表达式,2.1 变量和数据类型,2.1.1 基本数据类型 数据类型指明了变量或表达式的状态和行为。Java语言有着与C语言类似的较强的数据处理能力,它的数据类型和不同类型上的运算定义的较为齐全。Java有4种基本类型:整数、浮点数、布尔量,字符及字符串。其中整数和浮点数两大类根据数据长度和精度的不同,还可以进一步划分,见如表2-1所示。 1. 短整数、整数与长整数类型 短整数(short)类型以2个字节表示整数值,整数类型(int)以4个字节表示整型数,长整数类型(long)以8个字节表示整数值,它们都有八进制、十进制与

2、十六进制三三种表示方法。声明为长整数类型的整数值最后需要加上“L”或“l”。,下一页,返回,表2-1,返回,2.1 变量和数据类型,声明为这三三种数据类型的例子如下: short x=016;/八进制数 short y=16; /十进制数 short z=0 x16;/十六进制数 int x=010;/八进制数 int y=10;/十进制数 int z=0 x10; /十六进制数 long x=0336L;/八进制数 long y=336L;/十进制数 long z=0 x336L; /十六进制数,下一页,上一页,返回,2.1 变量和数据类型,2. 浮点数类型 Java使用float与doub

3、le两种数据类型来表示实数,float是32位的单精度浮点数,而double是64位的双精度浮点数。表示float数值的最后一个字符需加入“F”或“f”,如果数值最后一个字符没有加入“F”或“f”,将被视为double类型的数值。 写出下列Java源程序的运行结果。 / MyClass2_1.java public class MyClass2_1 public static void main(String args) float x, y, z;/声明单精度浮点数 x=14.5f; y=13.5f;,下一页,上一页,返回,2.1 变量和数据类型,z=x*y; System.out.prin

4、tln(x+*+y+=+z); double a, b, c;/声明双精度浮点数 a=110.6; b=3.8; c=a/b; System.out.println(a+/+b+=+c); 程序运行结果如图2-1所示。,下一页,上一页,返回,图2-1,返回,2.1 变量和数据类型,3. 布尔类型 布尔(boolean)类型用来表示“真”(true)”和“假”(false)”两种状态。在C或C+语言中,用“1”表示真,“0”表示假;而在Java语言中,仅用“true”表示真,“false”表示假。 写出下列Java源程序的运行结果。 / MyClass2_2.java public class

5、MyClass2_2 public static void main(String args) boolean x, y, z;/x, y, z 声明为布尔型 int a=2, b=4;/a,b 声明为整形整型 x=ab;,下一页,上一页,返回,2.1 变量和数据类型,y=(a!=b); z=(a+b=6); System.out.println(x=+x); System.out.println(y=+y); System.out.println(z=+z); 程序运行结果如图2-2所示。,下一页,上一页,返回,图2-2,返回,2.1 变量和数据类型,4. 字节类型 字节(byte)类型是以

6、一个字节来表示整数值,它有八进制(在整数值前面加上一个0)、十进制(在整数值前面不加任何前导符号)以及十六进制(在整数值前面加上一个0 x)3三种表示方法。 写出下列Java源程序的运行结果。 / MyClass2_3.java public class MyClass2_3 public static void main(String args) byte x=016;/八进制数 byte y=16;/十进制数,下一页,上一页,返回,2.1 变量和数据类型,byte z=0 x16; /十六进制数 System.out.println(转换为十进制数 x=+x); System.out.pr

7、intln(转换为十进制数 y=+y); System.out.println(转换为十进制数 z=+z); 程序运行结果如图2-3所示。,下一页,上一页,返回,图2-3,返回,2.1 变量和数据类型,5. 字符类型 字符(char)类型以2个字节表示每一个字符。char类型的字符可以转换为整数类型,其整数值的范围为065535。用char类型定义字符时,必须使用一对单撇号将字符括起来,例如,char x=T。 写出下列 Java 源程序的运行结果。 / MyClass2_3.java public class MyClass2_4 public static void main(String

8、 args) char x, z; x=C;/ x 为字符 C,下一页,上一页,返回,2.1 变量和数据类型,z=143;/z 为八进制 143 的 ASCII 字符,此字符为 c System.out.print(x); System.out.print(z); 程序运行结果如图2-4所示。 2.1.2 数据类型转换 在Java中整型、浮点型、字符型被视为简单数据类型,这些类型由低级到高级分别为: (byte,short,char) int long float - double,下一页,上一页,返回,图2-4,返回,2.1 变量和数据类型,(1)自动类型转换 低级变量可以直接转换为高级变量

9、,称之为自动类型转换,例如,下面的语句可以在Java中直接通过: byte b; int i = b; long l = b; float f = b; double d = b; 如果低级类型为char型,向高级类型(整型)转换时,会转换为对应的ASCII码值。 对于byte,short,char三种类型而言,它们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。 提示:byte,short,int三种类型都是整型,如果操作整型数据时,最好统一使用int型。,下一页,上一页,返回,2.1 变量和数据类型,(2)强制类型转换 将高级变量转换为低级变量时,情况会复杂一些,可以使用强制类

10、型转换。即必须采用下面这种语句格式: int i = 99; byte b = (byte)i; char c = (char)i; float f = (float)i; 注意:这种转换肯定可能会导致溢出或精度的下降,因此并不推荐使用这种转换。 (3)字符串型与其他数据类型的转换 通过查阅类库中各个类提供的成员方法可以看到,几乎从java.lang.Object类派生的所有类提供了toString()方法,即将该类转换为字符串。例如:Characrer,Integer,Float,Double,Boolean,Short等类的toString()方法。toString()方法用于将字符、整数

11、、浮点数、双精度数、逻辑数、短整型等类转换为字符串。如下所示:,下一页,上一页,返回,2.1 变量和数据类型,int i1=10; float f1=2.14f; double d1=2.1415926; Integer I1=new Integer(i1);/生成Integer类 Float F1=new Float(f1);/生成Float类 Double D1=new Double(d1);/生成Double类 /分别调用包装类的toString()方法转换为字符串 String si1=I1.toString(); String sf1=F1.toString(); String sd

12、1=D1.toString();,下一页,上一页,返回,2.1 变量和数据类型,Sysytem.out.println(“si1”+si1); Sysytem.out.println(“sf1”+sf1); Sysytem.out.println(“sd1 ”+sd1); 输出结果如下: 1010 2.142.2.14 2.1415926 2.1415926,下一页,上一页,返回,2.1 变量和数据类型,(4)将字符型直接做为数值转换为其他数据类型 将字符型变量转换为数值型变量实际上有两种对应关系,第一种转换关系是将其转换成对应的ASCII码,但是有时还需要另一种转换关系,例如,1就是指的数值

13、1,而不是其ASCII码,对于这种转换,我们可以使用Character的getNumericValue(char ch)方法。,下一页,上一页,返回,2.1 变量和数据类型,2.1.3 常量 常量一经建立,在程序运行的整个过程中都不会改变。在Java中,常用的常量有布尔常量、整型常量、浮点常量、字符常量和字符串常量。 1. 布尔常量 布尔常量只有两个值:true和false,分别表示真和假。 2. 整型常量 整型常量可以用来给整型常量赋值,整型常量可以采用十进制、八进制和十六进制表示。十进制的整型常量用非0开头的数字表示,如10,-2000;十六进制的整型常量用以0 x开头的数字表示,如0 x

14、1A代表十进制数字26。,下一页,上一页,返回,2.1 变量和数据类型,整型常量按照所占用的内存长度,又可分为一般整型常量和长整型常量,其中,一般整型常量占用32位,长整型常量占用64位。长整型常量的尾数都有一个“L”或“l”,如2678L,0 x23l。 注意:“l”很容易与阿拉伯数字“1”混淆,建议使用“L”。 3. 浮点常量 浮点常量表示的是可以含有小数部分的数字常量。根据占用内存长度的不同,可以分为一般浮点常量和双精度浮点常量两种。一般浮点常量占用32位内存,尾数都有一个“F”或“f”,如22.65F、,2.1415f;双精度浮点常量占用64为内存,用带“D”或“d”或不加后缀的数值表

15、示,如56.3D,2.14156,22.65d。浮点常量还有指数表示法,比如2.3E3。,下一页,上一页,返回,2.1 变量和数据类型,4. 字符常量 字符常量用一对单引号括起来的单个字符表示,这个字符可以直接是拉丁字母表中的字符,如A、z、 int b = 1; 第一个语句声明了一个名为a的布尔变量,第二个语句声明了一个名为b的整型变量,其初值为1。由于声明变量的语句也是Java程序中的一个完整语句,所以它与其他Java语句一样需要用分号结束。 注意:Java语句是大小写敏感的,变量number和Number是不同的。,上一页,返回,2.2 运算符和表达式,2.2.1 运算符 表达式是由变量

16、、常量和各种运算符组成的式子,是程序的基本组成部分之一。组成表达式的Java运算符有很多种,包括赋值运算符、算术运算符、关系运算符和逻辑运算符等。 (1)算术运算符 Java中的算术运算符用来定义整型和浮点型数据的算术运算,针对数值类型操作数进行的运算,算术运算符根据需要操作数个数的不同,可以分成双目运算符和单目运算符两种,双目运算符就是连接两个操作数的运算符,如表2-3所示;而单目运算符只使用一个操作数。,下一页,返回,表2-3,返回,2.2 运算符和表达式,取余操作只对整型数据(int、,long、,short)有效,float和double型数据不能取余。 两个整型数相除时,结果是截去小

17、数部分的整数部分。如果希望保留小数部分,这就应对操作数进行强制类型转换。如3/5 = 0,而(float)3)/5 = 0.6。 单目运算符的操作数只有一个,算术运算中单目运算符有三3个,如表2-4所示。,下一页,上一页,返回,表2-4,返回,2.2 运算符和表达式,从表2-4中可以看到,单目运算符中自增或自减运算符即既可以放在操作数的前面,也可以放在操作数的后面,当进行单目运算的表达式位于一个更复杂的表达式内部时,虽然对操作数本身没有影响,但可能会改变整个表达式的值。比较一下两个表达式:+A*B表示A先加1后再乘以B;而A+*B表示A乘以B后,A再加1。例如: int A = 1; int

18、B = +A*2; 上述语句运行后A的值为2,B的值为4,因为A是先加1后再乘以2,如果把表达式改为: int A = 1; int B = A+*2;,下一页,上一页,返回,2.2 运算符和表达式,则运行后得到A的值仍为2,B的值变为2,这时这是因为A先乘2得到B的值后再自加1。 (2)关系运算 关系运算符是比较两个表达式大小关系的运算,常用的关系运算符如表2-5所示。 注意:判断是否等于的关系运算符是两个等于号,而不是一个,不要将其与等号混淆两者,否则会造成程序的逻辑错误,这是一个常见问题。不能在两个浮点数之间判断是否相等,因为浮点数表达上难免有微小的误差,精确的相等很难达到。 参加比较大小的两个操作数或表达式的值可以是整数、浮点数、字符和布尔量,结果是布尔量。,下一页,上一页,返回,表2-5,返回,2.2 运算符和表达式,(3)逻辑运算 逻辑运算的操作数和运算结果均为布尔量,逻辑运算符如表2-6所示。 (4)位运算 位运算是对操作数以二进制比特位为单位进行的操作和运算,位运算的操作数和结果都是整型量,几种运算符和相应的运算规则列于表2-7中。 Java的位运算符可分为按位运算和移位运算两类,移位运算是将某一变量所包含的各比特位按指定的方向移动指定的位数。如表2

温馨提示

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

评论

0/150

提交评论