《java-2面向对象程序设计基础》java语法基础

上传人:101****457 文档编号:95446794 上传时间:2019-08-18 格式:PPT 页数:62 大小:464.50KB
返回 下载 相关 举报
《java-2面向对象程序设计基础》java语法基础_第1页
第1页 / 共62页
《java-2面向对象程序设计基础》java语法基础_第2页
第2页 / 共62页
《java-2面向对象程序设计基础》java语法基础_第3页
第3页 / 共62页
《java-2面向对象程序设计基础》java语法基础_第4页
第4页 / 共62页
《java-2面向对象程序设计基础》java语法基础_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《《java-2面向对象程序设计基础》java语法基础》由会员分享,可在线阅读,更多相关《《java-2面向对象程序设计基础》java语法基础(62页珍藏版)》请在金锄头文库上搜索。

1、第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.2 Java关键字 3.1.3 基本Java数据类型,3.1 标识符、关键字、数据类型,在前两章中已经

2、介绍了几个Java程序,本节将介绍正式的Java程序构成的基本要素。,3.1.1 标识符,在Java语言中,标识符是变量、类或方法的名称,例如: int idCounter;/idCounter 就是一个整型变量的标识符 一个标识符可以由大写或小写的字母、数字、下划线(_)、美元符号($)按任意顺序组合而成,但不可以以数字开头。这是因为如果允许以数字开头就会和数字常量发生混淆。另外,标识符是大小写敏感的,例如idCounter和IdCounter不是同一个标识符。,3.1.2 Java关键字,关键字是对Java编译器有特殊含义的字符串,是编译器和程序员的一个约定,程序员利用关键字来告诉编译器其

3、声明的变量类型、类、方法特性等信息。目前的Java语言共定义了如表3-1所示48个关键字,具体每个关键字的意义和用法将在本书之中逐步介绍。,3.1.2 Java关键字,表3-1 Java关键字,3.1.3 基本Java数据类型,Java定义了8个简单(或基本)的数据类型:字节型(byte),短整型(short),整型(int),长整型(long),字符型(char),浮点型(float),双精度型(double),布尔型(boolean),这些类型可分为4组。 整数:该组包括字节型(byte),短整型(short),整型(int),长整型(long),它们是有符号整数。 浮点型数:该组包括单精

4、度浮点型(float)和双精度浮点型(double),它们代表有小数精度要求的数字。 字符:该组包括字符型(char),它代表字符集的符号,例如字母和数字。 布尔型:该组包括布尔型(boolean),它是一种特殊的类型,表示真/假值。,3.1.3 基本Java数据类型,(1) 整数byte,short,int,long Java定义了4个整数类型:字节型(byte)、短整型(short)、整型(int)、长整型(long)。这些都是有符号的值,数值为正数或是负数。Java 不支持只能是正的无符号的整数。许多其他计算机语言,包括C/C+,支持有符号或无符号的整数。然而,无符号整数是不必要的。具体

5、地说,无符号概念主要被用来指定高位状态,它定义了当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

6、位,但Java的情况不同。Java使用Unicode码代表字符。Unicode定义的国际化的字符集能表示迄今为止人类语言的所有字符集。它是几十个字符集的统一,因此它要求16位。这样,Java中的char类型是16位的,其范围是065536。人们熟知的标准字符集ASCII 码的范围仍然是0127,扩展的位字符集ISO-Latin-1的范围是0255。既然Java被设计为允许其开发的Applet(小应用程序)在世界范围内使用,因此使用Unicode码代表字符是说得通的。当然,Unicode的使用对于英语、德语、西班牙语或法语的语言是有点低效,因为它们的字符能容易地被包含在8位以内。但是为了全球的可

7、移植性,这一点代价是必须的。,3.1.3 基本Java数据类型,(4) 布尔型boolean 在Java中定义了一种基本数据类型boolean来表示逻辑值,它只有两个文字值即true和false,以下是一个有关boolean类型变量的声明和初始化: boolean isClosed = false; /定义一个boolean型变量isClosed并把其初始化成false 需要特别指出的是在整数类型和boolean类型之间无转换计算。有些语言(特别值得强调的是C和C+)允许将数字值转换成逻辑值,这在Java编程语言中是不允许的;boolean类型只允许使用boolean值,即只允许使用true和

8、false。,3.2 变量、声明和赋值,3.2.1 变量的声明 3.2.2 变量的作用域,3.2 变量、声明和赋值,变量是Java程序中的一个基本存储单元,变量由一个标识符、类型和一个可选初始值组合定义而成。此外,所有变量都有一个作用域,来定义变量的可见性和生存期。,3.2.1 变量的声明,在Java中,所有的变量必须先声明后使用。声明的方法是: Datatype identifier =value ,identifier =value ; 其中Datatype是基本数据类型之一,或者是类、接口的名字(将在以后章节介绍)。标识符是变量的名字,可以通过“=”的方式指定一个值来初始化变量,声明多个

