版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章Java语言基础学习导读掌握Java语言的基础知识,是正确编写Java程序的前提,也是进一步深入学习Java语言的基础。本章主要介绍编写Java程序必须熟悉的语言基础知识,包括Java语言标识符、保留字、数据类型、运算符、表达式、标准输入输出、流程控制语句以及数组。
课程结构2.1标识符和保留字2.2变量和数组2.3运算符2.4表达式和语句2.5Java的标准输入与输出操作2.6Java的流程控制语句2.1标识符和保留字1.标识符标识符用于标识变量、函数、类和对象的名称,一来说明它们的存在,二来方便地使用它。标识符由字母、数字、下划线和$构成;第一个字符不能是数字字符;保留字不能作为用户自定义的标识符。2.1标识符和保留字2.保留字保留字或关键字是指那些具有专门的意义和用途的、由系统定义的标识符。const和goto保留字没有任何意义表2-1常见保留字2.2变量和数组
2.2.1直接量和变量1.直接量:直接量即常量,可以是一个具体的基本数据类型值或字符串。关键字finalJDK7.0支持二进制数据,用0b两个字符说明,例如(byte)0b1101101;(short)0b0110110100110010JDK7.0支持单位级别的数据,即每三位数据可用_将数据间分隔开。例如:8_223_352_036_854_555_850L2.2变量和数组2、变量:变量指其值可用改变的量,用标识符表示:类型变量名[,变量名]…[,变量名][=初值];变量可以分为局部变量、参数变量、静态变量、对象变量2.2变量和数组2.2.2基本数据类型Java的数据类型可分为基本数据类型(或叫简单数据类型)和复合数据类型。基本数据类型是指由Java语言本身定义的数据类型。复合数据类型是由用户根据需要自己定义并实现其运算的数据类型。表2-2Java定义的所有基本数据类型类型范围/格式说明整数类型byte8位二进制补码字节整型short16位二进制补码短整型int32位二进制补码整型long64位二进制补码长整型实数float32位IEEE754规范单精度double64位IEEE754规范双精度字符char16位Unicode字符集单字符布尔booleantrue或false布尔值2.2变量和数组1.整数类型整数类型包括整型常量和整型变量。整型常量整型常量有int和long两种类型,其中long型整型常量要在数字后面加大写的字母L或小写的字母l。具体的整型常量有三种表示形式:(1)十进制整型常量是由0~9、+、– 字符组成,并以+、–号开头的数字串。如987,– 654。(2)八进制整型常量是由0~7、+、– 字符组成,并以+、–号加0开头的数字串。如023(相当于十进制的19),– 043(相当于十进制的–35)。(3)十六进制整型常量是由0 ~ 9、+、–、A ~ F、a ~ f、x或X字符组成,并以+、– 号加0x或0X开头的数字串。如0x12,– 0X6A。整型变量整型变量的类型有四种:byte、short、int和long。2.2变量和数组2.浮点数据类型浮点数据类型就是常说的实型数据,也包括实型常量和实型变量实型常量实型常量有float和double两种数据类型,其中要表示float类型常量必须在数字后加上字母F或f。具体有两种表示形式:1)十进制数表示:由数字、小数点和正负号组成,且必须有小数点。如– 0.12、35.67。2)科学计数法表示:由数字、小数点、正负号和字母E/e组成,且在E/e之前必须有数字,如1.2e3、– 45E8。实型变量实型变量的数据类型有double和float两种。double称为双精度类型,float称为单精度类型。双精度类型比单精度类型的数据具有更高的精度和更大的表示范围。但单精度数据比双精度数据所占内存空间少且在处理器进行处理的速度也比双精度数据类型快一些。2.2变量和数组3.字符型数据字符型数据也包括字符型常量和字符型变量。字符型常量是用单引号括起来的一个字符,如:‘A’、‘9’。字符型数据是使用16位Unicode(全球文字共享编码)方式。由于采用Unicode编码方案,使得Java在处理多语种的能力方面得到大大提高,从而为Java程序在基于不同语种之间实现平滑移植铺平了道路。转义符号:以“\”开头,将其后面的符号转变为其他的含义。如:\ddd表示1到3位八进制表示的数据;\uxxxx表示1到4位十六进制表示的数据;\’表示单引号。2.2变量和数组4.布尔型数据布尔型数据只有true和false两个数据值,并且它们不对应任何整型值。2.2变量和数组2.2.3枚举类型
使用关键字enumpublicenum枚举类型名{枚举值1,枚举值2,枚举值3,…枚举值n};publicenumGradeType{A,B,C,D,E,Incompatible;}2.2变量和数组2.2.4数组在Java语言中,数组是属于复合数据类型,是由使用者自己来定义的,它实际上是一种隐含的“数组类”的实例。数组名就是该实例的一个引用,同样数组元素是对数组元素类实例的引用。2.2变量和数组2.2.4数组1.数组的声明Java的数组声明可以采用与C语言类似的形式。格式:一维数组:arrayTypearrayName[];二维数组:arrayTypearrayName[][];Java的数组声明语句没有指明数组大小。这是因为Java声明数组时并不一定需要为数组分配存储单元。Java中数组的存储单元的分配是在创建数组时完成的。2.2变量和数组2.2.4数组2.数组的创建(1)一维数组的创建分成:数组元素为简单数据类型数组元素为复合数据类型2.2变量和数组
2.2.4数组数组元素为简单数据类型①采用静态初始化。对于数据元素类型是基本数据类型的数组,声明数据与创建数组空间结合在一起,用一条语句完成,并同时给出各数组元素的初始值。格式为:arrayType
arrayName[]={element1[,element2…]};或arrayType[]arrayName={element1[,element2…]};2.2变量和数组
2.2.4数组②采用动态初始化。动态初始化的操作是由new运算符完成的。例如,对前面所声明的数组,可以用下面的形式创建一个数组count[]=newint[10];或者count=newint[10];事实上数组的声明与创建可以合并用一条语句来实现,如:intcount[]=newint[10];或者:int[]count=newint[10];2.2变量和数组
2.2.4数组数组元素为复合数据类型对于数组元素为复合数据类型的一维数组的空间创建按以下两个步骤进行。①为数组元素开辟引用空间,格式:arrayName=newarrayType[arraySize];②为每个数组元素开辟存储空间,格式:arrayName[i]=newarrayType(paramList);其中i=0,…arraySize-1。2.2变量和数组
2.2.4数组(2)二维数组的创建分成:数组元素为简单数据类型数组元素为复合数据类型2.2变量和数组
2.2.4数组数组元素为简单数据类型①采用静态初始化。同一维数组一样,声明数据与创建数组空间结合在一起,用一条语句完成,并同时给出各数组元素的初始值。例如:int[][]smallPrime={{2,3},{5,7},{11,13,17}};由于二维数组看作是数组的数组,数组空间不是连续分配的,所以每一维的大小可以不一样。如上例所示。②采用动态初始化。也同一维数组一样,通过new操作符进行空间分配,有两种方式:直接为每一维分配空间,格式为:arrayName=newarrayType[arraySize1][arraySize2];2.2变量和数组
2.2.4数组数组元素为复合数据类型
采用上述动态分配中的第二种方式进行数组的创建,即首先为数组的最高维分配引用空间,然后依次为低维分配引用空间,还要为每个数组元素分配存储空间。例如:Stringstr[][]=newString[2][]; //最高维的引用空间Str[0]=newString[2];//低维的引用空间Str[1]=newString[2];//低维的引用空间Str[0][0]=newString(“Happy”); //数组元素的存储空间及其数据Str[0][1]=newString(“Birthday”)//数组元素的存储空间及其数据Str[1][0]=newString(“to”);//数组元素的存储空间及其数据Str[1][1]=newString(“You”);//数组元素的存储空间及其数据2.2变量和数组2.2.4数组3.数组的复制System.arraycopy(源数组,0,目标数组,0,源数组的长度);2.3运算符1.运算符运算符按照参与运算的操作数的个数可分为:单目运算符、双目运算符和三目运算符。除进行运算外,运算符也返回值。这个值和类型取决于运算符和操作数的类型。Java运算符主要包括以下几类:算术运算符、关系运算符、条件运算符、位运算符、逻辑运算符以及赋值运算符。2.3运算符算术运算符算术运算符完成算术运算;包括一元算术运算符(+、–、++、––)和二元算术运算符(+、–、*、/、%);2.3运算符关系运算符关系运算符是比较两个数据大小关系的运算,常用的关系运算符是:>、>=、<、<=、==、!=。如果一个关系运算表达式,其运算结果是“真”,则表明该表达式所设定的大小关系成立;否则若运算结果为“假”,则说明了该表达式所设定的大小关系不成立。2.3运算符逻辑运算符逻辑运算和关系运算的关系十分密切,关系运算是运算结果为布尔型量的运算,而逻辑运算是操作数和运算结果都是布尔型量的运算表2-4逻辑运算符运算符使用方式返回true的条件&&op1&&op2Op1与op2均为true||op1||op2Op1或op2为真!!opOp为假2.3运算符位运算符位运算符是对操作数以二进制位进行运算,运算的结果为整型数据。表2-5位运算符运算符使用方式操作>>op1>>op2op1中各位都向右移op2位(最高位补符号位)<<op1<<op2op1中各位都向左移op2位>>>op1>>>op2op1中各位都向右移op2位(无符号,补0)&op1&op2按位与|op1|op2按位或^op1^op2按位异或~~op按位取反2.3运算符赋值运算符赋值运算符有=和符合赋值运算符,符合赋值运算符是先对某表达式进行某种运算后,把运算结果赋给一个变量.注意:当变量的数据类型与表达式计算结果的数据类型不一致时,如果变量数据类型级别高,则结果数据类型被自动转化为变量数据类型,然后赋给变量。否则,需要使用强制类型转换运算符将结果转化为变量数据类型。2.3运算符条件运算符条件运算符为三元运算符,其格式为:expression?Statement1:statement2。功能是:若expression为真,则执行语句statement1,否则执行语句ststement2。例如:c=a>b?a:b。注意:statement1与statement2要有相同返回结果,且不能是void返回类型。2.3运算符运算符的优先级和结合性使用表达式要注意:运算符的功能;运算符的优先级;运算符的结合性;对操作数的要求,包括个数要求、类型要求和值要求(如/或%都要求右边的操作数不为零);表达式值的类型。对表达式的运算是按运算符的优先顺序从高到低进行的。同级的运算符按照运算符的结合性进行运算。说明:1)所有单目运算符处于同一级,它们比双目运算符的优先级高。2)在双目运算符中,算术运算符高于关系运算符,关系运算符高于位操作和逻辑运算符。3)条件运算符高于赋值运算符,它们优先级别最低。4)除了单目运算符、条件运算符和赋值运算符的结合性为从右到左外,其他均为从左到右。2.4表达式与语句1.表达式表达式由运算符、操作数和方法调用,按照语言的语法规则构造而成的符号序列。最简单的表达式是一个常量或一个变量。表达式的任务有两项:执行指定的运算和返回运算结果。一个运算符的使用就是一个表达式。2.4表达式与语句2.语句(1)用分号结束的表达式,如:表达式;(2)空语句:;3.程序段{程序段}例2.2ExpDemo.java2.5Java的标准的输入与输出Java语言的输入输出:(1)Java的标准输入输出流:java.lang.System类;(2)利用图形界面接口实现输入输出。2.5Java的标准的输入与输出1.Java的标准输入与输出流System类管理标准输入输出流和错误流,有以下三个对象:1)System.out:把输出送到默认的显示(通常是显示器)。2)System.in:从标准输入获取输入(通常是键盘)。3)System.err:把错误信息送到默认的显示。2.5Java的标准输入与输出2.标准输出流的格式化输出
利用System.out对象的format和printf方法,格式化输出形式为:System.out.format(Stringformat,Object…args);System.out.printf(Stringformat,Object…args);//将对象args在本地语言环境下按照format格式输出System.out.format(Localelocale,Stringformat,Object…args);System.out.printf(Localelocale,Stringformat,Object…args);例2.3FormatDemo.java格式符标记符说明b输出布尔值f输出浮点值d输出数字o输出八进制数x输出十六进制数c输出unicode字符n输出新的一行.m输出实数的小数点精度n+n.m,-n,m输出实数最小字符数n,小数点精确到m位,+和无符号表示右排列,-表示左排列。格式符标记符说明tB,tP输出本地语言环境下的时间和日期转换,B月转换,p上下午转换tM,tm输出时间和日期的月用两位数字表示,M月份从0开始,m月份从1开始ty,tY输出年份y输出2位数字表示的年份,Y表示四位数字输出的年份tl输出转换12小时的时间td,te输出转换的2位数字的日期,d表示日期小于10可以补0,e表示不要补0tD按照%tm%td%ty格式输出时间和日期2.5Java的标准输入与输出3.java.util.Scanner此类用于将文本转换成原语或字符串,是Java的扫描器类,可以从输入流中读取指定类型的数据或字符串。例如:Scannerscanner=newScanner(System.in);inti=scanner.nextInt();例2.3:从控制台接受输入字符ch2InputCode.java例2.4:重定向输出流实现程序日志ch2RedirectOutputStream.java
2.6Java的流程控制语句流程控制语句是程序中基本且关键的部分,它用来控制程序中语句执行顺序。在传统的结构化程序设计中最主要的控制结构有顺序、分支和循环三种基本结构。虽然Java语言是面向对象的语言,但是在语句块内部,仍然需要借助基本流程结构来组织语句完成相应的逻辑功能。
2.6Java的流程控制语句1.分支语句(条件控制语句)分支结构有两路或多路分支。它们均是根据条件表达式的真假来选择语句的走向。(1).if/else分支语句格式:
if(expression){ statements1; }[else{ statements2; }]2.6Java的流程控制语句(2).嵌套if/else分支语句格式:
if(expression1){ statements1; }elseif(expression2){ statements2; } … elseif(expressionN){ statementsN; }else{ statements; }2.6Java的流程控制语句(3).switch分支结构格式:switch(expression){casevalue1:statements1;break;casevalue2:statements2;break;…casevalueN:statementsN;break;[default:statements;break;]}2.6Java的流程控制语句使用switch语句要注意:①expression必须是int、byte、char和short类型之一。②value必须是常量,且所有case子句中的value是不相同的。③default语句是可选的。当存在default语句,而无与expression匹配的value时,就执行default语句;当无default语句,且又无与expression匹配的value时,就跳出switch语句。④break用于执行完一个case子句后跳出switch语句。在某些情况下,允许位置上连续的多个不同的case子句执行相同的操作,所以只在该组的最后一个case字句中使用break语句。2.6Java的流程控制语句2.循环语句循环结构是指在满足一定条件下,反复执行某一段语句。Java中有四种循环语句:while语句,do–while语句、for语句、for-each语句。2.6Java的流程控制语句(1)for循环结构格式:for(initexpr1;testexpr2;incrementexpr3){statements;}(2)for-each语句格式:for(数据类型变量:数组名)作用:在JDK5.0新增了一个增强for形式的循环语句,它可以实现对数组顺序访问而不依赖于数组的下标和迭代器。就是不通过数组的下标达到对指定数据类型数组的所有的元素的访问。例ExForDemo.java2.6Java的流程控制语句(3)while循环结构格式:while(expression){statements;}作用:先判断条件表达式expression是否为真,若是真,则执行循环体,循环体执行完后再转向条件表达式继续做计算和判断;当条件表达式为假时,则跳出while语句。2.6Java的流程控制语句(4)do~while循环结构格式:do{statements;}while(expression);作用:与while语句很相似,不同的是do-while语句是先执行循环体一次,再判断条件表达式expression是否为真,若为真,则继续执行循环体,否则跳出do-while语句。2.6Java的流程控制语句3.转向语句break语句和continue语句continue语句:只能作用于循环语句,它的作用是从本次循环退出,返回到循环条件的判断,继续执行下一个循环break语句:(1)在switch中退出,终止case的条件判断。(2)break是从循环体中彻底退出,直接执行循环语句的后续语句。例:ContinueBreakDemo.java
4、标签语句和转向语句Java不支持goto语句(1)co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农药执法课件
- 2024年度版权买卖与代持协议3篇
- 2024年度电子商务代理合同
- 2024年度融资租赁合同:医疗设备
- 2024年度电力工程环境保护合同2篇
- 《目标识别技术在种子计数方法中的研究》
- 《氩氦冷冻消融联合厄洛替尼治疗老年中晚期肺腺癌的疗效研究》
- 2024年度版权许可使用合同中的违约责任
- 2024建筑劳务清包合同范本清包劳务合同范本
- 2024年度甲方委托乙方进行市场调研服务合同2篇
- 2023年安徽省普通高中学业水平合格性考试地理含答案
- 手术后气胸的护理课件
- 组织文化与领导力 详解报告
- 德能勤绩廉量化评分表
- 大学英语四级阅读理解精读100篇
- 口腔科6s管理标签大全
- 北京市海淀区2022-2023学年五年级上学期期末测试语文试卷
- 大班-数学-加号减号-课件(基础版)
- 中医护理技术之耳针法课件
- 介绍辽宁朝阳的PPT模板
- 检验菠菜中的铁元素-教学设计
评论
0/150
提交评论