高等教育自学考试Java语言程序设计一第二章数据和表达式课件.docx
- 文档编号:13864532
- 上传时间:2023-06-18
- 格式:DOCX
- 页数:18
- 大小:186.51KB
高等教育自学考试Java语言程序设计一第二章数据和表达式课件.docx
《高等教育自学考试Java语言程序设计一第二章数据和表达式课件.docx》由会员分享,可在线阅读,更多相关《高等教育自学考试Java语言程序设计一第二章数据和表达式课件.docx(18页珍藏版)》请在冰点文库上搜索。
高等教育自学考试Java语言程序设计一第二章数据和表达式课件
第二章 数据和表达式
目录
第一节基本语法元素
第二节基本数据类型
第三节表达式
01 基本语法元素
1.空白
在java程序中,换行符及回车符都可以表示一行的结束,它们可被看作是空白,另外空格键,水平定位键(Tab)亦是空白,编译器会忽略多余的空白。
2.注释
(1)单行注释:
//一行内的注释
(2)多行注释:
/*一行或多行注释*/
(3)文档注释:
/**文档注释*/
3.语句、分号和块
语句是Java程序的最小执行单位,程序的各语句间以分号“;”分隔。
一个语句可以写在连续的若干行内。
大括号“{”和“}”包含的一系列语句称为块语句,简称块。
语句块可以嵌套,即语句块中可以含有子语句块;
关键字
Java语言定义了许多关键字,关键字也称为保留字,他们都有各自的特殊意义和用途。
abstract
boolean
break
byte
case
cast
catch
char
class
const
continue
default
do
double
else
extends
false
final
finally
float
for
future
generic
goto
if
implements
import
inner
instanceof
int
interface
long
native
new
null
operator
outer
package
private
protected
public
rest
return
short
static
strictfp
super
switch
synchronized
this
throw
throws
transient
true
try
var
void
volatile
while
*标红的为预留关键字,尚未使用
标识符
1.标识符是由字母、数字、下划线(_)或美元符($)组成的字符串,其中数字不能作为标识符的开头。
2.标识符区分大小写,长度没有限制。
3.标识符中不能含有其他符号,例如+、=、*、及%等,当然也不允许插入空白。
4.标识符可用作变量名、方法名、接口名和类名。
5.Java源代码采用的是Unicode码,用16位无符号二进制数表示一个字符,Unicode字符集中的字符数可达65535个,汉字也是字符,所以也可以出现在标识符中,例如“这是一个标识符”也是一个正确的标识符。
正确的标识符
identifier、abc23、_sys_varl、$abc123
错误的标识符
2Sun、class、#myname
Java编程风格
编写程序时应该注重自己的编程风格,增加必要的注释和空格,采用缩进格式。
定义的各种标识符也要遵从惯例注意大小写。
程序中尽量不使用没有含义的标识符。
最好能望名知义,例如,变量用于计数,可将它命名为counter;用变量保存税率,可将它命名为taxRate。
·类名或接口名:
多为名词,含有大小写,每个单词的首字母大写如HelloWorld、Customer、SortClass等。
·方法名:
多是动词,含有大小写,首字母小写,其余各单词的首字母大写。
尽量不要在方法名中使用下划线。
如getName、setAddress、searchKey等。
·常量名:
简单类型常量的名字应该全部为大写字母,单词与单词之间用下划线分隔,对象常量可使用混合大小写。
如BLUE_COLOR。
·变量名:
所有的实例变量、类变量、终极变量和静态变量等都使用混合大小写,首字符为小写,后面单词的首字母用大写。
变量名中尽量不要使用下划线。
如balance、orders、byPercent等。
*命名时应尽量避免使用单字符名字,除非是临时使用的要“扔掉”的变量(比如仅在循环体中使用的循环变量)。
02 基本数据类型
Java的数据类型共分为两大类,一类是基本数据类型,另一类是复合数据类型。
基本数据类型共有8种,分为4小类,分别是整型、浮点型、字符型和布尔型。
整型和浮点型有时也合称为数值型。
复合数据类型包括数组、类和接口。
数组是一个很特殊的概念,它是对象,而不是一个类,它们都可用作常量和变量。
数据类型
基本数据类型
整数类型
byte、short、int、long
浮点数类型
float、double
字符类型
char
布尔类型
boolean
复合数据类型
类类型
class
数组
接口类型
interface
整数类型byte、short、int、long
Java语言提供了4种整型量,对应的关键字分别是:
byte、short、int和long,下图表示了4种整数类型的字节大小和可表示的范围。
Java语言规范中定义的表示范围用2的幂次来表示,这是独立于平台的。
整数类型
整数长度
字节数
表示范围
byte
8位
1
-27~27-1(-128--127)
short
16位
2
-215-215-1(-32768-32767)
int
32位
4
-231~231_1(-2,147,483,648-2,147,483,647)
long
64位
8
-263~263-1(-9,223,372,036,854,775,808~9,223,372,036,854,775,807)
其他进制表示整型
整型量可用十进制、八进制或十六进制形式表示,以1~9开头的数为十进制数,以0开头的数为八进制数,以0x或0X开头的数为十六进制数。
Java中4种整型量都是有符号的。
整型常量是int型的。
如果想表示一个长整型常量,需要在数的后面明确写出字母“L”。
L表示它是一个long型量。
这里,使用大写L或小写l均有效。
1:
2//表示十进制数2
2:
077//表示八进制数77,等于十进制数63
3:
0xBABE//表示十六进制数BABE,等于十进制数47806
4:
2L//表示长整型十进制数2
5:
077L//表示长整型八进制数77
6:
0XBABEL//表示长整型十六进制数BABE
整型最大值和最小值
Java语言还提供了几个特殊的整型常量值,用来表示最大值和最小值
类型
最大值
最小值
int
Integer.MAX_VALUE
Integer.MIN_VALUE
long
Long.MAX_VALUE
Long.MIN_VALUE
int型
最大值2147483647最小值-2147483648
long型
最大值9223372036854775807
最小值:
-9223372036854775808
浮点类型float和double
浮点数类型有两种:
一种是单精度浮点数,用float关键字说明;另一种是双精度浮点数,用double关键字说明,它们都是有符号数。
浮点数类型
浮点数长度
字节数
表示范围
float
32位
4
1.4e-45f~3.4028235e+38f
double
64位
8
4.9e-324d~1.7976931348623157e+308d
如果数值常量中包含小数点、指数部分(字符E),或数的后面跟有字母F或字母D,则为浮点数。
浮点型常量在默认情况下是double型的,除非用字母F明确说明它是float型的。
浮点型常量中的字母F或D既可以是大写,又可以是小写。
特殊浮点数常量
Java语言中有几个特殊的浮点数常量
float类型
double类型
最大值
Float.MAX_VALUE
Double.MAX_VALUE
最小值
Float.MIN_VALUE
Double.MIN_VALUE
正无穷大
Float.POSITIVE_INFINITY
Double.POSITIVE_INFINITY
负无穷大
Float.NEGATIVE_INFINITY
Double.NEGATIVE_INFINITY
0/0
Float.NaN
Double.NaN
字符类型char
单个字符用char类型表示。
一个char表示一个Unicode字符,其值用16位无符号整数表示,范围为0-65535。
char类型的常量值必须用一对单引号(’’)括起来,分为普通字符常量和转义字符常量两种。
使用单引号括住一个字符,表示一个普通的字符常量。
但有些字符在Java语言中有特殊的含义,表示时应使用转义字符。
常用的转义字符及其含义如下图所示:
转义字符
含义
转义字符
含义
\b
退格键(Backspace)
\\
反斜杠\
\n
换行符
\'
单引号'
\r
回车符
\”
双引号”
\t
水平制表符
布尔类型boolean
逻辑值有两个状态,它们常被写作on和off、true和false、yes和no等。
在Java中,这样的一个值用boolean(布尔)类型表示,布尔类型也称作逻辑类型。
boolean类型有两个常量值:
true和false,它们全是小写,计算机内部使用8位二进制数表示。
Java是一种严格的类型语言,它不允许数值类型和布尔类型之间进行转换。
03 表达式
表达式由运算符和操作数组成,对操作数进行运算符指定的操作,并得出运算结果。
Java运算符按功能可分为:
算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和条件运算符,除此之外,还有几个特殊用途的运算符,如数组下标运算符等。
操作数可以是变量、常量或方法调用等。
操作数——常量
常量操作数很简单,只有简单数据类型和String类型才有相应的常量形式。
例如:
常量
含义
23.59
double型常量
-1247.1f
float型常量
true
boolean型常量
“ThisisaString”
String型常量
‘a’
char型常量
变量的声明及初始化
变量是存储数据的基本单元,它可以用作表达式中的操作数。
变量在使用之前要先声明。
变量声明的基本格式为
类型变量名1[=初值1][,变量名2[=初值2]]....;
其中,类型是变量所属的类型,既可以是简单数据类型,如int和float等,又可以是类类型。
有时也把类类型的变量称为引用。
方括号中的初值是可选的。
如果没有,则表明仅是声明了一个变量,否则是在声明变量的同时,给变量赋了初值,称为对变量进行了初始化。
声明变量的地方有两处,一处是在方法内,另一处是在类定义内。
方法内定义的变量称为自动变量,也称为局部变量、临时变量或栈变量。
这里所说的方法,包括程序员定义的各个方法。
类中定义的变量就是类的成员变量。
默认初始值
简单数据类型的变量在说明之后,系统自动在内存分配相应的存储空间。
说明引用后,系统只分配引用空间,程序员要调用new来创建对象实例,然后才分配相应的存储空间。
Java程序中不允许将未经初始化的变量用作操作数。
对于自动变量,如果变量声明时没有进行初始化,则在变量使用之前必须使用赋值语句进行赋值。
如果编译器发现某个变量没有初始化,编译时会出现错误。
创建一个对象引用后,需要使用new运算符为其分配存储空间。
对于其中的成员变量,程序员可以显式进行初始化,也可以由系统自动进行初始化。
类型
初始值
类型
初始值
byte
(byte)0
double
0.0
short
(short)0
char
‘\u0000’(null)
int
0
boolean
false
long
0L
所有引用类型
null
float
0.0f
初始值错误示例
因为b没有初始化,没有赋初始值,所以程序报错。
变量定义错误示例
因为name在主方法中已经定义,方法中定义的变量作用于整个方法,同时覆盖了同名的类变量也叫成员变量。
数学函数
进行科学计算时,可能会经常用到数学函数,数学函数往往得到一个数值结果,这也属于操作数。
Java语言提供了数学函数类Math,其中包含了常用的数学函数。
Math.sin(0)
正弦函数,返回0.0,这是double类型的值
Math.cos(0)
余弦函数,返回1.0
Math.round(6.6)
四舍五入取整,返回7
Math.sqrt(144)
开平方函数,返回12.0
Math.pow(5,2)
计算乘方,返回25.0
Math.max(560,289)
求最大值函数,返回560
Math.min(560,289)
求最小值函数,返回289
Math.random()
返回0.0~1.0之间双精度的一个随机数值
运算符
算术
运算符
算术运算符包括通常的加(+)、减(-)、乘(*)、除(/)、取模(%),(++),(--)加1减1运算符完成整型和浮点型数据的算术运算。
许多语言中的取模运算只能用于整型数,Java对此有所扩展,它允许对浮点数进行取模操作。
例如,3%2的结果是1,15.2%5的结果是0.2。
取模操作还可以用于负数,结果的符号与第一个操作数的符号相同,例如,5%-3的结果是2,-5%-3的结果是-2,-5%3的结果是-2。
关系
运算符
关系运算符用来比较两个值,包括大于(>)、大于等于(>=)、小于(<)、小于等于(<=)、等于(==)和不等于(!
=)6种。
关系运算符都是二元运算符,也就是每个运算符都带有两个操作数。
运算的结果是一个逻辑值。
Java允许“==”和“!
=”两种运算用于任何数据类型。
自增运算符
inta=5;
intj=a++;
intk=++a;
System.out.println(j);//j的值为5
System.out.println(k);//k的值为7
a++先赋值再++
++a先++再赋值
运算符
逻辑
运算符
逻辑运算符包括逻辑与(&&)、逻辑或(||)和逻辑非(!
)。
前两个是二元运算符,后一个是一元运算符。
Java对逻辑与和逻辑或提供“短路”操作功能。
进行运算时,先计算运算符左侧表达式的值,如果使用该值能得到整个表达式的值,则跳过运算符右侧表达式的计算,否则计算运算符右侧表达式,并得到整个表达式的值。
&&:
true&&true表达式全部为真时执行程序
||:
true||false表示有一个为真时执行程序
!
:
非
短路
*因为a>b为false,所以发生短路,跳过第二个表达式
运算符
位运算符
位运算符用来对二进制位进行操作,包括按位取反(~)、按位与(&)、按位或(|)、异或(^)、右移(>>)、左移(<<)及无符号右移(>>>)。
位运算符只能对整型和字符型数据进行操作。
&:
如果两个相应的二进制形式的对应的位数都为1,则结果为1,记为同1为1,否则为0,转换为2进制数计算
000001004
000001015
000001004
除2没余数记0有余数记1,最后除尽的一位记1
&:
如果两个数为负数,先求补码再进行运算
补码:
反码+1等补码
反码:
除符号位,按位取反
|:
有1为1,否则为0
|:
有1为1,否则为0,计算负数时,结果符号为1需要进行逆操作转为源码输出结果
比如:
-4|5
^:
相同为0,不同为1
移位运算符
移位运算符
右移(>>)、左移(<<)及无符号右移(>>>)。
左移:
右边空出的位用0填补高位左移溢出则舍弃该高位。
计算机中常用补码表示数据,注,用补码计算
000010008
0010000032整体左移后
10001000-8
11110111-8的反码
11111000-8的补码
11100000整体左移后
11011111逆运算,-1得反码
10100000按位取反最后结果-32
右移:
左边空出的位用0或者1填补。
正数用0填补,负数用1填补。
注:
不同的环境填补方式可能不同;低位右移溢出则舍弃该位。
000010008
000000102整体右移后
10001000-8
11110111-8的反码
11111000-8的补码
11111110整体右移后
11111101逆运算,-1得反码
10000010按位取反最后结果-2
无符号右移:
正数与右移规则一样,负数的无符号右移,就是相应的补码移位所得,在高位补0即可
10000000000000000000000000001000 -8
11111111111111111111111111110111 -8的反码
11111111111111111111111111111000 -8的补码
00111111111111111111111111111110 无符号移两位,不取原码,直接输出
其他运算符
Java中的运算符还包括扩展赋值运算符(+=、-=、*=、/=、%=、&=、|=、^=、>>=、<<=和>>>=)、条件运算符(?
:
)、点运算符(.)、实例运算符(instanceof)、new运算符及数组下标运算符([])等。
扩展赋值运算符是在赋值号(=)前再加上其他运算符,是对表达式的一种简写形式,。
intx=3;
x=x*3;
等价于
intx=3;
x*=3;
运算符的优先顺序结合实例在以后的程序讲
类型转换
Java是一种强类型语言,不支持变量类型间的自动任意转换,有时必须显式地进行变量类型的转换。
每个数据都与特定的类型相关,允许整型、浮点型、字符型数据进行混合运算。
运算时,不同类型的数据先转换为同一种类型,然后再进行运算。
转换的一般原则是位数少的类型转换为位数多的类型,这称作自动类型转换这样做的目的是保证转换时不丢失有用信息。
操作数之一类型
操作数之二类型
转换后的类型
byte或short
int
int
byte或short或int
long
long
byte或short或int或long
float
float
byte或short或int或long或float
double
double
char
int
int
类型转换示例
*两个操作数,级别低的会自动类型转换成级别高的,这是自动类型转换
当级别(精度)变低时,则需要强转,这是强制类型转换
选择题
以下字符串中,能作为Java程序中标识符的是( )。
A.Val B.OK#
C.2Val D.catch
『正确答案』A
『答案解析』B特殊字符不能做标识符,C数字不能开头,D关键字不能做标识符。
下列选项中,能作为Java语言注释的是( )。
A.从/*开始直到行尾 B.从//开始直到行尾
C.从//开始直到**/结束 D.从/**开始直到行尾
『正确答案』B
『答案解析』单行注释//
多行注释/*内容*/
文档注释/**内容*/
以下基本数据类型,必须进行强制类型转换的是( )。
A.int→char B.short→long
C.float→double D.byte→short
『正确答案』A
『答案解析』char可以自动转换成int,int转成char需要强制转换。
填空题
方法内定义的变量称作。
『正确答案』局部变量
『答案解析』方法内定义的是局部变量,类内定义的是成员变量。
当不同类型的数据进行运算时,表示范围较小的类型转换为表示范围较大的类型的转换称作。
『正确答案』自动类型转换
『答案解析』表示范围小的转换为表示范围大的叫自动类型转换。
当不同类型的数据进行运算时,表示范围较大的类型转换为表示范围较小的类型的转换称作。
『正确答案』强制类型转换
『答案解析』表示范围大的转换为表示范围小的叫强制类型转换。
表达式“45&20”的十进制值是。
『正确答案』4
『答案解析』
全1为1,否则为0
简答题
Java支持的数据类型有哪些?
列出Java语言中所有的基本数据类型。
『正确答案』基本数据类型byte、short、int、long、float、double、char、boolean八大类型。
简述标识符的定义规则。
『正确答案』1.标识符是由字母、数字、下划线(_)或美元符($)组成的字符串,其中数字不能作为标识符的开头。
2.标识符区分大小写,长度没有限制。
3.标识符中不能含有其他符号,例如+、=、*、及%等,当然也不允许插入空白。
『答案解析』参考教材P35。
下列表达式中,找出每个操作符的计算顺序,在操作符下按次序标上相应的数字。
『正确答案』
a+b+c-da+b/c-da+b/c*d(a+b)+c-d
①②③②①③③①②①②③
(a+b)+(c-d)%e(a+b)+c-d%e(a+b)%e%c-d
①④②③①③④②①②③④
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高等教育 自学考试 Java 语言程序设计 第二 数据 表达式 课件