第二章 Java编程基础.docx

上传人:b****7 文档编号:9802756 上传时间:2023-02-06 格式:DOCX 页数:23 大小:89.51KB
下载 相关 举报
第二章 Java编程基础.docx_第1页
第1页 / 共23页
第二章 Java编程基础.docx_第2页
第2页 / 共23页
第二章 Java编程基础.docx_第3页
第3页 / 共23页
第二章 Java编程基础.docx_第4页
第4页 / 共23页
第二章 Java编程基础.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

第二章 Java编程基础.docx

《第二章 Java编程基础.docx》由会员分享,可在线阅读,更多相关《第二章 Java编程基础.docx(23页珍藏版)》请在冰豆网上搜索。

第二章 Java编程基础.docx

第二章Java编程基础

 

教学提示:

本章把注意力集中在Java语言的基础知识,主要介绍Java语言的数据类型、基本运算方法和Java语言的表达式和运算符。

教学目标:

掌握标识符的命名规则和Java语言中主要的数据类型。

能对变量进行基本操作并能对Java语言中的几种基本运算符进行运算。

2.1数据类型概述

2.1.1数据类型的分类

Java数据类型包含基本数据类型和复合数据类型,基本数据类型分为数值型、字符型和布尔型,复合类型又分为类类型和接口类型。

如图2-1所示:

图2-1Java语言数据类型

Java语言对不同的数据类型规定了不同的组织形式和运算方法,对不同类型的数据在内存中分配不同长度的存储空间。

本章只介绍基本数据类型,其它数据类型将在后面的有关章节中介绍。

2.1.2基本数据类型概述

1.数值型数据

数值型可以分为整数类型和浮点类型。

整型数据是不带小数点的数。

浮点数就是数学中的实数,主要用它处理带小数点的数。

(1)整数类型

Java把整型数细分为字节型、短整型、整型、长整型。

它们的类型标识符、默认值、取值范围和所占字节如表2-1所示:

表2-1整型数据分类

名称

类型标识符

默认值

取值范围

长度

字节型

byte

0

-128~127

1字节

短整型

short

0

-32768~32767

2字节

整型

int

0

-231~231-1

4字节

长整型

long

0

-263~263-1

8字节

注意:

Java中所有整数类型都是有符号的,没有无符号的整数。

(2)浮点型

Java提供了两种浮点类型:

单精度和双精度。

它们的类型标识符、默认值、取值范围和所占字节如表2-2所示:

表2-2浮点数据分类

名称

类型标识符

默认值

取值范围

长度

单精度

float

0.0f

-231~231-1

4字节

双精度

double

0.0d

-263~263-1

8字节

(3)字符类型

字符类型中每个字节占两个字节,它使用的是Unicode字符集。

字符类型可以与int类型转换。

它的类型标识符、默认值、取值范围和所占字节如表2-3所示:

(4)布尔型

布尔类型有两种取值true和false,在内存中占1字节,Java中的布尔值和数字是不能转换的,即true和false不对应于1和0数值。

它的类型标识符、默认值、取值范围和所占字节如表2-3所示:

表2-3字符型和布尔型数据

名称

类型标识符

默认值

取值范围

长度

字符型

char

0或‘\u00000’

0~65535或‘\u0000‘~’\uffff’

2字节

布尔型

boolean

false

true,false

1字节

2.2Java语法基础

2.2.1基本概念

1.常量

常量是指直接放入程序中保持不变的量。

常量的数据类型与上面介绍的基本数据相同。

例如,12、-12、0是整型常量,-2.3f、3.134是浮点型常量。

‘a’是字符常量。

2.变量

变量是用来存取某种类型值的存储单元,其中存储的值可以在程序执行过程中被改变。

每个变量都有一个变量名,变量名的命名法则与标识法则相同。

3.标识符

标识符是能被编译器识别而提供的在程序中惟一的名字。

在Java语言中用标识符对变量、类、方法等进行命名。

对标识符的定义需要遵守以下的规则:

(1)标识符是由字母、“_”、“$”和数字组成。

