版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章数据和表达式学习目标掌握Java语言命名标识符的规则,能够正确定义标识符,熟记关键字。能够在程序中正确使用注释和空白。掌握Java提供的所有基本数据类型,包括表示它们的关键字、各类型的表示范围、各类型常量值的含义、转义字符的含义等。掌握运算符的含义及其优先级,掌握变量的声明、初始化及赋值的方法,能够判别变量的作用域。掌握Java表达式的表示方式,掌握表达式提升和转换方法,初步掌握Java中提供的数学函数的使用方法。能够正确得到表达式的计算结果。本章主要内容基本语法单位
12表达式3基本数据类型第一节基本语法元素注释程序中适当地加入注释,会增加程序的可读性
程序中允许加空白的地方就可以写注释。注释不影响程序的执行结果,编译器将忽略注释Java中的三种注释形式://在一行的注释/*一行或多行的注释*//**文档注释*/注释语句第一种形式表示从“//”开始一直到行尾均为注释,一般用它对说明的变量、一行程序的作用作简短说明第二种形式可用于多行注释,“/*”是注释的开始,“*/”表示注释结束,“/*”和“*/”之间的所有行均是注释语句。这种注释多用来说明方法的功能等第三种形式是文档注释。文档注释放在(一个变量或是一个函数的)说明之前,表示该段注释应包含在自动生成的任何文档中(即由javadoc命令生成的HTML文件)语句、分号和块Java中的语句是最小的执行单位Java各语句间以分号“;”分隔。一个语句可写在连续的若干行内花括号“{”和“}”包含的一系列语句称为语句块,简称为块语句块可以嵌套即语句块中可以含有子语句块。在词法上,块被当作一个语句看待
Java关键字abstractbooleanbreakbytecasecatchcharclassconstcontinuedodoubleelseextendsfalsefinallycastdefaultfinalfinallyfloatforfuturegenericgotoifimplementsimportinnerinstanceofintinterfacelongnativenewnulloperatorouterpackageprivateprotectedpublicrestreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttruetryvarvoidvolatilewhile标识符标识符是以字母、下划线(_)或美元符($)开头,由字母、数字、下划线(_)或美元符($)组成的字符串标识符区分大小写,长度没有限制
标识符例合法的标识符非法标识符2Sun //以数字2开头class //是Java的关键字,有特殊含义#myname //含有其他符号#IdentifierusernameUser_name_sys_var1$change sizeofJava中的一些命名约定类名或接口名:多为名词,含有大小写,每个单词的首字母大写方法名:多是动词,含有大小写,首字母小写,其余各单词的首字母大写。尽量不要在方法名中使用下划线常量名:基本数据类型常量的名字应该全部为大写字母,单词与单词之间用下划线分隔,对象常量可使用混合大小写变量名:所有的实例变量、类变量、终极变量和静态变量等都使用混合大小写,首字母为小写,后面的单词的首字母用大写。变量名中尽量不要使用下划线Java编程风格不提倡的风格提倡的程序风格第二节基本数据类型基本数据类型数据类型基本数据类型复合数据类型类类型布尔类型:boolean数组接口类型:interface字符类型:char数值类型浮点数类型:float,double整数类型:byte,short,int,long整数类型整数类型整数长度字节数表示范围byte8位1-27~27-1
(-128~127)short16位2-215~215-1
(-32768~32767)int32位4-231~231-1
(-2,147,483,648~2,147,483,647)long64位8-263~263-1
(-9,223,372,036,854,775,808~9,223,372,036,854,775,807)整数示例2 //表示十进制数2077 //表示八进制数77,等于十进制数630xBABE //表示十六进制数BABE,
//等于十进制数478062L //表示长整型十进制数2077L //表示长整型八进制数770XBABEL //表示长整型十六进制数BABE浮点数浮点数类型浮点数长度字节数表示范围float32位41.4e-45f~3.4028235e+38fdouble64位84.9e-324d~1.7976931348623157e+308d浮点数示例5.31 //表示double型-39.27 //表示double型5f //表示float型0.001327e+6 //表示double型最大值、最小值类型最大值最小值intInteger.MAX_VALUEInteger.MIN_VALUElongLong.MAX_VALUELong.MIN_VALUE
float类型double类型最大值Float.MAX_VALUEDouble.MAX_VALUE最小值Float.MIN_VALUEDouble.MIN_VALUE正无穷大Float.POSITIVE_INFINITYDouble.POSITIVE_INFINITY负无穷大Float.NEGATIVE_INFINITYDouble.NEGATIVE_INFINITY0/0Float.NaNDouble.NaN字符类型单个字符用char类型表示。一个char表示一个Unicode字符,其值用16位无符号整数表示,范围为0~65535。char类型的常量值必须用一对单引号('')括起来,分为普通字符常量和转义字符常量两种。转义字符含义转义字符含义\b退格键\\反斜杠\\n换行符\'单引号'\r回车符\"双引号"\t水平制表符字符常量示例'a’ //表示字符a'\t’ //表示水平制表符Tab键'\???' //表示一个具体的Unicode字符 //???是3位八进制数字'\u????' //表示一个具体的Unicode字符 //????是4位十六进制数字布尔类型在Java中,这样的一个值用boolean(布尔)类型表示,布尔类型也称作逻辑类型boolean类型有两个常量值:true和false,它们全是小写,计算机内部使用8位二进制表示Java是一种严格的类型语言,它不允许数值类型和布尔类型之间进行转换第三节表达式表达式由运算符和操作数组成,对操作数进行运算符指定的操作,并得出运算结果Java运算符按功能可分为算术运算符关系运算符逻辑运算符位运算符赋值运算符条件运算符特殊运算符操作数常量简单数据类型String类型变量的声明变量声明的基本格式为:类型变量名1[=初值1][,变量名2[=初值2]]…;类型:简单数据类型,也可以是类类型声明变量的地方有两处:一处是在方法内(局部变量),另一处是在类定义内(类的成员变量)操作数变量的初始化类型初始值类型初始值byte(byte)0float0.0fshort(short)0double0.0int0char'\u0000'(null)long0Lbooleanfalse所有引用类型null变量作用域变量的作用域是指可访问该变量的代码范围类中定义的成员变量的作用域是整个类块内声明的变量将屏蔽其所在类定义的同名变量程序2.1编译结果变量作用域程序2.2虽然main()方法分别在第5行和第10行两次声明了同名局部变量name,但第5行声明的变量只在第5行至第8行的块内有效,在块外该变量消失。第10行不包含在这个块中,也就不在第一次声明的作用域内数学函数Math.sin(0)//正弦函数,返回0.0,这是double类型的值Math.cos(0) //余弦函数,返回1.0Math.round(6.6) //四舍五入取整,返回7Math.sqrt(144) //开平方函数,返回12.0Math.pow(5,2) //计算乘方,返回25.0Math.max(560,289) //求最大值函数,返回560Math.min(560,289) //求最小值函数,返回289Math.random()//返回0.0到1.0之间双精度的一个随机数值运算符算术运算符算术运算符包括通常的加(+)、减(-)、乘(*)、除(/)、取模(%),完成整型或浮点型数据的算术运算算术运算符还有“++”、“--”两种,分别表示加1和减1操作3/2 //结果是115.2%5 //结果是0.2运算符关系运算符关系运算符用来比较两个值,包括大于(>)、大于等于(>=)、小于(<)、小于等于(<=)、等于(==)、不等于(!=)6种。关系运算符都是二元运算符,运算的结果是一个逻辑值Java允许“==”和“!=”两种运算用于任何数据类型可以判定两个实例是否相等逻辑运算符逻辑运算符包括逻辑与(&&)、逻辑或(||)和逻辑非(!)。前两个是二元运算符,后一个是一元运算符 Java对逻辑与和逻辑或提供短路操作功能。进行运算时,先计算运算符左侧表达式的值,如果使用该值能得到整个表达式的值,则跳过运算符右侧表达式的计算,否则计算运算符右侧表达式,并得到整个表达式的值运算符例3-3
Stringunset=null;if((unset!=null)&&(unset.length()>5)){ //对unset进行某种操作}空串unset不能使用,因此不能访问unset.length()if()语句中的逻辑表达式是合法的,且完全安全。因为第一个子表达式(unset!=null)结果为假,它马上导致整个表达式的结果为假。所以&&运算符跳过不必要的(unset.length()>5)计算,因为没有计算它,避免了空指针异常位运算符位运算符用来对二进制位进行操作,包括按位取反(~)、按位与(&)、按位或(|)、异或(^)、右移(>>)、左移(<<)及无符号右移(>>>)。位运算符只能对整型和字符型数据进行操作intxValue=27,yVar=28;xValue=xValue&4;yVar=4&yVar;运算符“>>”运算符“>>”执行算术右移,它使用最高位填充移位后左侧的空位。右移的结果为:每移一位,第一个操作数被2除一次,移动的次数由第二个操作数确定
128>>1 //得到64256>>4 //得到16-256>>4 //得到-16逻辑右移运算符逻辑右移或叫无符号右移运算符>>>只对位进行操作,而没有算术含义,它用0填充左侧的空位算术右移不改变原数的符号,而逻辑右移不能保证这一点0xa2>>>2 //得到40(byte)0xa2>>2 //得到-24(byte)0xa2>>>2 //得到1073741800(byte)0x80>>2 //得到-32移位运算符移位运算符约简其右侧的操作数,当左侧操作数是int类型时,右侧以32取模;当左侧是long类型时,右侧以64取模
“>>>”运算符只用于整型,它只对int或long值起作用。如果用于short或byte值,则在进行“>>>”操作之前,使用符号扩展将其提升为int型,然后再移位intx;x=x>>>32;x的结果不改变,而不是通常期望的0。这样可以保证不会将左侧操作数完全移走。其他运算符Java中的运算符还包括扩展赋值运算符(=、+=、-=、*=、/=、%=、&=、|=、^=、>>=、<<=)及(>>>=),条件运算符(?:),点运算符(.),实例运算符(instanceof),(new)运算符,数组下标运算符([])等扩展赋值运算符扩展赋值运算符是在赋值号(=)前再加上其他运算符,是对表达式的一种简写形式。如果有赋值语句: var=varopexpression; 其中,var是变量,op是算术运算符或位运算符,expression为表达式。使用扩展赋值运算符可表示为: varop=expression;条件运算符条件运算符(?:)是三元运算符,它的一般形式为: 逻辑表达式?表达式1:表达式2;逻辑表达式得到一个逻辑值,根据该值的真假决定执行什么操作。如果值为真,计算表达式1,否则计算表达式2注意,表达式1和表达式2需要返回相同的类型,且不能是void运算符的优先次序运算符的优先次序在对一个表达式进行计算时,如果表达式中含有多种运算符,则要按运算符的优先顺序依次从高向低进行,同级运算符则按结合律进行。括号可以改变运算次序表达式的提升和转换Java语言不支持变量类型间的自动任意转换,有时必须显式地进行变量类型的转换。一般的原则是,变量和表达式可转换为更一般的形式,而不能转换为更受限制的形式例如,int型表达式可看作是long型的;而long型表达式当不使用显式转换时是不能看作int型的自动类型转换一般地,如果同为整数类型,或同为浮点数类型,那么,转换的原则是位数少的类型可以转换为位数多的类型对于不同类的数值类型,转换的原则是整数类型可以转换为浮点数类型有一个特例是字符类型,它可以转换为位数更长的整数类型或浮点数类型类型转换当变量类型与表达式类型一致时,表达式的值可以给变量赋值。当变量类型与表达式类型不一致时,如果能进行自动类型转换,则赋值也是被允许的,这称为赋值相容不同类型数据的转换规则操作数1类型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年上外版高一数学下册月考试卷含答案
- 2025年人教版八年级科学下册月考试卷
- 2025年北师大版八年级科学上册阶段测试试卷
- 2025年仁爱科普版七年级历史上册阶段测试试卷
- 2025年沪科版七年级科学上册阶段测试试卷含答案
- 2025年冀教新版七年级历史上册月考试卷含答案
- 2025年人教版五年级语文上册阶段测试试卷
- 2025年度退换货服务及产品质量保证协议6篇
- 2024适用二手车购销协议样式版B版
- 2025年教科新版七年级科学上册月考试卷
- 全过程人民民主学习心得体会
- 冠心病诊断与治疗课件
- 2023年上海期货交易所招聘笔试题库及答案解析
- 新疆少数民族发展史课件
- 工程监理资料移交单
- 全国医疗服务价格项目规范(2012年版)-工作手册
- 水库蓄水安全鉴定提供资料要求
- 九月主题计划《 嗨,你好》
- e乙二醇精制车间设备布置图
- 县级综治中心等级评定细则、申报表、负面清单、流程图
- 《中外资产评估准则》课件第1章 资产评估准则及其形成机理
评论
0/150
提交评论