Java程序设计(chap2).ppt_第1页
Java程序设计(chap2).ppt_第2页
Java程序设计(chap2).ppt_第3页
Java程序设计(chap2).ppt_第4页
Java程序设计(chap2).ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

Java程序设计基础 第2章 数据类型和运算符 Java语言有着较强的数据处理能力,即它的数据类 型和不同类型上的运算定义得较为齐全。Java不支持C 、C+中的指针类型、结构体类型和共用体类型。本章 主要介绍了Java语言的基本数据类型和运算符。 2.1基本数据类型 Java的基本数据类型可以划分为四大类:整数、浮 点数、字符与布尔型。其中整数可以进一步划分为 byte、int、short 和long四个具体类型,浮点数可以进 一步划分为float和double两个具体类型。 表2-1给出了各种基本数据类型占用的比特数、取值 范围和缺省数值。 2.1基本数据类型 数据类型 关键字 占用比特数 取值范围 缺省数值 (1) 布尔型 boolean 8 true,false false (2) 字符型 char 16 u0000uffff u0 (3) 字节型 byte 8 -2727 -1 0 短整型 short 16 -215215-1 0 整 型 int 32 -2312311 0 长整型 long 64 -9.2210189.221018 0 (4) 浮点型 float 32 3.4E-383.4E+38 0.0F 双精度型 double 64 1.7E-3081.7E+308 0.0D 2.1.1常量与变量 1)常量 Java中的常量值区分为不同的类型,如整型常量123, 实型常量1.23,字符常量a,布尔常量true、false以及 字符串常量“This is a constant string.”。 与C、C+不同,Java中不能通过#define命令把一个标识 符定义为常量,而是用关键字final来实现。 (1)关键字final只能为变量赋“一次”值,然后这个值就固 定下来,成为真正意义的“常数”。 (2)习惯性地将常数名统统大写。 2.1.1常量与变量 例如: public class UsesConstants public static void main(String args) final double CM_PER_INCH=2.54; double paperWidth=8.5; double paperHeight=11; System.out.println(“Paper size in centimeter: “ +paperWidth*CM_PER_INCH+“ by“ +paperHeight*CM_PER_INCH); 2.1.1常量与变量 类常数:一个常数适用于某个类内的多个方法。可用关 键字static final来设置一个类常数。下面是一个运用了 类常数的例子: public class UsesConstants2 public static final double PI=3.14; public static void main(String args) double s; double r=4; s=PI*r*r; System.out.println(“The area is : “+s); 2.1.1常量与变量 2)变量 变量的定义包括变量名、变量类型和作用域几个部分。 变量的声明格式为: 类型 变量名1=值1,变量名2=值2 .; (1)变量名是一个合法的标识符,它由字母、数字、下 划线或美元符“”组成,但打头的必须是字母、下划线 或美元符“”,而不可以是数字。 (2)Java对变量名区分大小写,且不能为保留字,变量名 的长度则基本上没有限制。 2.1.1常量与变量 合法的变量名如: _myName、value-1、dollar等。 非法的变量名如:2mail、room#、class(保留字) 2.1.2 整型数据 1) 整型常量 与C,C+相同,Java的整常数有三种形式: 十进制整数,如123,-456,0。 八进制整数,以0开头,如0123表示十进制数83,-011 表示十进制数-9。 十六进制整数,以0x或0X开头,如0x123表示十进制数 291,-0X12表示十进制数-18。 2.1.2 整型数据 2) 整型变量 整型变量的类型有byte、short、int、long四种。 例: byte b; /指定变量b为byte型 short s; /指定变量s为short型 int i; /指定变量i为int型 long l; /指定变量l为long型 2.1.3 实型数据 1) 实型常量 与C,C+相同,Java的实常数有两种表示形式: 十进制数形式:由数字和小数点组成,且必须有小数点, 如0.123,.123,123.,123.0。 科学计数法形式:如123e4或123E4,其中e或E之前必须有 数,且e或E后面的指数必须为整数。 实常数在机器中占64位,具有double型的值。对于float型 的值,要在数字后加f或F,如12.3F,它在机器中占32位, 且表示精度较低。 2.1.3 实型数据 2) 实型变量 实型变量的类型有float和double两种。 双精度类型double比单精度类型float具有更高的精度和更 大表示范围,大多数应用程序选择的类型都是double。 例: float f; /指定变量f为float型 double d; /指定变量d为double型 2.1.4 字符型数据 1) 字符常量 字符常量是用单引号括起来的一个字符,如a,A。 与C、C+不同,Java中的字符型数据是16位无符号型 数据,它采用Unicode集,ASCII字符集是Unicode字符 集的一个子集,包括Unicode编码方案中的头255个字 符。 另外,与C、C+相同,Java也提供转义字符,以反斜杠 ()开头,将其后的字符转变为另外的含义,表2-2给出 了Java中的转义字符及其描述。 2.1.4 字符型数据 转义字符 描 述 ddd 1到3位8进制数据所表示的字符(ddd) uxxxx 1到4位16进制数所表示的字符(xxxx) 单引号字符 ” 双引号字符 反斜杠字符 r 回车 n 换行 f 走纸换页 t 横向跳格 b 退格 2.1.4 字符型数据 2) 字符型变量 字符型变量的类型为char,它在机器中占16位,其范围 为065535。字符型变量的定义如 char c=a;/指定变量c为char型,且赋初值为a 与C、C+不同,Java中的字符型数据不能用作整数,因 为Java不提供无符号整数类型。但是同样可以把它当 作整数数据来操作。 2.1.4 字符型数据 2) 字符型变量 例如: int k=3; char ch=1; char result=(char)(k+ch); /result=4 上例中,在加法运算时,字符型变量ch被转化为整数, 进行相加,最后把结果又转化为字符型。 2.1.4 字符型数据 3) 字符串常量 与C、C+相同,Java的字符串常量是用双引号(“”)括 起来的一串字符,如“This is a string.n”,“H”。 但不同的 是,Java中的字符串常量是作为String类的一个对象来处 理,而不是一个数据。 2.1.5 布尔型数据 布尔型数据只有两个值,true和false,且它们不对应于 任何整数值。 例: boolean b=true;/定义b为布尔型变量,且初值为true 2.1.6 举例 【例2-1】 下例中用到了前面提到的数据类型,并通过 屏幕显示它们的值。 public class SimpleTypes public static void main(String args) byte b=0x55; short s=0x55ff; int i=1000000; long l=0xfffL; char c=c; float f=0.23F; double d=0.7E-3; boolean bool=true; 2.1.6 举例 System.out.println(“b=“+b); System.out.println(“s=“+s); System.out.println(“i=“+i); System.out.println(“l=“+l); System.out.println(“c=“+c); System.out.println(“f=“+f); System.out.println(“d=“+d); System.out.println(“bool=“+bool); 2.1.6 举例 运行该程序的输出结果为: b=85 s=22015 i=1000000 l=4095 c=c f=0.23 d=7.0E-4 bool=true 2.1.7 各类数值型数据间的混合运算 1) 自动类型转换 整型、实型、字符型数据可以混合运算。运算中,不同类型 的数据先转化为同一类型,然后进行运算。转换从低级到高级 。转换规则为: (1)(byte或short)op intint (2)(byte或short或int)op longlong (3)(byte或short或int或long)op floatfloat (4)(byte或short或int或long或float)op doubledouble (5)char op intint 2.1.7 各类数值型数据间的混合运算 【例2-2】 不同类型的数据在混合运算中自动地进行类型 转换。 public class AutoPromotion public static void main(String args) byte b=10; char c=a; int i=90; long l=555L; float f=3.5f; double d=1.234; float f1=f*b; /float*byte-float int i1=c+i; /char+int-int 2.1.7 各类数值型数据间的混合运算 long l1=l+i1; /long+int-ling double d1=f1/i1-d; /float/int-float,float-double- double System.out.println(“f1=“+f1); System.out.println(“i1=“+i1); System.out.println(“l1=“+l1); System.out.println(“d1=“+d1); 2.1.7 各类数值型数据间的混合运算 运行该程序的输出结果为: f1=35.0 i1=187 l1=742 d1=-1.0468342245989304 2.1.7 各类数值型数据间的混合运算 2) 强制类型转换 当变量不满足自动转换类型时,采用强制类型转换, 格式为: (目标类型)变量名 例如: int i; byte b=(byte)i; double x=9.997; int nx=(int)x; 这样,变量nx的值就变成了9, 2.2 运算符 表达式是由变量、常量和各种运算符组成的式子。 表达式可以是程序语句的一部分,也可以是一个单独的程 序语句。表达式的值就是表达式中的各变量、常量经过 运算所得的结果,而这些运算就主要由表达式中的运算 符规定。 2.2 运算符 运算符指明对操作数所进行的运算。按操作数的数目 可分为一元运算符(如+),二元运算符(如+、)和三元 运算符(如?:)。 按照运算符功能可分为下面几类: (1)算术运算符(+,-,*,/,%,+,-) (2)关系运算符(,=, /a=9 int b=a*2; /b=18 int c=b/4; /c=4 int d=b-c; /d=14 int e=-d; /e=-14 int f=e%4; /f=-2 double g=18.4; double h=g%4; /h=2.4 int i=3; int j=i+; /i=4,j=3 2.2.1 算术运算符 int k=+i; /i=5,k=5 System.out.println(“a=“+a); System.out.println(“b=“+b); System.out.println(“c=“+c); System.out.println(“d=“+d); System.out.println(“e=“+e); System.out.println(“f=“+f); System.out.println(“g=“+g); System.out.println(“h=“+h); System.out.println(“i=“+i); System.out.println(“j=“+j); System.out.println(“k=“+k); 2.2.1 算术运算符 运行该程序的输出结果为: a=9 b=18 c=4 d=14 e=-14 f=-2 g=18.4 h=2.3999999999999986 i=5 j=3 k=5 2.2.2 关系运算符 关系运算符用来比较两个值或表达式的大小,返回 布尔类型的值true或false。关系运算符都是二元运算 符,Java中的关系运算符共有=、!=、=和y 在计算布尔型的变量b的取值时,先计算 / 0 1 0 0 0 0 0 0 byte y=0x5A; / / 0 1 0 0 0 0 0 0 z的值为0x40 2.2.4 位运算符 2)移位运算 移位运算是将某一变量所包含的各比特位按指定的方 向移动指定的位数。 从例子中可以看出,在带符号的右移中,右移后左边 的空位中填入的是复制的原数的符号位,即正数为 ,负数为。在不带符号的右移中,右移后左边的空 位一律填。 x 二进制补码表示 x2 x2 30 00011110 01111000 00000111 00000111 -17 11101111 10111100 11111011 00111011 2.2.5 其它运算符 1)三元条件运算符:? : Java中的三元条件运算符与语言完全相同,使用的形式

温馨提示

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

评论

0/150

提交评论