




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 基本数据类型和数组,本章导读 1. 标识符和关键字 2. 基本数据类型 3. 基本数据类型的转换 4. 数据的输入与输出 5数组,2.1 标识符和关键字,1标识符 用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。简单地说,标识符就是一个名字。Java语言规定标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字。标识符中的字母是区分大小写的,Beijing 和beijing是不同的标识符。 2 关键字 关键字就是Java语言中已经被赋予特定意义的一些单词,它们在程序上有着不同的用途,不可以把关键词作为名字来用。,返回,标识符 :为程序中的各个元
2、素进行命名 . 一般地,在Java 中标识符是以字母、下划线(_)、美元符号($)等其它货币符号(如, )开始的一个字符序列,后面可以跟字母、下划线、美元符号、数字等字符。 Java语言使用Unicode字符集 ,用16位二进制表示一个字符,并且在0255编码区与通用的ASCII字符集兼容。 标识符是大小写敏感的,没有最大长度的限制,不能和关键字相同,标识符,总体来说定义标识符可以使用的字符包括: 大小写字母、数字; Unicode字符集中编号大于0 xC0的所有字符。 凡是用Character.isJavaIdentifierStart() 返回true,都可作为首字符,Character.
3、 isJavaIdentifierPart()返回true,都可作为标识符的一部分。 合法的标识符: Body,_test,$hello 非法标识符: 5Test,hello*,world#,class 注意:在中文环境下,可以使用汉字作为标识符。例如,int 中文=5;,标识符,所有的关键字都是小写的。如果被大写,就不是关键字了 。 用于数据类型的关键字 byte short int long float double char boolean 用于流程控制语句的关键字 if else switch case default do while for break continue 方法、类型
4、、变量的修饰关键字 private public protected final static abstract synchronized volatile 异常处理关键字 try catch finally throw throws,关键字,对象相关关键字 new extends implements class instanceof this super 字面值常量关键字 false true null 方法相关关键字 return void 包相关关键字 package import,关键字,单行注释:以“/”开头,至该行结尾,其格式如下: /注释文本 多行注释:以“/*”开始,遇到“*
5、/”结束,格式如下 /* 注释文本 */ 文档注释:用于注释从Java源程序产生的一个HTML帮助文档,可以使用JDK提供的工具Javadoc从源程序中提取这种注释,为程序提供文档说明。格式如下: /*注释文本 *注释文本 * */,注释,Java使用一些特殊字符作为分隔符: ;(分号):语句结束符 ,(逗号):分隔变量中连续的标示符,或者在for语句中连接语句 .(句号):用于分隔包、子包和类,或者分隔应用变脸中的变量和方法 ()(括号):用于在方法定义和访问中将参数表括起来,或者在表达式中定义运算的优先次序,或者在控制语句中将表达式和类型转换括起来 (方括号):用于声明数组类型,及应用数组
6、的元素值 (花括号):将若干语句序列括起来作为一个程序代码块,或者为数组初始化赋值,分隔符,2.2 基本数据类型,2.2 基本数据类型,基本数据类型也称作简单数据类型。Java语言有8种简单数据类型,分别是: boolean、byte 、short、int、long、 float、double、char。 这8种数据类型习惯上可分为4大类型: 逻辑类型:boolean 字符类型:char 整数类型:byte、short、int、long 浮点类型:float、double,Java的简单数据类型都有固定的数据位,不随运行平台的变化而变化。引用类型都是用类或对象实现的。,布尔类型 用关键字boo
7、lean表示,只有true和false两个值,且它们不对应任何整数值,经常在流控制语句中使用,例如: boolean b=false;,布尔类型,字符类型,一个字符用一个16位的Unicode码表示 所有可见的ASCII码字符都可以用单引号括起来成为字符,如a、A、#等 一些控制字符不能直接显示,可以利用转义字符表示,字符常量,字符常量是用单引号括起来的一个字符,例如A,用双引号括起来的是字符串,如:”A”、”hello world”。 同样,字符常量也可以用转义字符直接表示,例如: A的Unicode码是u0061 中的Unicode码是u4e2d 整数和字符型数据在一起运算 字符向整数转换
8、,字符变量,字符型变量用char表示,使用Unicode字符集,在机器中占16位,范围为065535。 字符变量的定义如下: char c,c1=a; 其中定义了两个字符变量c和c1,且c1初始化为a Java的字符类型与整型不同,不能作为整数使用,但是可以吧整型和字符型数据一起运算,从字符型向整型发生自动类型转换。从整型向字符型转换时需要强制类型转换。,字符型与整型,Java的字符类型与整型不同,不能作为整数使用,但是可以吧整型和字符型数据一起运算,从字符型向整型发生自动类型转换。从整型向字符型转换时需要强制类型转换。例如: int i=5; char one=1; int j=a; /字符
9、型向整型自动类型转换 char c=(char)(i+one+j);,Java中的整数有三种进制形式表示: 十进制:用09的数值表示,首位不能为0,例如:124,-100; 八进制:以0开头,后跟多个07之间的数字,如0134; 十六进制:以0 x或者0X开头,后跟多个09之间的数字、或AF之间的的大写字、或者af之间的小写字母。af或者A-F分别表示1015,例如,0 x23FE,等于十进制数9214。,整数类型,整数类型,在表示long型常量时,需要在数字后面加上后缀L或者l。例如3L表示一个long型的常量,而不是int型常量。例如: byte b=5; short s; long j=
10、300; /正确,可以将int常量赋给long变量 long j1=300L; int i1=4L;/错误,不能把long值赋给int变量,浮点数表示形式,标准计数法:由整数部分、小数点和小数部分组成,如2.0和345.67 科学计数法:由十进制数、小数点、小数和指数构成,指数部分由字母E或e跟上正负号的整数表示,如,345.67可以表示为3.4567E+2,浮点类型,一个浮点数隐含为double型。在一个浮点数后加字母F或f,表示float型。常量值3.45的类型是double;3.45F的类型是float。,2.3 基本数据类型的转换,基本数据类型的转换就是把一种基本数据类型变量转变成另一
11、种基本类型变量。下列基本类型会涉及数据转换,不包括逻辑类型和字符类型。我们将这些类型按精度从“低”到“高”排列了顺序: byte short int long float double 当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换,如int型转换成long型。当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。显示转换的格式: (类型名)要转换的值;,自动类型转换 从低级到高级发生自动类型转换。从表达范围小的类型向表达范围大的类型发生自动类型转换。不同数据类型的转换如下所示: 低- -高 byte,short,char- int- long- float-
12、double 注意:byte,short和char在一起运算时,首先转换为int类型进行运算。 【例2-1】分析下面程序中的错误。 byte b1=5; short s1=6; short s2 ; s2=b1+s1;,2.3 基本数据类型的转换,强制类型转换 由高级向低级数据类型转换时,需要强制类型转换。例如: int i65; char c; c=(char)i; / 把int型变量转换成char型,需要强制类型转换。,2.3 基本数据类型的转换,2.3 基本数据类型的转换,例如 int x=(int)34.89; 输出x将是34,强制转换运算可能导致精度的损失。当把一个整数赋值给一个by
13、te、short、int或long型变量时,不可以超出这些变量的取值范围,否则必须进行类型转换运算。 下面我们看一个例子: 程序运行结果见右图:,返回,2.4 数据的输入与输出,由于C语言出现的比较早,那个时候还没有图形用户界面的概念(Graphics User Interface),因此,C语言提供了许多用来输入、输出数据的函数,例如printf 、scanf等。 Java不象C,提供在命令行进行数据输入、输出的功能不多。 关于输入、输出我们将在第九章详细介绍,现在只需知道它的作用是在命令行窗口(例如,MS-DOS窗口)输出数据即可。Sun公司新推出的JDK1.5又新增了一些在命令行进行数据
14、输入、输出的功能。,2.4 数据的输入与输出,1数据输出: System.out.printf System.out.printf的功能完全类似C语言中的printf函数。pringf的一般格式: printf(格式控制部分,表达式1,表达式2,表达式n); 这里的用法与C语言相同,这里不再累述。 下面我们看一个例子,来进一步了解 System.out.printf 数据输出:,2.4 数据的输入与输出,2数据的输入:Scanner Scanner是SDK1.5新增的一个类,可以使用该类创建一个对象: Scanner reader=new Scanner(System.in); 然后reade
15、r对象调用下列方法(函数),读取用户在命令行输入的各种数据类型, nextByte(), nextDouble(), nextFloat(), nextInt(), nextLine(),nextLong(), nextShort()。,2.4 数据的输入与输出,上述方法执行时都会堵塞,等待你在命令行输入数据回车确认。 下面让我们来看一个例子,来更好的了解Scanner语句,在这个例子中,用户在键盘依次输入若干个数字,每输入一个数字都需要按回车键确认,最后在键盘输入一个非数字字符结束整个的输入操作过程。程序将计算出这些数的和及平均值。,返回,import java.util.*; public
16、 class Example2_4 public static void main (String args ) Scanner reader=new Scanner(System.in); double sum=0; int m=0; while(reader.hasNextDouble() double x=reader.nextDouble(); m=m+1; sum=sum+x; System.out.printf(%d个数的和为%fn,m,sum); System.out.printf(%d个数的平均值是%fn,m,sum/m); ,2.5 数组,数组是相同类型的数据按顺序组成的一种
17、复合数据类型。通过数组名加数组下标来使用数组中的数据。下标从0开始。 1声明数组 声明数组包括数组的名字、数组包含的元素的数据类型。 声明一维数组有下列两种格式: 数组元素类型 数组名字 ; 数组元素类型 数组名字;,一维数组的定义格式如下: int a ; int a; 这里只有数组变量的定义,没有为数组元素分配空间,只为数组的引用分配了空间,a目前为一个空的引用。 在声明数组时,可以为数组赋初值。例如: int a =0,1,2,3,4;,2.5 数组,数组定义之后,需要new运算符为其分配空间,在分配空间时确定数组的大小,大小一旦确定,将不能改变,但可以再次使用new为其分配空间。具体格
18、式如下: = new ; 例如:a=new int5; a=new int10; 上例,创建了一个包含个元素的数组,每个元素被自动初始化为 。也可以将数组定义和初始化同时进行,例如: int a =new int5 每个数组都有一个属性length,指明它的长度,使用new为数组分配空间,变量的自动化初始值,一维数组的图形表示,每一个数组都有一个length属性,指明其长度,返回一个整数值,例如: a.length 通过数组名和下标来访问数组成员,java的数据下标从0开始到length-1,数组的使用,public class ArrayAvg public static void main
19、(String args) final int ARRAY_SIZE=10; int a=new intARRAY_SIZE; int i=0; int sum=0; double avg=0.0; for(i=0;ia.length;i+) /使用了length属性 ai=(int)(Math.random()*10); /产生随机数 sum=sum+ai; /计算和 System.out.print(“ ”+ai); /输出 System.out.println(); avg=(double)sum/a.length; /先转换为浮点数,再计算 System.out.println(average=+avg); ,程序举例:求一维数组的平均值,最常用的二维数组是一个特殊的一维数组,它的每个元素都是一个一维数组,又叫做数组的数组 ,格式如下: int two; int two; 这里只有变量的定义,没有分配内存空间。 在定义二维数组时也可以赋初值,将数组元素的值用多层括号括起来,例如: int two=0,1,2,3,4,5;,二维数组,int two =new int23; 或者 int two ; two=new int2 3 ; 二维数组还有另外一种初始化方式,就是从最高维开始,分别为每一维分配空间,这种情况下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 战略管理办法英语
- 微信回访管理办法
- 疫情后2025线下演出市场演出市场产业链上下游协同创新报告
- 新设企业管理办法
- 招商投资管理办法
- 杭州外卖管理办法
- 绿色供应链管理在制造业中的绿色供应链与绿色营销研究报告
- 政府就业管理办法
- 数据管理办法央行
- 恢复信用管理办法
- GB 16663-1996醇基液体燃料
- CB/T 3623-1994舵系统安装与效用试验要求
- 试验室安全准入考试试题
- 伤寒论的讲义辨太阳病脉证并治课件
- 国家级农产品质量安全检测技能竞赛考试总题库(含答案)
- 湖北省乡镇卫生院街道社区卫生服务中心地址医疗机构名单
- 事业单位工作人员岗位等级确认审核表
- 立破并举 内外互联 构建西藏全要素资源交易市场
- (完整版)UPS技术培训教材PPT(共-54张)课件
- 骨盆的解剖PPT课件(PPT 18页)
- QGDW 1168-2013 输变电设备状态检修试验规程(高清版)
评论
0/150
提交评论