




已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章Java语法基础,(时间:3次课,6学时),第3章Java语法基础,教学提示:任何复杂的软件系统都是采用某种语言的基本特性构建起来的。本章主要介绍:Java语言的基础知识,包括Java语言的基本元素、Java语言的流程控制。,第3章Java语法基础,3.1标识符、关键字、数据类型3.2变量、声明和赋值3.3变量的初始化3.4类型转换与强制类型转换3.5表达式和流程控制3.6数组3.7课后练习,3.1标识符、关键字、数据类型,3.1.1标识符3.1.2Java关键字3.1.3基本Java数据类型,3.1标识符、关键字、数据类型,在前两章中已经介绍了几个Java程序,本节将介绍正式的Java程序构成的基本要素。,3.1.1标识符,在Java语言中,标识符是变量、类或方法的名称,例如:intidCounter;/idCounter就是一个整型变量的标识符一个标识符可以由大写或小写的字母、数字、下划线(_)、美元符号($)按任意顺序组合而成,但不可以以数字开头。这是因为如果允许以数字开头就会和数字常量发生混淆。另外,标识符是大小写敏感的,例如idCounter和IdCounter不是同一个标识符。,3.1.2Java关键字,关键字是对Java编译器有特殊含义的字符串,是编译器和程序员的一个约定,程序员利用关键字来告诉编译器其声明的变量类型、类、方法特性等信息。目前的Java语言共定义了如表3-1所示48个关键字,具体每个关键字的意义和用法将在本书之中逐步介绍。,3.1.2Java关键字,表3-1Java关键字,3.1.3基本Java数据类型,Java定义了8个简单(或基本)的数据类型:字节型(byte),短整型(short),整型(int),长整型(long),字符型(char),浮点型(float),双精度型(double),布尔型(boolean),这些类型可分为4组。整数:该组包括字节型(byte),短整型(short),整型(int),长整型(long),它们是有符号整数。浮点型数:该组包括单精度浮点型(float)和双精度浮点型(double),它们代表有小数精度要求的数字。字符:该组包括字符型(char),它代表字符集的符号,例如字母和数字。布尔型:该组包括布尔型(boolean),它是一种特殊的类型,表示真/假值。,3.1.3基本Java数据类型,(1)整数byte,short,int,longJava定义了4个整数类型:字节型(byte)、短整型(short)、整型(int)、长整型(long)。这些都是有符号的值,数值为正数或是负数。Java不支持只能是正的无符号的整数。许多其他计算机语言,包括C/C+,支持有符号或无符号的整数。然而,无符号整数是不必要的。具体地说,无符号概念主要被用来指定高位状态,它定义了当int表示一个数字时的符号。,3.1.3基本Java数据类型,(2)浮点型数float,double浮点数字也就是我们所熟知的实数。在Java中表示这些实数的方法是采用两类浮点数据类型(见表3-3),一类是单精度浮点类型(float),一类是双精度浮点类型(double),Java实现浮点数采用的是标准浮点型(IEEE-754)和运算符集,并且是独立于平台的。,3.1.3基本Java数据类型,(3)字符char在Java中,存储字符的数据类型是char。Java的char与C或C+中的char不同。在C/C+中,char的宽度是8位,但Java的情况不同。Java使用Unicode码代表字符。Unicode定义的国际化的字符集能表示迄今为止人类语言的所有字符集。它是几十个字符集的统一,因此它要求16位。这样,Java中的char类型是16位的,其范围是065536。人们熟知的标准字符集ASCII码的范围仍然是0127,扩展的位字符集ISO-Latin-1的范围是0255。既然Java被设计为允许其开发的Applet(小应用程序)在世界范围内使用,因此使用Unicode码代表字符是说得通的。当然,Unicode的使用对于英语、德语、西班牙语或法语的语言是有点低效,因为它们的字符能容易地被包含在8位以内。但是为了全球的可移植性,这一点代价是必须的。,3.1.3基本Java数据类型,(4)布尔型boolean在Java中定义了一种基本数据类型boolean来表示逻辑值,它只有两个文字值即true和false,以下是一个有关boolean类型变量的声明和初始化:booleanisClosed=false;/定义一个boolean型变量isClosed并把其初始化成false需要特别指出的是在整数类型和boolean类型之间无转换计算。有些语言(特别值得强调的是C和C+)允许将数字值转换成逻辑值,这在Java编程语言中是不允许的;boolean类型只允许使用boolean值,即只允许使用true和false。,3.2变量、声明和赋值,3.2.1变量的声明3.2.2变量的作用域,3.2变量、声明和赋值,变量是Java程序中的一个基本存储单元,变量由一个标识符、类型和一个可选初始值组合定义而成。此外,所有变量都有一个作用域,来定义变量的可见性和生存期。,3.2.1变量的声明,在Java中,所有的变量必须先声明后使用。声明的方法是:Datatypeidentifier=value,identifier=value;其中Datatype是基本数据类型之一,或者是类、接口的名字(将在以后章节介绍)。标识符是变量的名字,可以通过“=”的方式指定一个值来初始化变量,声明多个相同数据类型的变量时可以用“,”号隔开。,3.2.2变量的作用域,本节介绍变量在Java中的作用域,可以通俗地说成变量的作用范围。在方法内定义的变量被称为局部(local)变量,有时也被称为自动(automatic)、临时(temporary)或栈(stack)变量。(1)在介绍局部变量的作用域前先来介绍什么是语句、程序块。语句就是一行以分号“;”结束的代码。(2)Java允许局部变量在任意程序块的任意位置中被声明,而在一个作用域中定义的局部变量,对于该作用域外的程序是不可见的,即不可以被访问,这个作用域规则为封装提供了基础。,3.2.2变量的作用域,(3)变量可以在程序块内的任何地方被声明,但是只有在它们被声明以后才是合法有效的。(4)局部变量是在一个作用域被创建,当程序执行离开该作用域后被撤销,它的生存期就是程序执行其所在作用域的时间范围。(5)尽管程序块能被嵌套,但不能将内部作用域声明的变量与其外部作用域声明的变量重名。,3.3变量的初始化,在前面的讲解中,当声明一个Java基本数据类型时,会在内存中分配对应的空间,而对一个非基本数据类型,如前面提到的String,或自己定义的类型时,声明这些变量时并没有分配与之类型大小对应的空间,而只是引用。在Java程序中,任何变量都必须经初始化后才能被使用。当一个对象被创建时,实例变量在分配存储器的同时被下列值初始化,这一点与局部变量不同。,3.4类型转换与强制类型转换,3.4.1Java的自动转换3.4.2不兼容类型的强制转换3.4.3表达式中类型的自动提升,3.4类型转换与强制类型转换,程序中经常把一种类型的值赋给另外类型的一个变量。如果这两种类型是兼容的,那么Java将自动进行转换。例如,把int类型的值赋给long类型的变量,总是可行的。然而,不是所有的类型都是兼容的,因此,不是所有的类型转换都是可以隐式实现的。例如,没有将double类型转换为byte类型的定义。在Java中不兼容的类型之间的转换仍然是可能的,必须使用强制类型转换来完成两个不兼容的类型之间的显式变换。接下来介绍自动类型转换和强制类型转换。,3.4.1Java的自动转换,如果下列两个条件都能满足,那么将一种类型的数据赋给另外一种类型变量时,将执行自动类型转换(automatictypeconversion):这两种类型是兼容的。目的类型数的范围比来源类型的大。当以上两个条件都满足时,发生拓宽转换(wideningconversion)。,3.4.2不兼容类型的强制转换,为了完成两种不兼容类型之间的转换,必须进行强制类型转换。所谓强制类型转换只不过是一种显式的类型变换。它的通用格式如下:(target-type)value其中,目标类型(target-type)指定了要将指定值转换成的类型。当把浮点值赋给整数类型时将发生一种不同的类型转换:截断(truncation)。整数没有小数部分,当把浮点值赋给整数类型时,其小数部分会被舍去。,3.4.3表达式中类型的自动提升,除了赋值,还有另外一种类型变换:在表达式中,对中间值的精确要求有时超过任何一个操作数的范围。除了将byte类型和short类型提升到int类型以外,Java定义了若干适用于表达式的类型提升规则(typepromotionrules)。所有的byte类型和short类型的值被提升到int类型。如果一个操作数是long类型,整个表达式将被提升到long类型;如果一个操作数是float类型,整个表达式将被提升到float类型;如果有一个操作数是double类型,计算结果就是double类型。,3.5表达式和流程控制,3.5.1运算符3.5.2运算符优先级3.5.3流程控制3.5.4特殊循环控制,3.5表达式和流程控制,在学习完数据类型后,下面就将介绍如何利用这些数据类型进行各种逻辑操作,就是如何控制程序的执行流程,使得程序完成编程需要的行为,首先介绍Java中的运算符。,3.5.1运算符,Java提供了丰富的运算符环境。Java有4大类运算符:算术运算、位运算、关系运算和逻辑运算。Java还定义了一些附加的运算符用于处理特殊情况。本节将描述Java所有的运算符,比较运算符instanceof将在以后的章节讨论。Java语言中的运算符在风格和功能上都与C和C+极为相似。下面将分别介绍。,3.5.1运算符,1.算术运算符算术运算符用来进行整型或浮点数据的算术运算,算术运算符用在数学表达式中,其用法和功能与代数学(或其他计算机语言)中一样,Java定义的算术运算符见表3-5。,3.5.1运算符,表3-5Java算术运算符,3.5.1运算符,2.关系运算符关系运算符是比较两个表达式大小关系的运算,它的结果是真(true)或假(false),关系运算符有6种,如表3-6所示。,3.5.1运算符,表3-6关系运算符,3.5.1运算符,3.逻辑运算符逻辑运算符(见表3-7)是对布尔型(boolean)变量进行运算,其结果也是布尔型(boolean)。,3.5.1运算符,表3-7逻辑运算符,3.5.1运算符,4.位运算位运算是以二进制位(bit)进行计算,操作数和结果都是整数类型,包括long、int、short、char、byte。位逻辑运算符有“与(AND)”、“或(OR)”、“异或(XOR)”、“非(NOT)”,分别用“inti=x=3B.s3=xC.inti=s.length();D.Stringt=For+s;(2)下面哪些是Java保留字?()A.runB.defaultC.implementD.import3.判断题(1)()的运算优先级最高。()(2)switch语句不能像if语句那样嵌套。(),3.7课后练习,4.简答题(1)判断下列标识符,哪些是合法的,哪些是非法的。SessionIdCounter_myCupm_staticthis3upt$startTimesip_msgu+tu(dt_end)superStar(2)Java中有哪几种流程控制语句?5.操作题(1)创建一个类和相应的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年银行岗位题库附答案详解
- 2025年铁路维修安全试题及答案
- 2025年血液净化中心专科考试题目(附答案)
- 2025年辽宁省公务员考试公共基础知识试题库(含答案)
- 2025年地质灾害防治知识竞赛试题及答案
- 大同市中医院颅内外动脉闭塞再通技术考核
- 2025年技能理论考试护理敏感指标试题完整版及答案
- 邢台市人民医院宫腔镜子宫内膜息肉切除术考核
- 黑河市人民医院DSA设备操作资格认证
- 吉林省长春市朝阳区2023-2024学年高三上学期语文9月月考试卷(含答案)
- 《走进汽车》 课件 项目1 走进汽车故事
- 《BOM表管理简介》课件
- 专业心理咨询服务协议
- 精神科病人冲动应急演练
- 快递公司安全检查与事故隐患排查制度模版(2篇)
- 基督山伯爵课件
- 时代与变革-为人生而艺术 课件-2023-2024学年高一上学期美术人美版(2019)必修美术鉴赏
- 浙江省工贸企业电气隐患排查技术服务规范
- 医美培训课件
- 空压机操作安全培训
- 手术体位侧卧摆放
评论
0/150
提交评论