




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章Java程序设计基本语法,内容摘要,Java程序的基本组成元素Java基本数据类型、变量与常量运算符与表达式算法的基本控制结构数组向量类,学习目标,了解Java中的关键字与标识符定义和使用掌握基本运算符和表达式的使用方法掌握自增和自减运算符的使用方法理解运算符优先级掌握分支语句、循环语句的使用方法区分break语句和continue语句的作用掌握return语句使用方法熟练掌握一维数组的用法掌握二维数组定义和用法理解向量类,2.1Java语言基本组成元素,关键字与标识符运算符与表达式。,2.1.1关键字与标识符,关键字(keyword),也称保留字(reservedword),是指程序代码中规定用途的单词。也就是说,只要在程序代码内部出现该单词,编译程序就认为是某种固定的用途。标识符,也就是标识的符号,指程序中一切自己指定的名称,例如后续语法中涉及到的变量名称、常量名称、数组名称、方法名称、参数名称、类名、接口名、对象名等等。,2.1.1关键字与标识符,关键字关键字就是Java语言中已经被赋予特定意义的一些单词。例如public,char,default等,这些保留关键字不能当成标识符使用。Java中的关键字有:abstractbooleanbreakbytecasecatchcharclasscontinuedodoubleelseextendsfalsefindfinallyfloatimplementimportinstanceofintinterfacelongnativenewnullpackageprivatepublicreturnshortstaticsuperswitchsynchronizedthisthrowtruetryvoidwhilestrictfpvolatiletransient。,2.1.1关键字与标识符,标识符:用来标识类名、方法名、类型名、文件名的有效字符序列成为标识符。简单的说,标识符就是一个名字。下面是命名标识符的规则。标识符严格区分大小写。标识符是由字母、数字、下划线(_)和美元符号($)组成的字符序列。标识符必须以字母、下划线(_)或美元符($)开头而不能以数字开头。标识符不能是关键字或保留字。,2.1.2运算符与表达式,运算符:是一种特殊符号,用以表示数据的运算、赋值和比较。一般由一至三个字符组成,但Java将其视为一个符号。运算符共分为以下几种:算术运算符、比较运算符、条件运算符、逻辑运算符、位运算符、赋值运算符和自增自减运算符。表达式:是指一个或多个运算符和运算数共同作用以完成某项计算的组合。计算后的值通常是一个数,但也可以不是,参与运算的运算数可以是文本、常量、变量或其它数据资源。表达式的计算与使用方式是编写程序的基础。,2.1.2运算符与表达式,运算符优先级表2-6运算符优先级表,2.2Java数据类型,Java是一种强类型语言,数据在使用前必须预先声明其类型,不同的类型有不同的数据结构、不同的存储方式,参与运算也不同。数据类型有两种:基本数据类型和引用类型(reference)。基本数据类型是由程序设计语言系统所定义、不可再划分的,数据所占内存的大小是固定的,与软硬件环境无关,数据在内存中存放的是数据值本身。引用类型在内存中存放的是指向该数据的地址,不是数据值本身,它往往由多个基本数据类型组成。引用数据类型也被称为复合数据类型。,表2-7Java基本数据类型,Java中的常量常量就是程序里持续不变的量。它们不会随着程序的变化呈现不同的值,用户也无法重新对一个已定义的常量赋值。Java中的常量包含整型、浮点型、布尔型、字符型、字符串型。Java中的变量程序中的数据存储在内存中,为了使用数据则必须知道数据所在的内存位置,如果使用内存地址编号来调用数据那会相当麻烦,因此指定某个明确的名称来存储数据,该名称就是变量(variable)。将数据指定给某个变量,就是将数据存储到对应的内存空间,用户调用该变量时就调用了相应内存中的数据。,数据类型变量名1,变量名2,变量名n;,例如:intnum,total;doubled1;,给变量分配空间,byte,short,int,long,float,double,char,boolean复合类型,例如:intnum,total;doubled1;,给变量分配空间,num:,total:,d1:,变量“先声明后使用”,num=5;total=2*num;d1=-234.45;num=6;K=90;Num=J+90+num;,5,10,-234.45,6,2.2.3数据类型转换,在编写程序过程中,经常会遇到一种情况,就是需要将一种数据类型的值转换成另一种不同数据类型的变量,由于数据类型有差异,在赋值时就需要进行数据类型的转换。1、数值型不同类型数据的转换自动类型转(隐式转换)换强制类型转换(显示转换)。2、字符串型数据与整型数据相互转换,2.2.3数据类型转换,自动类型转换要满足两个条件:转换前后的两种类型彼此兼容,转换后的类型的取值范围要大于源类型(低级类型数据转换成高级数据类型数据)。例如,当byte型向int型转换时,由于int型取值范围大于byte型,就会发生自动转换。所有的数据类型,包括整型和浮点型彼此都可以进行这样的转换。转换规则为:字符型转换为整型:char-int数值型之间的转换:byte-short-int-long-float-double,2.2.3数据类型转换,强制类型转换当两种类型彼此不兼容,或目标类型取值范围小于源类型时,自动转换无法进行,这就需要进行强制类型转换。强制类型转换的格式为:(目标数据类型)变量名或表达式其中,目标数据类型是值转换后的数据类型。参看例程cpp2_0.java,注意:在程序设计中,不推荐从较长数据向较短数据的转换,会导致计算数据精度的降低。,2.2.3数据类型转换,字符串转换成数值型数据数字字符串数据转换成byte/short/int等数据类型,可以利用下表提供的Byte/Short、Integer、Float、Double、Long类的parseXXX()方法。,2.2.3数据类型转换,数值型数据转换成字符串字符串可用加号“+”来实现连接操作。,字符串转换成数值型数据StringMyNum=“1234.567”;floatMyFlo=Float.parseFloat(MyNum);数值型数据转换成字符串IntMyInt=1234;StringMyString=“”+MyInt;,2.3控制语句,程序控制语句分为三类:分支语句,包括if语句和switch语句;循环语句,包括for循环语句、while循环语句和do-while循环语句;跳转语句,包括break语句、continue语句和return语句。在本节将详细介绍这些控制程序执行流程的语句。,2.3.1分支语句,分支语句是所有流程控制结构中最基础的控制语句。程序在执行过程中会根据条件来选择执行程序分支。分支语句的两种语句是:if和switch语句,两种语句的特点如下表所示。,2.3.1分支语句,if语句,2.3.1分支语句,ifelse语句,2.3.1分支语句,嵌套使用ifelse语句,例如:Core.java,2.3.1分支语句,switch语句,例如:SwitchT.java,2.3.2循环语句,循环结构,在某些条件继续时,重复执行一段代码。能够多次执行同一个任务。包括for循环、while循环以及do-while循环。每一种循环语句都有各自的优点,如下表所示。,2.3.2循环语句,使用for循环时,一般遵循下面所示的语法结构:for(表达式1;表达式2;表达式3)循环体;,例如:ForSum.java,2.3.2循环语句,while循环语法格式非常简单,如下所示:while(逻辑表达式)循环体;,例如:Avg.java,2.3.2循环语句,do-while循环的一般语法结构如下所示:do循环体;while(测试条件);,例如:DoSum.java,2.3.3跳转语句,在使用循环语句时,只有循环条件表达式的值为假时才能结束循环。如果想提前中断循环,只需在循环语句块中添加break语句。break语句属于跳转语句,跳转语句还包括continue语句,它功能是跳过本次循环要执行的剩余语句,然后开始执行下一次循环。除了break语句和continue语句可以实现程序跳转外,return语句也能实现跳转。它们的功能特点如下表所示。,2.4数组,数组提供了一种将有联系的信息分组的便利方法。然而Java数组的工作原理与C/C+语言中数组不相同。在本节接下来的内容将介绍数组的声明、使用及原理。一维数组是一组相关变量的一维集合,在程序设计中这样的列表很常见声明一维数组的语法有两种格式:typearrayName=newtypesizetypearrayName=newtypesize对数组初始化有两种方法:一种是在数组声明时就初始化,另一种是在定义后进行初始化。,例如:ArraySort.java,1声明数组格式:数组元素类型数组名;或数组元素类型数组名;,例如:intintArray;,2.创建数组空间数组名=new数组元素类型数组元素的个数;,例如:intArray=newint10;,为整型数组intArray分配10个整数元素所占据的内存空间,并使每个元素初值为0。即intArray0,intArray1,intArray9的值各为0,intintArray;intArray=newint10;,intintArray=newint10;,合二为一,StringstringArray=newString5;/初值为null,用new关键字为一个数组分配内存空间后,系统将为每个数组元素都赋予一个初值,这个初值取决于数组的类型。所有数值型数组元素的初值为0,字符型数组元素的初值为一个不可见的ISO控制符(u0000),布尔型数组元素的初值为false,类的类型的数组在创建时,元素的初值为null。数组对象一旦创建之后,在程序整个执行期间,就不能再改变数组元素的个数。,2.4.1一维数组与多维数组,数组的内存结构如图2-24所示:,2.4.2一些与数组操作相关函数,对数组的一些基本操作,像排序、搜索与比较等比较常见。在Java中提供了Arrays类可以协助完成这几个操作,Arrays类位于java.util包中,它提供了几个方法可以直接使用,以下介绍两个与数组操作有关的函数。使用System.arraycopy()函数复制数组用Arrays.sort来排序数组,例如:ArrayCopy.java,例如:TestArraySort.java,2.4.3向量类,Vector类,即向量类可以实现可增长的对象数组,它也是一种集合类,存在java.util.包中。Vector类提供了实现可增长数组的功能,随着更多元素加入其中,数组变的更大。在删除一些元素之后,数组变小。Vector有三个构造函数:publicVector(intinitialCapacity,intcapacityIncrement)publicVector(intinitialCapacity)publicVector(),Java语言有关内存分配知识,栈内存和堆内存:在方法中定义的一些基本类型的变量和对象的引用变量都在方法的栈内存中分配。堆内存用来存放由new运算符创建的对象和数组,在堆中分配的内存,由java虚拟机的自动垃圾回收器来管理。在堆内存中创建一个数组或对象后,还可以在栈内存中定义一个特殊的变量,让栈中的这个变量的取值等于数组或对象堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量,引用变量实际上保存的是数组或对象在堆内存中的地址。引用变量相当于是为数组或对象起个名字,是普通的变量,定义时在栈中分配,数组或对象在没有引用变量指向它时,变为垃圾,在随后一个不确定的时间内被垃圾回收器收走(释放掉),Java语言有关内存分配知识,Intx;X=newint10;,.,?,Intx,堆内存,.,0 x8000,Intx,0,0,0,0 x8000,(对象首地址),Newint(10)产生的对象,0,X0,X1,.,X8,X9,栈内存,栈内存,importjava.io.*;publicclassclass_namepublicstaticvoidmain(Stringargs)throwsIOExceptionBufferedReaderbuf;/声明buf为BufferedReader类型的变量,该类在java.io类库中Stringstr;/声明str为String类型的变量.buf=newBufferedReader(newInputStreamReader(System.in);/创建buf对象str-buf.readLine();/用readLine()方法读入字符串存入str中.,由键盘输入数据,利用键盘输入数据,Java语言提供了两种方式方式1、利用键盘输入数据,基本格式如下:,参看例程app2_1.java,由键盘输入数据,1、输入字符串:,参看例程app2_2.java,2、输入数值:从键盘输入的数据均被视为字符串,所以必须转换。,参看例程app2_3.java,3、输入多个数据:,importjava.util.*;publicclassclass_namepublicstaticvoidmain(Stringargs)Scannerreader=newScanner(System.in);/用System.in创建一个Scanner对象Doublenum;/声明double型变量,也可以声明其他数值型变量.num=reader.nextDouble();/调用reader对象的相应方法,读取键盘数据.,由键盘输入数据,利用键盘输入数据,Java语言提供了两种方式方式2、利用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 资金监管库管理办法
- 酒店客房改造为培训住宿及设施租赁协议
- 业务信息报送管理办法
- 装饰装修相关管理办法
- 行政车辆节能管理办法
- 阅览小学室管理办法
- 资产处置收益管理办法
- 街道干部考勤管理办法
- 营运车辆登记管理办法
- 铣刀原材料管理办法
- 2025农业银行笔试题库及答案
- 2025人教部编版语文四年级上册教学计划(含进度表)
- 纪委遴选笔试真题及答案详解
- 2025家庭保姆雇佣合同范本
- 金属非金属矿山开采方法手册
- 沟通与协调能力考核题库600题(答案)
- 危重患者血糖管理专家共识解读
- 工程缺陷责任期终止证书版本
- GB/T 45356-2025无压埋地排污、排水用聚丙烯(PP)管道系统
- 石墨产品的国际市场推广策略
- ktv店长合同范本
评论
0/150
提交评论