(2)标识符以字母、“_”、“$”开头。

(3)标识符不能与关键字同名。

(4)标识符区分大小写。

如:

sum和Sum是不同的标识符。

例如:

nes_id,$fail,_ese为合法标识符。

nes-id,stud*,class为不合法标识符。

4.关键字

关键字是Java语言本身提供的一种特殊的标识符,又称Java保留字。

Java语言的关键字有40多个,如表2-4:

表2-4Java语言的关键字

abstract

boolean

break

byte

case

catch

char

class

const

continue

default

do

double

else

extens

false

final

finally

float

for

if

implements

import

instanceof

int

interface

long

native

new

package

private

protected

public

return

short

static

super

switch

synchronized

this

throw

throws

transient

true

try

void

volatile

while

5.注释

合理的注释不仅可以提高程序的可读性而且对程序的调试和维护也有很大的帮助。

在Java语言中可以使用下面的三种形式。

(1)//注释内容:

注释一行。

表示从//起到行尾是注释的内容。

(2)/*注释内容*/:

注释一行或多行。

/*和*/之间的为注释内容。

这种形式的注释可以扩展到多行,但不能嵌套。

(3)/**注释内容*/:

文档注释。

表示在/**和*/之间的内容,将自动包含在用javadoc命令生成的HTML格式的文档中。

2.2.2常量

在Java语言中的常量有整型常量、浮点常量、字符常量、布尔常量、字符串常量和程序中定义的常量。

1.整型常量:

Java把整型常量分为三中形式:

十进制、八进制、十六进制。

(1)十进制整数是不以数字0开头并由0~9组成的数字。

如0,64、87。

(2)八进制整数是以数字0开头并由0~7组成的数字。

如00,034、0234。

(3)十六进制整数是以数字0字母x或X开头并由0~9及字母A~F组成的数据。

如0x0,0X7F、0x53。

整型常量的取值范围是有限的,它的大小取决于其整型数据的类型,与所使用的进制无关,默认的是int类型,当说明一个整型常量为长整型时,则在整数的后面加L或l。

如0XfffL即为长整型。

2.浮点型常量

浮点型常量是带小数的十进制数,默认的类型为双精度型,表示形式分为小数形式和指数形式。

(1)小数形式:

由数字和小数点组成。

如:

0.34,.34,35.0,35.都是浮点型常量的小数形式。

(2)指数形式:

类似于数学中的科学记数法。

如:

1.25*107可表示为1.25E7或1.25e7。

3.字符型常量

字符常量是用单引号括起来的一个字符。

例如:

‘a’,‘5’,‘#’等都是字符常量。

其中单引号是字符常量的定界符,不是字符的一部分。

另外,Java区分大小写,所以‘a’和‘A’不是同一字符。

除了以上形式的字符常量外,Java语言还允许使用一种以“\”开头的字符,我们称其为转义字符,用来表示一些不可显示的或有特殊意义的字符。

常见的转义如表2-5所示:

表2-5转义字符表

符号

功能

符号

功能

\n

换行(将光标移到下一行开头)

\’

单引号

\r

回车(将光标移到本行开头)

\“

双引号

\f

换页(光标移到下页开始处)

\\

反斜杠

\b

退格(光标移到前一列)

\ddd

八进制模式

\t

水平制表符(光标移到下一个Tab位置)

\udddd

十六进制模式

4.布尔型常量

布尔常量只有两个值:

“true”和“false”,表示“真”和“假”,均为关键字。

5.字符串常量

字符串(String)不是基本数据类型,是复合数据类型,但在Java语言中字符串类型非常常用,所以在此简单介绍一下字符串常量。

字符串常量是用双引号括起来的0个或多个字符组成的。

如“abc”,“”都是字符串。

6.程序中定义的常量(符号常量)

在Java程序中定义常量通过final关键字实现,常量通常用大写字母表示。

常量声明赋值后,在程序中就不能再修改,否则将会产生编译错误。

定义语句格式如下:

final类型标识符常量名常量值;

例:

finalfloatPI3.14159;//定义符号常量PI,其值为3.14159

