版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章Java语言基础本章主要内容:·Java的注释、分隔符、关键字和标识符·Java的基本数据类型·Java的常量和变量·Java的运算符和表达式·Java的流程控制语句3.1Java的若干基本概念
3.1.1注释
程序中的注释没有逻辑意义,但是又是十分重要的程序组成部分。恰当地书写注释可以增强程序的可读性,提高理解计算机程序的效率,降低程序维护的代价。单行注释(//)多行注释(/*……*/)文档注释(/**……*/)3.1.2分隔符
Java语言有5种基本语法成分:标识符、关键字、分隔符、运算符和常量。分隔符(separators)用于区分Java语言程序中的基本语法成分即单词符号。分隔符有空白符、注释和普通分隔符三种。其中注释已经在前一小节中介绍过了。3.1Java的若干基本概念3.1.2分隔符空白符(WhiteSpace)包括空格(SP,space)、制表符(‘\t’,Tab键)、走纸换页(‘\f’)、回车(‘\r’)和换行(‘\n’)。回车和换行顺序连在一起也称为行结束符。Java语言中单个空白符与多个空白符的作用是一样的。3.1Java的若干基本概念3.1.3关键字2023/1/14
关键字(keyword)也称为保留字(Reservedword)。Java语言中的关键字是已经被赋予特定意义的单词符号,不是标识符,不能作为类名、方法名和变量名等来使用。3.1Java的若干基本概念
3.1.4标识符Java语言程序中,通常需要对类、方法、变量、类型、数组和文件等进行命名。标识符是一个具有特定规则的字符序列,可以用来作为这些对象的名称。Java语言规定标识符可以是任意长度,由字母、下划线(_)、美元符号($)和数字组成的字符串,第一个字符只能是数字之外的字符。其中字母包括汉字在内的各个国家的文字(Unicode字符)。同时满足以下的条件:1.标识符不能是关键字。2.标识符不能是布尔常量true和false。3.标识符不能使用null。3.1Java的若干基本概念3.2基本数据类型2023/1/14Java是一种静态类型语言,每个变量和表达式在编译时都已经知道其类型。同时Java也是一种强类型语言,类型限定了取值和可能的运算符,这有助于编译时检查程序的有关错误。Java语言的类型分为两类,基本数据类型(primitivetypes)和引用数据类型(referencetypes)。基本数据类型包括数值类型、字符类型和布尔类型;引用数据类型有类、接口和数组。Java数据类型的分类如图3-1所示。2023/1/143.2基本数据类型2023/1/143.2.1整数类型
整数类型是没有小数部分的数据类型。表3-3中列出了Java语言的所有的整数类型,主要4种整数类型是byte、short、int和long,其中int最为常用。不同的整数类型可以表示相同的数值,但使用的存储字节数是不一样的。如果一味地选择字节数多的类型来声明整数类型的变量,则有可能造成存储空间的浪费;相反则可能造成整数计算过程中的数据溢出,得到不正确的计算结果。程序员在声明变量时需要酌情考虑所描述的计算的值的范围,选用适当的类型来声明变量。3.2基本数据类型2023/1/14表3-3整数类型的表示范围类型存储表示范围byte1字节-128~127(-27~27-1)short2字节-32768~32767(-215~215-1)int4字节-2147483648~2147483647(-231~231-1)long8字节-9223372036854775808~9223372036854775807(-263~263-1)char2字节0~65535('\u0000'~'\uffff')3.2基本数据类型2023/1/143.2.2浮点类型浮点类型是含有小数部分的数据类型,用于表示数学意义上的实数。Java语言中有两种浮点类型,分别是float和double,参见表3-4。Java语言按照IEEE754标准规定,float是单精度32位格式的浮点数,double是双精度64位格式的浮点数;同时也规定了float和double的运算。3.2基本数据类型2023/1/14表3-4浮点类型的表示范围类型存储表示范围float4字节-1.4×10-45~3.4028235×1038double8字节-4.9×10-324~1.7976931348623157×10308
由于double型与float型相比其值的范围大,所以当计算精度要求较高时应该选用double型声明变量,一般情况下可以用float型声明变量。3.2基本数据类型2023/1/143.2.3布尔类型布尔类型只有一种即boolean。布尔类型的值只有true和false(都必须是小写)。布尔类型是独立的类型,不对应任何整数,不能进行整数运算。程序执行中,常常会进行逻辑判定,进而控制程序运行流程。布尔类型正是这样的逻辑类型。布尔值有时是由两个数值量的比较而得到的。3.2基本数据类型2023/1/143.2.4字符类型
字符类型即char类型,是一种使用广泛的类型。源程序、数据文件和文档文件等都是由字符组成的。Java的char类型是2字节,数值表示范围是0~65535,可以用来存储处理Unicode字符编码的数据。Unicode标准采用固定16位的字符编码,几乎可以表示世界上所有的语言文字字符.3.2基本数据类型2023/1/14表3-5Java转义字符表转义字符Unicode和英文释义描述\b\u0008:backspaceBS退格\t\u0009:horizontaltabHT横向制表符\n\u000a:linefeedLF换行\f\u000c:formfeedFF走纸换页\r\u000d:carriagereturnCR回车\"\u0022:doublequote双引号\’\u0027:singlequote单引号\\\u005c:backslash反斜杠\xxx①\u0000to\u00ff:fromoctalvalue八进制转义符\uxxxx②\u0000to\uffff:fromhexvalue十六进制转义符3.2基本数据类型2023/1/143.2.5包装类
Java是一个面向对象的语言,但是Java语言中的基本数据类型不是面向对象的,有时会给实际使用带来不便,因此Java类库中提供了包装类,每个基本数据类型都有一个相对应类包装类主要有两种用途:⑴作为基本数据类型对应的类,方便涉及对象的操作;⑵包含基本类型的相关属性(包括最大值和最小值)以及相关的操作方法。3.2基本数据类型3.3常量和变量2023/1/14
常量是基本类型值的源代码表示形式,在源程序中是一个字符串,语法上是一个单词符号。常量有整数常量、浮点数常量、布尔常量、字符常量、字符串常量和null常量。整数常量浮点数常量布尔常量字符常量字符串常量null常量2023/1/143.3.2变量变量是一个有类型的存储单元,并且编译时已经确定类型,其类型可以是基本类型或引用类型。变量值由赋值、自增(++)或自减(--)运算来改变。同时由于声明变量位置的不同,还可以分为类属性变量和局部变量,类属性变量在类中声明;局部变量在程序块(用花括号括起来部分{……})中声明,其作用域限定于所在的程序块,这里的程序块包括方法体和块语句等。
3.3常量和变量2023/1/14变量类型⑴类变量(classvariable)⑵实例变量(instancevariable)⑶阵列组件(Arraycomponents)⑷方法形参(Methodparameters)⑸构造形参(Constructorparameters)⑹例外形参(exceptionparameter⑺局部变量(Localvariables)3.3常量和变量2023/1/142.final变量声明变量时,如果使用修饰词final,那么该变量只能被赋值一次,程序执行过程中值不会改变。例如:publicstaticfinaldoublePI=3.1415926;publicstaticfinaldoublePIX2=6.2831852;publicstaticfinalStringend="程序运行正常结束!!!"3.3常量和变量2023/1/143变量初值在程序中,每个变量在被使用之前必须有值。声明变量时,如果没有显式地指定初值,则变量会有一个缺省的初值,变量类型的不同其缺省值也是不一样的,参见表3-7。类变量、实例变量、阵列组件被创建时按缺省值进行初始化。3.3常量和变量表3.7常用类型缺省值类型缺省值byte(byte)0short(short)0int0long0Lfloat0.0fdouble0.0dchar‘\u0000’booleanfalseReferencetypesnull3.3常量和变量4变量声明Java语言的变量除了有类型之外,还有修饰词来限定它的使用。修饰词包括public、protected、private、abstract、static和final。变量声明的一般形式如下。其中变量名必须是标识符,变量声明时可以初始化,同一类型一次声明多个变量时用逗号隔开。<修饰词列表><变量类型><变量名列表>3.3常量和变量5符号常量符号常量(Constant)是一个重要的概念。符号常量是使用固定的修饰词"publicstaticfinal"声明的变量,通常在类中定义,通过类名引用,例如Integer.MAX_VALUE。在程序执行过程中,符号常量的值不会改变。每种基本数据类型都可以定义相应的符号常量。按照Java规范,符号常量一般用大写的标识符。例如:publicstaticfinalintMIN_VALUE=-100;3.3常量和变量3.4运算符和表达式3.4.1算术运算符算术运算符用来计算数值类型数据。根据操作数的不同,往往分为单目运算符和双目运算符,单目运算符只有一个操作数,双目运算符有两个操作数。算术运算符可以分为后缀运算符(++,--)、单目运算符(++,--,+,-)、乘除类运算符(*,/,%)和加减类运算符(+,-).表3-8算术运算符运算符含义举例备注++自增(后缀)x++后缀运算符,相当于x=x+1--自减(后缀)x--后缀运算符,相当于x=x-1++自增++x单目运算符,相当于x=x+1--自减--x单目运算符,相当于x=x-1+取正值+(x+y)单目运算符-取负值-(x–y)单目运算符*乘法x*y双目运算符/除法x/z双目运算符%取模(余数)x%y双目运算符+加法x+y双目运算符-减法x-y双目运算符3.4运算符和表达式3.4.2关系运算符关系运算符是双目运算符,用来比较两个数值类型数据,其运算结果是布尔类型的值true或false。当运算符所对应的关系成立时结果为true,否则结果为假。所有的关系运算符参见表3-9。表3-9关系运算符运算符含义举例备注<小于9<6比较9和6值,结果为false<=小于等于x<=y比较x和y值,x小于等于y时结果为true>大于x>9比较x和9值,大于时结果为true>=大于等于6>=x比较6和x值,大于等于时结果为true==等于x==MAX_VALUEx值等于MAX_VALUE时结果为true!=不等于x!=y比较x和y值,不等于时结果为true3.4运算符和表达式3.4.3逻辑运算符逻辑运算符用来计算布尔类型的值,有单目运算符和双目运算符,其运算结果是布尔类型的值true或false。逻辑运算符分为标准逻辑运算符(!,&,^,|)和条件逻辑运算符(&&,||)。对于标准逻辑运算符,需要对所有子表达式求值之后,才能得到结果值。而对于条件逻辑运算符,对其左操作数求值后如果能确定其结果就不对右操作数进行求值。对于x&&y,只有左操作数x为true时才计算y值作为结果值,否则直接得到结果为false。对于x||y,只有左操作数x为false时才计算y值作为结果值,否则直接得到结果为true。3.4运算符和表达式3.4.4位运算符位运算符分为按位运算符(BitwiseOperators)和移位运算符(ShiftOperators)。位运算符用来计算整数类数值中的二进制位,计算结果也是整数。所有的位运算符,参见表3-11。不同长度的整数进行按位运算时,会把二进制位数较短的整数的高位(左侧)补0,补齐位数后再进行运算。需要注意的是,位运算符与一般逻辑运算符使用相同的符号,只是它们的操作数不同,只能根据操作数的类型判断是哪一种操作符。3.4运算符和表达式3.4.5赋值运算符赋值运算符分为简单赋值运算符(SimpleAssignmentOperator)和复合赋值运算符(CompoundAssignmentOperators)。简单赋值运算符只有=,用于计算运算符=的右边表达式的值并将其送到左边的存储单元中。使用复合赋值运算符,可以使得表达式变得简洁,同时也有助于加快程序运行速度。所有的赋值运算符参见表3-12。复合赋值运算表达式的一般形式是:<表达式1><运算符>=<表达式2>3.4运算符和表达式表3-12赋值运算符运算符含义举例备注=赋值x=y+z双目运算符,简单赋值运算符+=(加)x+=y双目运算符,相当于x=x+y-=(减)x-=z双目运算符,相当于x=x-z*=(乘)x*=5双目运算符,相当于x=x*5/=(除)x/=10双目运算符,相当于x=x/10%=(取余)x%=y双目运算符,相当于x=x%y&=(按位与)x&=y双目运算符,相当于x=x&y|=(按位或)x|=y双目运算符,相当于x=x|y^=(按位异或)x^=y双目运算符,相当于x=x^y<<=(左移)x<<=2双目运算符,相当于x=x<<2>>=(带符号右移)x>>=4双目运算符,相当于x=x>>4>>>=(不带符号右移)x>>>=8双目运算符,相当于x=x>>>83.4运算符和表达式3.4.6其他运算符·条件运算符(?:)·对象运算符(instanceof)·圆括号·方括号3.4运算符和表达式3.4.7运算符优先级运算符有优先级和结合性。优先级指同一个表达式中,有多个运算符时的执行顺序,同级运算符具有相同的优先级,对于相同优先级的运算符根据其结合性决定计算的顺序。表3-13给出了Java运算符的优先级和结合性。对于算术运算,人们常说的一句话是“先乘除后加减,同级运算从左到右,括号里优先”,这句话高度概括了算术运算符的优先级和结合性,也指出了其表达式的计算顺序。但是并非所有的运算符都是左结合的。3.4运算符和表达式3.5类型转换3.5.1自动类型转换每一个Java语言的表达式都有一个类型,该类型是由表达式中的常量或变量的类型来决定的。在对表达式进行求值时,Java语言会按照字节数少的类型转换为字节数多的类型的原则,进行类型转换。一般来说按照byte→short或char→int→long→float→double的原则进行类型转换,即浮点类型与双精度类型计算时转换为双精度,长整形和浮点数进行计算时转换为浮点数等。也可以越级转换,比如整数类型与双精度类型计算时转换为双精度。赋值发生时,则必须将赋值运算符右边的表达式的值强制转换为左边变量的类型。如果在一个表达式中想人为地改变数据类型,则需要使用强制类型转换。特别是如果要将字节数多的类型转换为字节数少的类型,就需要强制类型转换。强制类型转换的语法形式如下:(<类型>)(<表达式>)例如,计算半径为3.0圆的周长,结果只需要整数部分时,用(int)进行强制转换:intl;l=(int)(2*3.1415926*3.0);需要注意的是,对表达式进行强制类型转换时,圆括号是必要的。如果上述式子写成:l=(int)2*3.1415926*3.0;其中的强制转换(int)则只针对常量2,而不是针对整个表达式。3.5.2强制类型转换3.5类型转换3.6流程控制语句用计算机程序语言编写的程序是顺序执行的,但是现实世界中有各种各样的逻辑需要表达,如果程序中只有顺序执行语句显然无法满足实际需求。流程控制语句使得程序描述计算过程时能够应对多样性的需求,能够使得程序更加简洁。3.6.1结构化程序设计结构化程序设计以模块功能和过程设计为主,其主要要点如下:采用自顶向下,逐步求精的程序设计方法任何程序只使用顺序、选择、重复(循环)这三种基本控制结构结构化程序设计要求程序中的每个模块是单入口和单出口的;没有死循环;没有死语句,即没有绝对不会被执行的语句。虽然Java语言是面向对象的程序设计语言,但是在程序设计的细节上,比如方法的实现,还是应该按照结构化程序设计的基本思想进行编程。3.6流程控制语句3.6.2基本语句一些语句的语法结构相对比较简单,比如表达式语句和空语句等。另外一些语句的语法结构相对比较复杂,可能包含有子语句,比如分支语句和循环语句。此外,Java语言中还有块语句的概念,块语句也称为复合语句。块语句是由花括号({……})括起来的语句,其一般形式为:{<语句序列>}3.6流程控制语句3.6.3选择语句选择语句也称为分支语句或条件语句。Java语言的选择语句有两种,分别是if语句和switch语句。Java语言支持语句嵌套,选择语句中的子语句允许嵌套其他的语句,比如循环语句。if语句⑴简单if语句;⑵if-else语句;⑶复合if语句。3.6流程控制语句2.switch语句switch(<表达式>){ case<常量表达式1>:
<语句序列1>case<常量表达式2>:
<语句序列2> …… case<常量表达式n-1>:
<语句序列n-1> [default: <语句序列n>]}switch语句是一个多选择语句,作用上类似于复合if语句,有时可以相互代替。switch语句的语法形式如下:3.6流程控制语句【例3-2】编写程序,将百分制的分数转换成优、良、中、及格和不及格。程序使用标准输入输出读写数据。3.6流程控制语句importjava.util.Scanner;publicclassPointtoword{ publicstaticStringpointtoword(intgrad){ /*输入分数转换为文字*/ Stringresult=null; switch(grad){ case10:case9: result="优"; break; case8: result="良"; break;case7: result="中"; break; case6: result="及格"; break; default: result="不及格"; } returnresult; }publicstaticvoidmain(String[]args){ /*输入分数*/ floatpoint=0; try{ Scannerscanner=newScanner(System.in); System.out.print("请输入分数(0-100):"); point=scanner.nextFloat(); scanner.close(); }catch(Exceptione){ System.out.println("输入数据错误!!!"); System.out.println("错误信息:"+e.getMessage()); } if(0<=point&&point<=100){ /*转换结果输出*/ System.out.println("成绩是:"+pointtoword((int)point/10)); }else{ System.out.println("输入的成绩不正确:"+point); } }}3.6流程控制语句3.6.4循环语句Java语言的循环语句有三种,分别是for语句、while语句和do-while语句。程序中需要循环处理时,程序员要根据实际问题,选择适当的循环语句,并形成一种可阅读性好的编程风格。由于Java语言支持语句嵌套,所以循环语句的循环体中可以有循环语句或选择语句。3.6流程控制语句for语句是一种常用的循环语句,语法形式如下:for(<表达式1>;<表达式2>;<表达式3>) <语句>for语句【例3-3】编写程序,计算-1!+2!-3!+……+20!。publicclassSumFactorial{ publicstaticfinalintN=20; publicstaticlongfactorial(intn){ if(n==1) return1L; else returnn*factorial(n-1); }3.6流程控制语句publicstaticlongsumFactorial(intn){ longsign=-1,sum=0; for(inti=1;i<=n;i++){ sum+=sign*factorial(i); sign=-sign; } returnsum; } publicstaticvoidmain(String[]args){ /*输出计算结果*/ System.out.println("计算结果:"+sumFactorial(SumFactorial.N)); }}3.6流程控制语句2while语句while语句也是一种常用的循环语句,其语法格式如下:while(<表达式>)
<语句>其中,<表达式>是循环控制条件,其值是布尔类型。3.6流程控制语句3do-while语句do-while语句与while语句不同之处在于,do-while语句至少执行一次循环体中的语句。其语法形式如下:do <语句>while(<表达式>)其中,<表达式>是循环控制条件,其值是布尔类型3.6.5跳转语句
跳转语句也称为转移语句。Java语言中的跳转语句有continue语句、break语句和return语句。Java语言中虽然有关键字goto,但是不支持goto语句。continue语句break语句return语句3.6流程控制语句本章小结本章介绍了Java语言的若干基本概念、基本数据类型、常量和变量。这些基本概念包括注释、分隔符、关键字、标识符。Java语言的基本数据类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 寄养殖合同范例
- 劳役合同范例
- 中止保洁服务合同模板
- 2024年度0000吨煤炭进口合同
- 《莫扎特《A大调第五小提琴协奏曲》演奏技巧和演奏学派风格研究》
- 《基于功效系数法的HD电气公司财务绩效评价研究》
- 《厦门野生古巴栓孔菌分离鉴定及其发酵液对玉米苗期生长的影响》
- 《齐墩果酸A环及C-28位衍生物的合成及抗肿瘤活性研究》
- 《基于任务型教学法的线上对外汉语中级综合课教学设计》
- 2024年建筑施工废弃物运输土方合同
- 2024中国海油校园招聘2024人(高频重点提升专题训练)共500题附带答案详解
- 孙中山诞辰纪念日主题班会主题班会
- 2024-2025学年新教材高中生物 第五章 细胞的能量供应和利用 第2节 1 细胞的能量“货币”ATP教案 新人教版必修1
- 2024年安徽省合肥市中考语文题卷(含答案)
- G -B- 43630-2023 塔式和机架式服务器能效限定值及能效等级(正式版)
- 24春国开电大《工具书与文献检索》平时作业1-4答案
- 文艺复兴经典名著选读 知到智慧树网课答案
- 2024年北京出版集团有限责任公司招聘笔试冲刺题(带答案解析)
- 2022-2023学年福建省厦门一中九年级(上)期中物理试卷
- 足球球性球感练习教案
- 锂离子电池制造中的安全问题与防范措施
评论
0/150
提交评论