Java程序设计基本语法.ppt_第1页
Java程序设计基本语法.ppt_第2页
Java程序设计基本语法.ppt_第3页
Java程序设计基本语法.ppt_第4页
Java程序设计基本语法.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章 Java程序设计基本语法,内容摘要,Java程序的基本组成元素 Java基本数据类型、变量与常量 运算符与表达式 算法的基本控制结构 数组 向量类,学习目标,了解Java中的关键字与标识符定义和使用 掌握基本运算符和表达式的使用方法 掌握自增和自减运算符的使用方法 理解运算符优先级 掌握分支语句、循环语句的使用方法 区分break语句和continue语句的作用 掌握return语句使用方法 熟练掌握一维数组的用法 掌握二维数组定义和用法 理解向量类,2.1 Java语言基本组成元素,关键字与标识符 运算符与表达式。,2.1.1 关键字与标识符,关键字(keyword),也称保留字(reserved word),是指程序代码中规定用途的单词。也就是说,只要在程序代码内部出现该单词,编译程序就认为是某种固定的用途。标识符,也就是标识的符号,指程序中一切自己指定的名称,例如后续语法中涉及到的变量名称、常量名称、数组名称、方法名称、参数名称、类名、接口名、对象名等等。,2.1.1 关键字与标识符,关键字 关键字就是Java语言中已经被赋予特定意义的一些单词。例如public,char,default等,这些保留关键字不能当成标识符使用。 Java中的关键字有:abstract boolean break byte case catch char class continue do double else extends false find finally float implement import instanceof int interface long native new null package private public return short static super switch synchronized this throw true try void while strictfp volatile transient。,2.1.1 关键字与标识符,标识符: 用来标识类名、方法名、类型名、文件名的有效字符序列成为标识符。简单的说,标识符就是一个名字。 下面是命名标识符的规则。 标识符严格区分大小写。 标识符是由字母、数字、下划线(_)和美元符号($)组成的字符序列。 标识符必须以字母、下划线(_)或美元符($)开头而不能以数字开头。 标识符不能是关键字或保留字。,2.1.2 运算符与表达式,运算符:是一种特殊符号,用以表示数据的运算、赋值和比较。一般由一至三个字符组成,但Java将其视为一个符号。运算符共分为以下几种:算术运算符、比较运算符、条件运算符、逻辑运算符、位运算符、赋值运算符和自增自减运算符。 表达式:是指一个或多个运算符和运算数共同作用以完成某项计算的组合。计算后的值通常是一个数,但也可以不是,参与运算的运算数可以是文本、常量、变量或其它数据资源。表达式的计算与使用方式是编写程序的基础。,2.1.2 运算符与表达式,运算符优先级 表2-6 运算符优先级表,2.2 Java数据类型,Java是一种强类型语言,数据在使用前必须预先声明其类型,不同的类型有不同的数据结构、不同的存储方式,参与运算也不同。 数据类型有两种:基本数据类型和引用类型(reference)。 基本数据类型是由程序设计语言系统所定义、不可再划分的,数据所占内存的大小是固定的,与软硬件环境无关,数据在内存中存放的是数据值本身。 引用类型在内存中存放的是指向该数据的地址,不是数据值本身,它往往由多个基本数据类型组成。引用数据类型也被称为复合数据类型。,表2-7 Java基本数据类型,Java中的常量 常量就是程序里持续不变的量。它们不会随着程序的变化呈现不同的值,用户也无法重新对一个已定义的常量赋值。Java中的常量包含整型、浮点型、布尔型、字符型、字符串型。 Java中的变量 程序中的数据存储在内存中,为了使用数据则必须知道数据所在的内存位置,如果使用内存地址编号来调用数据那会相当麻烦,因此指定某个明确的名称来存储数据,该名称就是变量(variable)。将数据指定给某个变量,就是将数据存储到对应的内存空间,用户调用该变量时就调用了相应内存中的数据。,数据类型 变量名1,变量名2,变量名n;,例如: int num,total; double d1;,给变量分配 空间,byte,short,int,long, float,double,char,boolean 复合类型,例如: int num,total; double d1;,给变量分配 空间,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 数据类型转换,数值型数据转换成字符串 字符串可用加号“+”来实现连接操作。,字符串转换成数值型数据 String MyNum=“1234.567”; float MyFlo=Float.parseFloat(MyNum); 数值型数据转换成字符串 Int MyInt=1234; String MyString=“”+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+语言中数组不相同。在本节接下来的内容将介绍数组的声明、使用及原理。 一维数组是一组相关变量的一维集合,在程序设计中这样的列表很常见 声明一维数组的语法有两种格式: type arrayName = new typesize type arrayName=new typesize 对数组初始化有两种方法:一种是在数组声明时就初始化, 另一种是在定义后进行初始化。,例如:ArraySort.java,1声明数组格式: 数组元素类型 数组名 ;或 数组元素类型 数组名;,例如:int intArray ;,2. 创建数组空间 数组名 = new 数组元素类型 数组元素的个数 ;,例如: intArray = new int 10 ;,为整型数组intArray分配10个整数元素所占据的内存空间,并使每个元素初值为0 。 即intArray0, intArray1, intArray9的值各为0,int intArray ; intArray = new int 10 ;,int intArray = new int 10;,合二为一,String stringArray = new String5; / 初值为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有三个构造函数: public Vector(int initialCapacity,int capacityIncrement) public Vector(int initialCapacity) public Vector(),Java语言有关内存分配知识,栈内存和堆内存: 在方法中定义的一些基本类型的变量和对象的引用变量都在方法的栈内存中分配。 堆内存用来存放由new运算符创建的对象和数组,在堆中分配的内存,由java虚拟机的自动垃圾回收器来管理。 在堆内存中创建一个数组或对象后,还可以在栈内存中定义一个特殊的变量,让栈中的这个变量的取值等于数组或对象堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量,引用变量实际上保存的是数组或对象在堆内存中的地址。 引用变量相当于是为数组或对象起个名字,是普通的变量,定义时在栈中分配,数组或对象在没有引用变量指向它时,变为垃圾,在随后一个不确定的时间内被垃圾回收器收走(释放掉),Java语言有关内存分配知识,Intx; X=new int10;,?,Intx,堆内存,0x8000,Intx,0,0,0,0x8000,(对象首地址),New int(10) 产生的对象,0,X0,X1,X8,X9,栈内存,栈内存,import java.io.*; public class class_name public static void main(String args) throws IOException BufferedReader buf;/声明buf为BufferedReader类型的变量,该类在java.io类库中 String str;/声明str为String类型的变量 buf=new BufferedReader(new InputStreamReader(System.in);/创建buf对象 str-buf.readLine();/用readLine()方法读入字符串存入str中 ,由键盘输入数据,利用键盘输入数据,Java语言提供了两种方式 方式1、利用键盘输入数据,基本格式如下:,参看例程app2_1.java,由键盘输入数据,1、输入字符串:,参看例程app2_2.java,2、输入数值:从键盘输入的数据均被视为字符串,所以必须转换。,参看例程app2_3.java,3、输入多个数据:,import java.util.*; public class class_name public static void main(String args) Scanner reader=new Scanner(System.in);/用System.in创建一个Scanner对象 Double num;/声明double型变量,也可以声明其他数值型变量 num=reader.nextDouble();/调用reader对象的相应方法,读取键盘数据 ,由键盘输入数据,利用键盘输入数据,Jav

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论