2.2.3变量

1.变量定义

Java语言规定,程序中的变量必须先定义、后使用,即在程序中的每个变量都要在使用前定义其数据类型。

定义变量语句的一般格式如下:

数据类型变量列表;

【说明】

(1)“数据类型”与表2-1、2-2、2-3中的变量标识符相同。

(2)“变量列表”由一个或多个变量名组成。

若“变量列表”中包含多个变量,中间用逗号隔开。

【例2-1】定义变量的语句举例。

inta;//定义a为整型变量

intx,y;//定义x、y为整型变量

longsum1,sum2;//定义sum1、sum2为长整型变量

floatn1,n2;//定义n1、n2为单精度变量

charc1,c2;//定义c1、c2为字符型变量

注意:

在程序中,一个变量只能有一个数据类型,不能将已经定义的变量重新定义为其它类型的变量。

2.变量赋值

定义了变量后,才能给变量赋值。

给变量赋值的操作由赋值运算符“=”来完成。

给变量赋值语句的一般形式为:

变量名=表达式

【例2-2】给变量赋值的演示。

代码:

变量赋值程序j202.java

publicclassj202

{

publicstaticvoidmain(Stringarg[])

{

inta,b;//定义变量a,b为整型变量

a=1;//给变量a赋初值

System.out.println("a="+a);

a=a+1;

System.out.println("a="+a);

b=a+1;

System.out.println("b="+b);

a=b+2;

System.out.println("a="+a);

}

}

运行程序时,屏幕显示的结果如图2-2:

图2-2例2-2运行结果

3.变量初始化

Java语言在定义变量同时对变量进行赋值,称为变量的初始化。

【例2-3】给变量赋值的演示。

代码:

变量赋值程序j203.java

publicclassj203

{

publicstaticvoidmain(Stringarg[])

{

bytea=0x78;//定义十六进制字节型变量

intb=3;//定义变量b为整型变量

floatc=1.23f;//定义变量c为单精度变量

doubled=3.23;//定义变量d为双精度变量

booleane=false;//定义变量e为布尔型变量

charf='A';//定义变量f为字符型变量

System.out.println("转换成十进制的a="+a);

System.out.println("b="+b);

System.out.println("c="+c);

System.out.println("d="+d);

System.out.println("e="+e);

System.out.println("f="+f);

}

}

程序执行结果如图2-3:

图2-3例2-3运行结果

注意:

浮点类型的默认类型是double类型,所以float类型的数据后面必须加f或F。

4.变量的作用域

变量的作用域指变量作用的范围。

变量按作用域可以分为:

局部变量、类变量、方法参数、异常处理器参数。

(1)局部变量:

在一个方法或一对{}代码块内定义的变量称为局部变量。

局部变量的作用域是整个方法或某个代码块中。

(2)类变量:

在类中声明且不在任何方法体中的变量称为类变量。

类变量的作用域是整个类。

(3)方法参数:

方法参数定义了方法调用时传递的参数,其作用域就是所在的方法。

(4)异常处理器参数:

异常处理器参数是catch语句块的入口参数。

这种参数的作用域是catch语句后由{}表示的语句块。

【例2-4】变量的作用域演示

代码:

变量作用域j204.java

publicclassj204

{

staticintx=5;//定义变量x为类变量

publicstaticvoidmain(Stringarg[])

{

inty=23;//定义变量y为局部变量

System.out.println("x="+x);

System.out.println("y="+y);

m(6);//调用方法m()

}

staticvoidm(intz)//定义变量z为方法参数

{

System.out.println("z="+z);

System.out.println("x="+x);

}

}

运行结果如图2-4所示:

图2-4例2-4运行结果

在例2-4中x为类变量,其作用域在程序类体内;y为局部变量,其作用域在main()方法体内;z为方法参数,其作用域在z方法体内。

2.3运算符与表达式

Java语言运算符是一种特殊字符,他指明用户对操作数进行的某种操作。

表达式是由常量、变量、方法调用以及一个或多个运算符按一定规则的组合,它用于计算或对变量进行赋值。