9、相同数据类型的变量时可以用“,”号隔开。,3.2.2 变量的作用域,本节介绍变量在Java中的作用域,可以通俗地说成变量的作用范围。 在方法内定义的变量被称为局部(local)变量,有时也被称为自动(automatic)、临时(temporary)或栈(stack)变量。 (1) 在介绍局部变量的作用域前先来介绍什么是语句、程序块。语句就是一行以分号“;”结束的代码。 (2) Java允许局部变量在任意程序块的任意位置中被声明,而在一个作用域中定义的 局部变量,对于该作用域外的程序是不可见的,即不可以被访问,这个作用域规则为封装提供了基础。,3.2.2 变量的作用域,(3) 变量可以在程序块内

10、的任何地方被声明,但是只有在它们被声明以后才是合法有效的。 (4) 局部变量是在一个作用域被创建,当程序执行离开该作用域后被撤销,它的生存期就是程序执行其所在作用域的时间范围。 (5) 尽管程序块能被嵌套,但不能将内部作用域声明的变量与其外部作用域声明的变量重名。,3.3 变量的初始化,在前面的讲解中,当声明一个Java基本数据类型时,会在内存中分配对应的空间,而对一个非基本数据类型,如前面提到的String,或自己定义的类型时,声明这些变量时并没有分配与之类型大小对应的空间,而只是引用。 在Java程序中,任何变量都必须经初始化后才能被使用。当一个对象被创建时,实例变量在分配存储器的同时被下

11、列值初始化,这一点与局部变量不同。,3.4 类型转换与强制类型转换,3.4.1 Java的自动转换 3.4.2 不兼容类型的强制转换 3.4.3 表达式中类型的自动提升,3.4 类型转换与强制类型转换,程序中经常把一种类型的值赋给另外类型的一个变量。如果这两种类型是兼容的,那么Java将自动进行转换。例如,把int类型的值赋给long类型的变量,总是可行的。然而,不是所有的类型都是兼容的,因此,不是所有的类型转换都是可以隐式实现的。例如,没有将double类型转换为byte类型的定义。在Java中不兼容的类型之间的转换仍然是可能的,必须使用强制类型转换来完成两个不兼容的类型之间的显式变换。接下

12、来介绍自动类型转换和强制类型转换。,3.4.1 Java的自动转换,如果下列两个条件都能满足,那么将一种类型的数据赋给另外一种类型变量时,将执行自动类型转换(automatic type conversion): 这两种类型是兼容的。 目的类型数的范围比来源类型的大。 当以上两个条件都满足时,发生拓宽转换(widening conversion)。,3.4.2 不兼容类型的强制转换,为了完成两种不兼容类型之间的转换,必须进行强制类型转换。所谓强制类型转换只不过是一种显式的类型变换。它的通用格式如下: (target-type)value 其中,目标类型(target-type)指定了要将指定值

13、转换成的类型。 当把浮点值赋给整数类型时将发生一种不同的类型转换:截断(truncation)。整数没有小数部分,当把浮点值赋给整数类型时,其小数部分会被舍去。,3.4.3 表达式中类型的自动提升,除了赋值,还有另外一种类型变换:在表达式中,对中间值的精确要求有时超过任何一个操作数的范围。 除了将byte类型和short类型提升到int类型以外,Java定义了若干适用于表达式的类型提升规则(type promotion rules)。 所有的byte类型和short类型的值被提升到int类型。 如果一个操作数是long类型,整个表达式将被提升到long类型;如果一个操作数是float类型,整个

14、表达式将被提升到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所有的运算符,比

15、较运算符instanceof将在以后的章节讨论。Java语言中的运算符在风格和功能上都与C和C+极为相似。下面将分别介绍。,3.5.1 运算符,1. 算术运算符 算术运算符用来进行整型或浮点数据的算术运算,算术运算符用在数学表达式中,其用法和功能与代数学(或其他计算机语言)中一样,Java定义的算术运算符见表3-5。,3.5.1 运算符,表3-5 Java算术运算符,3.5.1 运算符,2. 关系运算符 关系运算符是比较两个表达式大小关系的运算,它的结果是真(true)或假(false),关系运算符有6种,如表3-6所示。,3.5.1 运算符,表3-6 关系运算符,3.5.1 运算符,3. 逻

16、辑运算符 逻辑运算符(见表3-7)是对布尔型(boolean)变量进行运算,其结果也是布尔型(boolean)。,3.5.1 运算符,表3-7 逻辑运算符,3.5.1 运算符,4. 位运算 位运算是以二进制位(bit)进行计算,操作数和结果都是整数类型,包括long、int、short、char、byte。位逻辑运算符有“与(AND)”、“或(OR)”、“异或(XOR)”、“非(NOT)”,分别用“&”、“|”、“”、“”表示。表3-8列出了Java中位运算符。,3.5.1 运算符,表3-8 位运算符(包括移位运算),3.5.1 运算符,5. 三元运算符(?:) 三元运算符(?:)的用法如下: x?y:z 其中,x,y,z都是表达式,运算规则是:x为真时,表示式取y的值,否则取z的值。 【例3.25】三元运算举例,程序如下。 int x=1,y=2,z=3; int i = x0?y:z; 此处由于x0成立,所以i取y的值为2。,3.5.1 运算符,6. 用加号(+)进行串连接 【例3.27】运算符+能

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号