Java的基本语法.ppt_第1页
Java的基本语法.ppt_第2页
Java的基本语法.ppt_第3页
Java的基本语法.ppt_第4页
Java的基本语法.ppt_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

第三章 Java的基本语法: C+语言的克隆,目 录,重点与难点点拨,Java语言基础,运算符与表达式,程序的控制结构,经典练习题,常量与变量,数据类型与类型转型,本章知识重点,本章知识难点,三元运算符,运算符的优先级,三种循环语句,Java语言集符号,Java程序最基本的构造要素是符号,符号也是Java语言中不可分割的最小语法单元。 Java的符号分为四种类型,它们是: 标识符 关键字 运算符 分隔符,Java标识符,与C+或C语言一样,Java是大小写敏感的语言,在Java程序中,必须严格区分大小写字母。 Java程序的任何有效成分,必须有唯一的合法名称来标识,这类名称叫做标识符。 变量、符号常量、数组、方法、类、对象、接口、包等Java程序的有效成分,必须先由用户命名其标识符,然后才能使用,这符合“先定义再使用”的原则。,Java标识符(续1),标识符的合法符号包括:字母、数字、下划线(_)及美元符号($);字母为大写或小写的英文字母,数字为0到9这十个阿拉伯数字。 标识符的首个字母必须为字母、下划线或$符之一,但不允许为数字。 标识符区分大小写。Java中,Count与count是不同的两个标识符。 命名的标识符不允许与关键字相同。,Java标识符(续2),标识符允许包含关键字作为它的一部分。例如,虽然this是一个关键字,但thisVariable却是一个有效的标识符 命名的标识符最好能够反映其意义,即能够“见名知义”,从而提高程序的可读性 Java语言对标识符的长度未加限制,实际命名时不宜过长 在命名时,最好遵循Java推荐的命名规范。如符号常量全部采用大写字母,类名首字母大写,属性与方法名称首字母小写等,Java关键字,关键字也称为保留字,是Java 语言本身使用的、被赋予特定含义的一类标识符。用户只能按照系统的规定来使用它们,不允许对它们进行修改或自行定义,也不允许将它们做为标识符来使用 关键字全部为小写字母表示的完整的英文单词或简写。根据关键字的用途,可将它们划分为以下类型:数据类型、语句、修饰符、方法、类、接口和包等,Java关键字(续),Java关键字(按字母升序竖向排列),Java运算符,运算符又称操作符,它与操作数一起,构成了Java的表达式。 根据运算符连接操作符多少,Java语言将运算符分为三类: 一元运算符:只需要一个操作数的运算符. 二元运算符:需要两个操作数的运算符;绝大多数运算符为二元运算符。 三元运算符:需要三个操作数的运算符;只有条件运算符(?:)一个属于这类运算符。,Java运算符(续),根据运算符的功能,Java将其分为以下几类: 赋值运算符、算术运算符、逻辑运算符、关系运算符、位运算符及条件运算符等。 运算符具有优先级与结合性等重要属性。,Java分隔符,分隔符作为程序中的辅助成分,其作用是用来区分 Java 源程序中的基本成分(标识符、关键字等),使程序代码被组织成易于被编译器识别并理解形式。 Java的分隔符包括大括号对()、中括号对()、小括号对()、空白符(多个空格、制表符、回车符等) 等。 大括号对用于语句块界定、数组初始化等场合。语句块又称为复合语句,简称为块(block),是以大括号对为边界的语句集合;语句块的内容,常将类体、法体、循环体等具有相对独立性的代码段定义成语句块。 小括号对用于突出表达式优先级、方法参数定义等场合。 分号是Java程序最常用的分隔符,它是语句的终止符,每条语句必须以分号结束。,Java注释,注释是为源程序增加必要的解释说明的内容,注释对编译与执行不产生任响,其目的只是为了提高程序的可读性与可维护性 书写注释是编写程序的好习惯,Java注释(续),Java中有三种形式的注释: 单行注释,格式为:/注释内容; 多行注释,格式为:/*注释内容*/; 建立Java帮助信息文档的注释,格式为: /* 注释内容 */。,数据类型与类型转型,Java的数据类型主要分为基本类型(Primitive Type)与引用类型(Reference Type)种。 基本类型为Java语言系统内置的最基础的简单类型,这些简单类型都是意义完整的原子类型,不可再分割。更复杂的类型可由这些简单类型组合得到。,数据类型与类型转型(续1),基本类型包含八种简单的数据类型,这些简单类型可归纳为四类: 逻辑类,记为boolean。 字符类,记为char。 整数类,又包含字节型(byte)、短整型(short)、整型(int)与长整型(long)。 浮点类,又包含双精度(double)与浮点型 (float), 浮点型又称为单精度。,数据类型与类型转型(续2),引用类型又分为: 数组 字符串 类 接口,数据类型与类型转型(续3),主要的Java数据类型分类结构:,常量,常量(Constant):是程序运行过程中值不再发生变动的一种量。如计算圆的周长或面积时所用到的圆周率就是一种常量。 常量有两种主要的分类标准:,根据数据的表达方式,Java的常量可分为值常量与符号常量两种,常量第一种分类,逻辑型常量又称布尔型常量,其取值只能为true或false,代表一个逻辑量的两种不同状态值。其中true代表真,false代表假 整型常量表示一个不带有小数位的整数,数值可正可负。整型常量有十进制、八进制和十六进制三种数制表示方式 浮点型常量又称为实型常量,用来表示有小数部分的十进制实整 字符型常量是指用单引号()括起来的单个字符表达 字符串常量是指用双引号(“”)括起来的一个字符序列。字符串常量包含的字符个数称为它的有效长度,常量第二种分类,根据数据的表达方式,Java的常量可分为值常量与符号常量两种: 值常量就是直接以特定值表达的量 符号常量是一种标识符形式的常量,这类常量引用时以符号名称代 身,但参与运算的是它的内容,即常量的值,这类常量必须先定义后可使用 符号常量定义的格式为: final =; 例如定义圆周率的语句为:final float PI=3.1415926;,变量,变量(variable) 变量是程序运行过程中其值随时能够发生改变的一种量。变量主要有三种类 成员变量、局部变量、方法参数。变量有三个基本要素,它们是变量名、变量的数据类型及变量值。 Java 语言中,所有的变量必须先定义后使用。定义变量的格式为: =,=; 其中方括号()括起来的部分为可选项。 例如语句int a=35,b,c,d=57; 该语句声明了四个整数类型的变量,并为其中两个赋初值。,变量的基本数据类型,boolean(逻辑/布尔型): 逻辑型数据只有true和false两种取值,分别对应于开(on/yes)和关(off/no)两种状态,这类数据主要用于条件判断,参与逻辑运算 例:定义一个boolean类型的变量并初始化: boolean isMale=true; 例:对boolean型变量isOdd赋值为一个关系表达式: isBig=(age18); 当变量age的值大于18时,isBig值为true,否则为false。,变量的基本数据类型(续1),char(字符型) 使用char类型可表示单个字符。一个char代表一个16位无符号Unicode字符。Ch 类型的值必须包含在单引号 () 内。 与字符类型关系密切的是字符串类型 (String)。String类型不是基本类型,而是 个类(Class),被用来表示一个字符序列。其值为用双引号括起来的一段文字。,变量的基本数据类型(续2),整数型 根据数值范围的不同,Java的整数类型可分为四种,这四种数据都为有符号整数 字节型(byte) 短整型(short) 整型(int) 长整型(long),变量的基本数据类型(续3),浮点型 单精度浮点型(float) 双精度浮点型(double) Java基本数据类型性能总结见下表。 Java基本数据类型特征表,基本数据类型的封装,Java作为完全面向对象的编程语言,处处体现出“一切皆为对象”的理念 对于八种基本数据类型,Java分别提供了相对应的封装类(见下表); 了整数类型与字符类型外,其他封装类的类名采用对应的基本数据类 名称,但首字母为大写。 下表为 基本数据类型与对应的封装类,基本数据类型的封装(续1),基本数据类型的封装类由Java.lang包所提供。这些封装类包含常量、方法、转换方法等,转换方法能够对不同类型的数据变量进行类型变换 Character封装类主要用于字符数据的处理;Byte、Short、Integer、Long、Float 、 Double这六种封装类与数值处理相关,它们都继承自Number抽象基类,它们一称为数值封装类,基本数据类型的封装(续2),Character封装类 Character封装类包含一个char类型的属性及若干个方法,这些方法多数为 方法,方法的类型包括转换方法(进行字符大小写的转换)、断定方法(即用来 定属性值是字母还是数字类型的方法)等。 数值封装类 Byte、Short、Integer、Long、Float、Double这六种数值封装类有许多类似的 性与方法。可以按统一的方式来使用它们,基本数据类型的封装(续3),数值封装类的解析方法表,数据类型转型的原则,Java是强类型语言,因此,在进行赋值操作时要对数据类型进行检查。Java规定只有数值型的基本类型数据之间才可以进行类型转换;当表达式中涉及不同型的数值数据时,需要进行类型的转换 数据类型转换分为动类型转换和强制类型转换两种类型: 自动类型转换:又称为隐式类型转换,是指参与运算的数据类型不同时,Java自动将精度较低的数据类型转换为精度较高的数据类型,即将占位数较少的类型转换为占位数较多的类型,数据类型转型的原则(续1),此图为Java基本数据类型自动转换示意图。其中水平轴表明了某种类型可以转换到的其他类型,垂直轴为数据类型精度的变化,垂直箭头所指为数据类型精度升高的方向。,数据类型转型的原则(续2),例如: char ch=M; int a=2,b; float x=38.23F; double z,y=282.382D; b=(ch+6); /先将ch自动转换为int类型,再求取int变量b的值 z=a*(x+y); /先将a、x与y自动转换为double类型,再求取z的值,数据类型转型的原则(续3),强制类型转换:又称为显式类型转换,是指将占位数多的较高精度类型转换到占位数少的较低精度类型时,需要由用户明确指定转换的目标类型的一种类型转换方式 。 数据类型转型的原则总结如下: 字符、整数与浮点数可以混合运算,运算过程中,不同类型的数据按照数据精度由低到高的顺序进行转换,最后统一转换成表达式中精度最高的类型后计算出结果值。 精度低的数据可自动转换到精度高的数据上去。 精度高的数据转换到精度低的数据时,需要使用强制类型转换。 同精度的数据short与char相互赋值需要使用强制类型转换。,运算符与表达式,运算符又称操作符(Operator),是指对数据实施运算控制的符号。 表达式(Expression)是指由运算符与操作数连接而成的、符合计算机语言语法规则并具有特定结果值的符号序列。,算术运算符与算术表达式,算术运算符是指对数值型操作数进行算术运算的一类运算符。 由算术运算符构成的表达式称为算术表达式。,算术运算符功能描述表,算术运算符,除法运算符/对于整数操作时,只保留整数商作为结果,所有的余数都要舍去。 Java的求模运算符%不同于C+语言,它不仅仅只对整数类型操作,还可以对浮点类型操作。求模运算的结果是一个带有符号的数值,其绝对值小于除数的绝对值,其符号与被除数一致。,算术运算符(续1),自增运算符+与自减运算符只能适用于变量,不能适用于表达式。 自增、自减运算符均有前缀与后缀两种用法。前缀的运算规则可表示为:先自增/减1再引用;后缀的运算规则可表示为:先引用再自增/减1。,算术运算符(续2),如以下代码: int a=3,b=2,c,d; c=(+a)*3; d=(b+)*3; 执行的结果为:a=4,b=3,c=12,d=6。+a是先自增(值变为4)再引用(值为变化后的4),所以c=(+a)*3等价于a=3+1=4且b=4*3=12;b+为先引用(值为变化前的2)再自增(值变为3),所以d=(b+)*3等价于d=2*3=6且b=2+1=3。,关系运算符与关系表达式,关系运算符与关系表达式 关系运算符是指对操作数进行大小、相等与否等进行比较运算的一类运算符,运算结果为逻辑值(true或false)。由关系运算符构成的表达式称为关系表达式,关系运算符功能描述表,关系表达式,关系运算符都为二元运算符。 相等关系运算符(=)用来判断两个操作数是否相等,它与赋值运算符(=)意义与应用场合皆无可比性。 相等(=)与不等(!=)关系运算符既可用于基本类型操作数,也可用于引用类型操作数(如类的对象)。,逻辑运算符与逻辑表达式,逻辑运算符是指对逻辑型的操作数进行逻辑运算的一类运算符,运算结果为逻辑值(true或false),逻辑运算符功能描述表,四种逻辑运算符的真值表,逻辑运算与逻辑表达,逻辑非运算符为一元运算符,其他三种为二元运算符。 逻辑与(&)、逻辑或(|)运算符采用“短路运算方式”,即如果通过第一个操作数的值就能确定整个逻辑表达式的值,则不再计算第二个操作数的值。这种方式的好处是提高判断的效率。,逻辑运算与逻辑表达(续1),具体而言,短路运算方式的规则为: op1&op2表达式中,如果计算出op1的值为false,则根据逻辑与的真值表,表达式的值必定为false,与第二个操作数的值无关,从而op2的值不需再做计算。 op1|op2表达式中,如果计算出op1的值为true,则根据逻辑或的真值表,表达式的值必定为true,与第二个操作数的值无关,从而op2的值不需再做计算。,逻辑运算与逻辑表达 (续2),逻辑异或(Exclusive OR),缩写为XOR,为二元运算符,根据其真值表,可将它的运算规则总结为一句话:相同为假,不同为真。,位运算符,位运算符是指对二进制位进行操作的一类运算符。由位运算符构成的表达式称为位表达式。 下表列出了所有位运算符的功能描述。,位运算符与位表达式,位反()运算符为一元运算符,其余的皆为二元运算符。 右移()运算符对移出位补0或1完全依赖于左操作数的符号;无符号右移()运算符对移出位始终补0。,赋值运算符,赋值运算符是用来计算某一表达式,并将计算结果赋予指定变量的一类运算符。 赋值运算符分为基本赋值运算符与复合赋值运算符两种。 基本赋值运算符写作=,其使用格式为: = 功能为:将基本赋值运算符右边的表达式计算求值后赋值给运算符左边的变量。 例如:double area=3.14159*r*r;,复合赋值运算符,复合赋值运算符是指在=前面加上一个其他的运算符所构成的组合运算符。这类运算符兼有计算与赋值的双重功能 使用格式为: = 其中Op为一个二元运算符,上述表达式等价于: =,赋值运算符表,下表列出了所有的复合赋值运算符,条件运算符与条件表达式,条件运算符是Java中唯一的三元运算符。它构成的式子称为条件表达式,其格式为: ?: 表达式1与表达式2类型必须相同。 条件运算符的执行逻辑为:计算逻辑表达式的值,如果值为true,则执行表达式1,并将表达式1的计算结果作为整个条件表达式的值;否则计算表达式2并将计算结果作为整个条件表达式的值。,条件运算符与条件表达式(续),条件运算符允许嵌套使用,即表达式1或表达式2又可以为条件表达式。条件运算符的结合方向为从右至左,可用括号来改变运算的次序 常将条件表达式作为赋值的对象,来替代简单的ifelse语句,表达式计算的原则,运算符优先级是指组成一个表达式的各种运算符在执行计算操作时的先后顺序。 Java表达式计算的原则是: 先计算优先级高的运算符,再计算优先级低的运算符。 相同优先级的运算符的计算次序由其结合性决定。 括号可以改变运算符的计算次序。,运算符的优先级表,运算符的优先级,Java运算符的优先级分14个级别,分别用1至14这十四个整数数字来表示。级别数字越小,优先级越高,级别越低,对应的数字越大。优先级最高的运算符为域、数组、括号这三个运算符,最低的为位运算符。,运算符的优先级(续),表中同一行的运算符具有相同的优先级,相同优先级的运算符在计算时按照其结合性进行运算。Java运算符的结合性分为左结合与右结合两种。 左结合运算符按照从左到右的顺序进行运算, 右结合运算符按照从右到左的顺序进行运算,,程序的四种控制结构,顺序结构,跳转结构,循环结构,分支结构,顺序结构,语句块(Block)又称为复合语句,是由一对大括号()限定起始边界的一个语句集合;语句块可以多层嵌套 例如类的定义就是一个语句块。 public class BirthDate int day; int month; int year; ,语句与语句块是构成Java程序的基本组成部分 语句(Statement)是以分号(;)作为结束符的一条完整命令。一个表达式加上分号就是一条语句;一行上只写上单纯的一个分号,也是语句,称为空语句,顺序结构(续),程序运行的过程就是执行一条条语句的过程。程序执行的逻辑次序称为程序的流程。 在不进行任何流程控制的情况下,程序执行的次序就是语句的排序顺序,这种程序结构称为顺序结构。顺序结构的程序是最简单的程序,也是组成其他复杂结构程序的基础。 Java提供了以下几类流程控制语句: 分支语句 循环语句 跳转语句 异常处理语句,二路分支结构,Java的分支语句分为二路分支与多路分支两种。 二路分支if-else语句提供了较为简单的双路流程控制的机制。if-else语句的用法可分为三种形式: 单一分支结构,即省略else的if语句。其使用格式为: if (条件表达式) 语句或语句块 双路分支结构,即完整的if-else语句。 if (条件表达式) 语句或语句块1 else 语句或语句块2 ,分支结构执行逻辑,if-else语句的执行逻辑为:如果条件表达式的值为真,则先执行语句或语句块1,然后跳出if-else结构,继续执行后面的代码;否则执行语句或语句块2,然后跳出if-else结构,继续执行后面的代码,嵌套分支结构,嵌套的if-else语句,用来解决多种条件构成的复杂操作。其一般格式为: if (条件表达式1) 语句或语句块1 else if (条件表达式2) 语句或语句块2 else else if (条件表达式n) 语句或语句块n else 语句或语句块n+1 ,循环结构,循环语句的作用是在一定条件下,反复执行一段程序代码,被反复执行的语句或语句块称为循环体。 使循环体得以执行的特定条件称为循环条件。 循环条件中最重要的变量称为循环控制变量,简称为循环变量,它是用来控制循环执行的次数,其值一般要在循环体中不断地被修改。 Java语言支持三种循环语句:,while循环语句,dowhile循环语句,for循环语句,while循环结构,while循环语句,也称为当型循环,是一种在执行循环体之前先测试循环条件的循环结构。 while循环语句的格式为: while (循环条件表达式) 语句或语句块 /循环体 ,dowhile循环结构,dowhile循环语句语句,也称为直到型循环,是一种在执行循环体后才去测试循环条件的循环结构。 dowhile循环语句的格式为: do 语句或语句块 /循环体 while (循环条件表达式); 先执行循环体,然后计算循环条件表达式,若表达式值为真,则重复执行循环体,直至循环条件表达式为假时,才终止循环结构,for循环结构,for循环语句作为最常用与最灵活的一种循环结构,一般用于循环次数事先可确定的情况。for循环语句的格式为: for(循环变量初始化表达式;循环条件表达式; 改变循环变量表达式) 语句或语句块 /循环体 ,循环结构工作过程,for循环的工作过程见下图,三种循环语句的比较,while循环语句和dowhile循环语句用在循环次数事先不可确定的情况,for循环语句则主要用于确切地知道所需执行次数的循环。 for和while循环是在执行循环体之前测试循环条件,而dowhile循环是在执行循环体之后测试循环条件,因而for和while循环可能连一次循环体都未执行就结束了自身, 而dowhile循环将至少执行一次循环体。 解决同样的问题,三类循环结构实现的程序中,for循环结构最清晰,代码最简洁,语句行数最少,执行效率最高。因而它是最常用的循环语句。,循环结构嵌套,while (条件1) while (条件2) while (条件3) ,do while (条件2) for (;) wh

温馨提示

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

评论

0/150

提交评论