2.3.1算术运算符与算术表达式

1.算术运算符

算术运算符分为单目算术运算符(只有一个操作数)和双目运算符(有两个操作数)。

算术运算符的操作数可以是整型或浮点型。

Java语言中的算术运算符如表2-6所示:

表2-6算术运算符

类型

运算符

功能

用法举例

+

a+b

-

a-b

*

a*b

/

a/b

%

求余

a%b

-

负值

-a

++

自增

a++,++a

--

自减

a--,--a

Java语言中的算术运算符与数学中的算术运算符有许多不同的地方,下面对它们做一个简单的说明。

(1)“+”运算符可以用来连接字符串;例如:

Stringsalutation="Dr.";

Stringname="Jack";

Stringtitle=salutation+name;

则title值为“Dr.Jack”.

(2)“/”运算符。

两个整数相除的结果是整数,如果有一个操作数为小数则结果为小数。

例如5/2=2;5.0/2=2.5。

(3)“%”运算符。

Java中的取模运算符与C和C++不同,它的操作数可以是浮点数。

例如-3.5%3=-0.5,3.5%-3=0.5。

(4)++(--)运算符的操作数必须是变量,不能是常量和表达式。

它们可以放在变量前,也可以放在变量后,功能都是对变量增(减)1。

但从表达式的角度看,表达式的值是不同的,例如:

k=a++;等价于k=a;a=a+1;如a=5,则k=5,a=6;

k=++a;等价于a=a+1;k=a;如a=5,则k=6,a=6;

下面给出一个算术表达式的例子:

【例2-5】算术运算

代码:

算术运算符使用j205.java

publicclassj205

{

publicstaticvoidmain(Stringarg[])

{

inta=3,b=5,c=5;

System.out.println("初值a=3,b=5,c=5");

System.out.println("b/a="+b/a);

System.out.println("c%a="+c%a);

System.out.println("-a="+(-a));

System.out.println("b++="+(b++)+","+"b="+b);

System.out.println("++c="+(++c)+","+"c="+c);

}

}

运行结果如图2-5所示:

图2-5例2-5运行结果

2.算术表达式中的类型转换

类型转换分为自动类型转换和强制类型转换。

(1)自动类型转换

整型、浮点型、字符型数据可以进行混合运算,在运算中为了保证数据精度,自动把数据从低级转换向高级。

类型从低级到高级的顺序为:

(2)强制类型转换

高精度数据要转换成低精度数据就需要使用强制转换。

其格式为:

(数据类型)表达式;

例如:

(double)a;//将a转换成double类型

(int)(x+y);//将x+y的值转换成int类型

(int)x+y;//将x的值转换成int类型

注意:

强制类型转换不是改变变量的数据类型,只是产生一个临时变量去存放改变后的数据。

所以在一个程序中一个变量只能有一个类型。

2.3.2关系运算符与关系表达式

1.关系运算符组成

Java语言提供了6种关系运算符。

如表2-7所示:

表2-7关系运算符组成

运算符

意义

运算符

意义

>

大于

>=

大于等于

<

小于

<=

小于等于

==

等于

=

不等于

2.关系表达式的值

关系表达式的运行结果是一个布尔类型值:

true和false。

如果关系成立,表达式的值为true,关系不成立,表达式的值为false。

例如:

10>7的值为true,10!

=10的值为false。

2.3.3逻辑运算符与逻辑表达式

逻辑运算与关系运算的关系十分密切,关系运算的运算结果是布尔型的运算,而逻辑运算的操作数和运算结果都是布尔型的运算。

逻辑运算符有6种,分别为!

(非)、&(非简洁与)、|(非简洁或)、^(异或)、&&(简洁与)、||(简洁或),其中!

是单目运算符。

逻辑运算规则如表2-8所示:

表2-8逻辑运算规则

op1

op2

!

op1

op1&(&&)op2

op1|(||)op2

op1^op2

false

false

true

false

false

false

false

true

true

false

true

true

true

false

false

false

true

true

true

true

false

true

true

false

Java语言提供两种与和或的运算符:

&、|和&&、||。

这两种运算符的区别是:

(1)&&、||:

逻辑表达式求值过程中,对于或运算,先求左边表达式的值,如果为true,则整个逻辑表达式的结果就是true,从而不再对右边的表达式进行运算;同样对于与运算,如果左面表达式的值为false,则整个逻辑表达式的结果就是false,右面的表达式就不需在进行运算了。

(2)&、|:

利用&、|做运算时,运算符两边的表达式都要被判断,即不管第一个表达式的结果能否推测出整个逻辑表达式的结果,都要对第二个表达式进行运算。

【例2-6】逻辑运算

代码:

逻辑运算演示j206.java

publicclassj206

{

publicstaticvoidmain(Stringarg[])

{

intx=1,y=2;

intnum1=5,num2=5,num3=5,num4=5;

booleanr1,r2,r3,r4;

r1=x>y&num1++==5;//两边表达式都运算

r2=x>y&&num2++==5;//只运算左边表达式

r3=x

r4=x

System.out.println("逻辑值:

r1="+r1+","+"num1="+num1);

System.out.println("逻辑值:

r2="+r2+","+"num2="+num2);

System.out.println("逻辑值:

r3="+r3+","+"num3="+num3);

System.out.println("逻辑值:

r4="+r4+","+"num4="+num4);

}

}

运行结果如图2-6:

图2-6例2-6运行结果

2.3.4位运算符

位运算符是用来对整型数据的二进制位进行测试、置位或移位处理。

位运算符按功能划分为位逻辑运算符和位移位运算符。

1.位逻辑运算符

位逻辑运算符是对操作数的每位上进行相应的逻辑运算。

位逻辑运算符共四种,其中一种即~(非)为单目运算符,其余三种&(与)、|(或)、^(异或)为双目运算符,其逻辑运算规则同逻辑运算符。

表2-9列出Java语言的位逻辑运算符。

表2-10列出了位逻辑运算符运算规则。

表2-9位逻辑运算符

运算符

位运算表达式

功能

~op1

按位取反

&

op1&op2

按位与

|

op1|op2

按位或

^

op1^op2

按位异或

表2-10位逻辑运算符运算规则

op1

op2

~op1

op1&op2

op1|op2

op1^op2

0

0

1

0

0

0

0

1

1

0

1

1

1

0

0

0

1

1

1

1

0

1

1

0

上述每一种位逻辑运算符根据其运算规则都有一定的用途。

(1)逻辑与用途是清零:

如果将一个存储单元清零,即使其全部二进制位为0,可以找一个新数,原来数为1的位,新数中相应位为0,原来数中为0的位,新数相应位可以为0或1,再对两者进行&运算,就可以将其清零。

例如:

原数:

11011010

新数:

&00100001

00000000

(2)逻辑或的用途是置1:

如果将一个存储单元置1,即使其全部二进制位为1,可以找一个新数,原来数为0的位,新数中相应位为1,原来数中为1的位,新数相应位可以为0或1。

再对两者进行|运算,就可以将其置1。

例如:

原数:

11011010

新数:

|00100101

11111111

(3)逻辑异或的用途有两种:

一种是使特定位翻转;即将欲翻转的位与1进行异或运算;另一种是使特定位保留原值,即将欲翻转的位与0进行异或运算。

例如:

原数:

11011010

新数:

^00001111

11010101

2.位移位运算符

位移位运算是针对整型数的二进制进行。

这里的二进制并不是该数本身的二进制码,而是要进行编码。

常用的编码有:

原码、反码、补码。

(1)原码:

最高位为符号位,最高位为0表示正数,最高位为1表示负数,其余各位用该数的二进制码表示。

如:

+8的原码为00001000

-8的原码为10001000

(2)反码:

正数的反码与原码相同,负数的反码将其原码按位取反(不包括符号位)。

如:

+8的反码为00001000

-8的反码为11110111

(3)补码:

正数的补码与原码相同,负数的补码将其反码加1。

如:

+8的补码为00001000

-8的补码为11111000

移位运算符是把操作数的第一位向左或向右移

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1