《JAVA程序设计PPT课件第2章基本数据类型与基本操作.ppt》由会员分享,可在线阅读,更多相关《JAVA程序设计PPT课件第2章基本数据类型与基本操作.ppt(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2章 基本数据类型与基本操作Java程序设计程序设计2学习目标l本章学习本章学习Java语言的基本数据类型及相关内容,包语言的基本数据类型及相关内容,包括变量、常量、数据类型和表达式,掌握如何利用括变量、常量、数据类型和表达式,掌握如何利用基本数据类型、输入输出及运算表达式来编写程序。基本数据类型、输入输出及运算表达式来编写程序。2.1 标识符l程序设计语言使用程序设计语言使用标识符标识符命名程序中的元素,如类、命名程序中的元素,如类、方法、变量、常量和包等。方法、变量、常量和包等。lJava语言命名标识符的规则如下:语言命名标识符的规则如下:标识符是由字母、数字、下划线(标识符是由字母、数
2、字、下划线(_)和美元符()和美元符($)构成)构成的字符序列。的字符序列。标识符的第标识符的第1个字符必须是字母、划线(个字符必须是字母、划线(_)或美元符)或美元符($),不能是数字。),不能是数字。标识符不能与关键字相同。标识符不能与关键字相同。标识符不能是标识符不能是true、false和和null。标识符可以有任意长度。标识符可以有任意长度。Java语言的关键字 abstractabstractcontinuecontinueforfornewnewswitchswitchassertassertdefaultdefaultgotogotopackagepackagesynchron
3、izedsynchronizedbooleanbooleandodoififprivateprivatethisthisbreakbreakdoubledoubleimplementsimplementsprotectedprotectedthrowthrowbytebyteelseelseimportimportpublicpublicthrowsthrowscasecaseenumenuminstanceofinstanceofreturnreturntransienttransientcatchcatchextendsextendsintintshortshorttrytrycharch
4、arfinalfinalinterfaceinterfacestaticstaticvoidvoidclassclassfinallyfinallylonglongstrictfpstrictfpvolatilevolatileconstconstfloatfloatnativenativesupersuperwhilewhileJava语言几种常见程序元素的命名习惯 l变量和方法通常使用小写字母命名,如果名字包括多变量和方法通常使用小写字母命名,如果名字包括多个词,则连接在一起,使第一个词的字母小写而其它个词,则连接在一起,使第一个词的字母小写而其它词的首字母大写,通常变量为名词或名词短语,
5、而方词的首字母大写,通常变量为名词或名词短语,而方法为动词或运行短语。法为动词或运行短语。l类通常使用名词或名词短语命名,构成类名的每个单类通常使用名词或名词短语命名,构成类名的每个单词的首字母均大写。词的首字母均大写。l常量中的字母都大写,两个单词之间用下划线连接。常量中的字母都大写,两个单词之间用下划线连接。2.2 基本数据类型lJava语言的数据类型分为基本数据类型和引用数据语言的数据类型分为基本数据类型和引用数据类型两大类。类型两大类。l基本数据类型包括基本数据类型包括4种整数类型、种整数类型、2种浮点类型、字种浮点类型、字符类型和布尔类型。引用类型主要用于访问程序中符类型和布尔类型。
6、引用类型主要用于访问程序中创建的对象。创建的对象。2.2 基本数据类型1.整数类型整数类型l使用整数类型时,应该根据要描述的数值大小选择使用整数类型时,应该根据要描述的数值大小选择恰当地整数类型,应用最多的是恰当地整数类型,应用最多的是int类型,数据值很类型,数据值很大情况下选择大情况下选择long,byte和和short通常用于文件读写通常用于文件读写处理等,从而有效控制存储空间利用率。处理等,从而有效控制存储空间利用率。2.浮点类型浮点类型l浮点类型的数值在存储和运算过程中会产生误差,浮点类型的数值在存储和运算过程中会产生误差,表示通常所说的实数,其数值由整数部分和小数部表示通常所说的实
7、数,其数值由整数部分和小数部分构成。分构成。l两种浮点类型除存储位数不同外,其精度也不同。两种浮点类型除存储位数不同外,其精度也不同。float类型的有效数字为类型的有效数字为67位,位,double类型的有效类型的有效数字为数字为15位。位。3.字符类型字符类型l字符类型在程序中用于表示单个字符。字符类型在程序中用于表示单个字符。lJava选选用了用了Unicode编码编码字符集。字符集。lUnicode是一种是一种16位位编码编码,最大可以容,最大可以容纳纳65535个字个字符,除符,除传统传统的西方字符外,也容的西方字符外,也容纳纳了中文、日文和了中文、日文和韩韩文等文等亚亚洲文字。洲文
8、字。4.布尔类型布尔类型l布尔类型是一种用于表示逻辑判断结果的数据类型,布尔类型是一种用于表示逻辑判断结果的数据类型,它只有两个值:表示它只有两个值:表示“真真”的的true和表示和表示“假假”的的false。2.3 直接量与常量l直接量是源程序代码中直接出现的各种数据类型的直接量是源程序代码中直接出现的各种数据类型的数值。数值。l常量是指在程序中使用标识符进行命名且数值不能常量是指在程序中使用标识符进行命名且数值不能改变的量。改变的量。l它们的共同特点是在程序运行过程中数值大小不同它们的共同特点是在程序运行过程中数值大小不同发生改变。发生改变。2.3.1 直接量lJava语言中,不同数据类型
9、的直接量有不同的表示语言中,不同数据类型的直接量有不同的表示方式和不同的数据类型。方式和不同的数据类型。1.整型直接量整型直接量lJava语言的整型直接量有语言的整型直接量有3种表示形式:十进制、八进制和种表示形式:十进制、八进制和十六进制。十六进制。l十进制整数以十进制整数以10为基数,即为基数,即“逢逢10进进1”,由数字,由数字09和正号和正号(+)、负号()构成,如:)、负号()构成,如:1234、-78、0均为十进制直均为十进制直接量;接量;l八进制整数以八进制整数以8为基数,即为基数,即“逢逢8进进1”,由数字,由数字07和正号和正号(+)、负号()构成。八进制整数必须用数字)、负
10、号()构成。八进制整数必须用数字“0”开始,开始,如:如:027、-0123均为八进制直接量。均为八进制直接量。l十六进制整数以十六进制整数以16为基数,即为基数,即“逢逢16进进1”,由数字,由数字09、字、字母母AF(可以小写)和正号(可以小写)和正号(+)、负号()构成。十六进)、负号()构成。十六进制整数必须用制整数必须用“0 x”或或“0X”开始,如:开始,如:-0 x123、0 xFFFF均为十六进制直接量。均为十六进制直接量。l整型直接量默认是整型直接量默认是int类型的,可以通过在直接量的末尾加字类型的,可以通过在直接量的末尾加字母母L或或l表示其数据类型为表示其数据类型为lo
11、ng。例如:。例如:100表示表示int型十进制型十进制整数,整数,100L表示表示long型十进制整数。型十进制整数。2.浮点型直接量浮点型直接量lJava语言的浮点类型直接量有两种表示形式:十进制小数点语言的浮点类型直接量有两种表示形式:十进制小数点形式和科学记数法。形式和科学记数法。l十进制小数点表示法由整数部分、小数点和小数部分组成,十进制小数点表示法由整数部分、小数点和小数部分组成,整数部分和小数部分可以省略,但不能同时省略,被省略部整数部分和小数部分可以省略,但不能同时省略,被省略部分的值为分的值为0。例如:。例如:3.14、.12、100.、123.4等。等。l科学计数法也称指数
12、形式,由十进制小数点表示部分和指数科学计数法也称指数形式,由十进制小数点表示部分和指数部分组成,指数部分用部分组成,指数部分用E或或e开始,指数必须为整数。例如开始,指数必须为整数。例如:1.23E+6、1.0E-10、3.14E5等。等。l浮点类型直接量默认为浮点类型直接量默认为double类型,如果要在程序中书写类型,如果要在程序中书写float类型的直接量,则需要在直接末尾添加类型的直接量,则需要在直接末尾添加F或或f。例如:。例如:1.23F、1.23E+6F表示表示float的直接量。的直接量。3.字符型直接量字符型直接量l字符型直接量是用单引号括起来的单个字符。由于字符型直接量是用
13、单引号括起来的单个字符。由于使用使用Unicode编码,编码,Java程序中单个汉字也作为字程序中单个汉字也作为字符直接使用。例如:符直接使用。例如:A、$、汉汉、中中都是合法的字都是合法的字符直接量。符直接量。Java转义字符序列 4.布尔型直接量布尔型直接量lJava语言的布尔型直接量只有语言的布尔型直接量只有2个:个:true和和false。5.字符串直接量字符串直接量l字符串直接量不属于基本数据类型,是程序设计过字符串直接量不属于基本数据类型,是程序设计过程中使用非常多的一种直接量。程中使用非常多的一种直接量。l字符串是指由零个或多个字符组成的字符序列。字符串是指由零个或多个字符组成的
14、字符序列。lJava语言中,字符串直接量是用双引号把字符序列语言中,字符串直接量是用双引号把字符序列括起来的形式,字符序列中字符的个数称为字符串括起来的形式,字符序列中字符的个数称为字符串的长度。的长度。2.3.2 常量lJava语言中,声明常量的语法形式为:语言中,声明常量的语法形式为:修饰符 final 数据类型 常量标识符=常量初始值 lJava对常量的定义是其值在程序运行期间只能被赋对常量的定义是其值在程序运行期间只能被赋值一次,一旦赋值后就不能再被整改,因此不必在值一次,一旦赋值后就不能再被整改,因此不必在声明常量立即赋值,可以在适当地方进行赋值。声明常量立即赋值,可以在适当地方进行
15、赋值。2.4 变量与赋值运算符l变量用来存储程序中需要处理的数据。变量用来存储程序中需要处理的数据。l与常量不同,变量的值在程序执行过程中会发生改与常量不同,变量的值在程序执行过程中会发生改变。变。l每个变量都必须有确定的数据类型和名字,这可以每个变量都必须有确定的数据类型和名字,这可以通过变量定义完成。通过变量定义完成。2.4 变量与赋值运算符l变量定义的语法变量定义的语法:数据类型 变量名1,变量名2,;l在定义变量的同时使用赋值运算符在定义变量的同时使用赋值运算符“”为变量赋为变量赋予一个初始值,称为变量的初始化。予一个初始值,称为变量的初始化。l赋值运算符赋值运算符“”用来将其右边的数
16、值赋予其左边用来将其右边的数值赋予其左边的变量,如果其右边是一个表达式则需要先计算表的变量,如果其右边是一个表达式则需要先计算表达式的结果后,再把结果赋值给变量。达式的结果后,再把结果赋值给变量。2.5 运算符与表达式l表达式是用来说明某种运算规则的语言成份,由参表达式是用来说明某种运算规则的语言成份,由参与运算的操作数、运算符及括号组成。与运算的操作数、运算符及括号组成。l表达式运算得到的结果称为表达式的值,这个值的表达式运算得到的结果称为表达式的值,这个值的数据类型也就是表达式的类型。数据类型也就是表达式的类型。2.5 运算符与表达式l运算符的作用是使它连接的操作数完成特定运算,运算符的作
17、用是使它连接的操作数完成特定运算,对不同类型的数据能够进行的运算是不同的。对不同类型的数据能够进行的运算是不同的。l运算符具有操作数个数与类型、优先级和结合性等运算符具有操作数个数与类型、优先级和结合性等特性。特性。lJava语言提供了算术运算符、关系运算符、逻辑运语言提供了算术运算符、关系运算符、逻辑运算符、位运算符等种类丰富的运算,并对运算符的算符、位运算符等种类丰富的运算,并对运算符的优先级、结合性有明确的规定。优先级、结合性有明确的规定。2.5.1 算术运算l算术运算符按操作数个数分为双目运算符和单目运算术运算符按操作数个数分为双目运算符和单目运算符两类。算符两类。l 双目算术运算符双
18、目算术运算符 2.5.1 算术运算关于双目算术运算,需要说明以下两个问题:关于双目算术运算,需要说明以下两个问题:l两个整数类型的数据进行算术运算后,结果仍然是两个整数类型的数据进行算术运算后,结果仍然是整数类型。整数类型。l模运算求模运算求a除以除以b的余数,结果的符号与被除数的余数,结果的符号与被除数a的符的符号相同。号相同。2.5.1 算术运算l单目算术运算符单目算术运算符 2.5.2 关系运算l关系表达式通过关系运算符确定两个数据之间的小关系表达式通过关系运算符确定两个数据之间的小于、大于及相等关系,也称比较运算表达式。于、大于及相等关系,也称比较运算表达式。l关系运算符关系运算符 2
19、.5.3 逻辑运算l逻辑运算符可以对象布尔类型的数据进行运算,结逻辑运算符可以对象布尔类型的数据进行运算,结果也是布尔类型。果也是布尔类型。lJava语言提供了两个双目逻辑运算符:语言提供了两个双目逻辑运算符:&(逻辑与)(逻辑与)和和|(逻辑或)、一个单目逻辑运算符:(逻辑或)、一个单目逻辑运算符:!(逻辑非)。(逻辑非)。2.5.3 逻辑运算l逻辑运算规则表逻辑运算规则表 2.5.4 位运算l位运算符用来对整型数据按二进制位进行运算,结位运算符用来对整型数据按二进制位进行运算,结果也是整型数据。果也是整型数据。lJava语言的位运算包括位逻辑运算和位移运算。语言的位运算包括位逻辑运算和位移
20、运算。2.5.4 位运算l位逻辑运算符和运算规则位逻辑运算符和运算规则 l位移运算符和运算规则位移运算符和运算规则 2.5.5 赋值运算l复合赋值运算符复合赋值运算符 2.5.6 条件运算l条件运算符是提供的一个三目运算符,使用它构成条件运算符是提供的一个三目运算符,使用它构成的条件运算表达式可以根据一个条件在两个表达式的条件运算表达式可以根据一个条件在两个表达式的值中选择一个作为结果。的值中选择一个作为结果。l条件运算符的使用形式条件运算符的使用形式:条件条件?表达式表达式1:表达式表达式2 2.5.7 运算符与表达式的计算规则l Java运算符的优先级与结合性运算符的优先级与结合性:2.6
21、 数据类型的转换l数据类型的转换分为自动类型转换和强制类型转换数据类型的转换分为自动类型转换和强制类型转换两种。两种。l强制类型转换需要在程序中显式的写出,其语法如强制类型转换需要在程序中显式的写出,其语法如下:下:(数据类型关键字)表达式 2.6.1 数值型数据之间的转换l当两个类型不同的数值操作数进行双目运算时,当两个类型不同的数值操作数进行双目运算时,Java按照以下规则进行自动转换操作数的类型:按照以下规则进行自动转换操作数的类型:如果操作数之一是double类型,则把另一个转换为double类型。否则,如果操作数之一是float类型,则把另一个转换为float类型。否则,如果操作数之
22、一是long类型,则把另一个转换为long类型。否则,把两个操作数都转换为int类型。2.6.2 字符型数据与数值型数据之间的转换lchar型数据可以转换为任何数值型数据,反之亦然。型数据可以转换为任何数值型数据,反之亦然。l一个一个char型数据转换为数值型数据时,该字符的型数据转换为数值型数据时,该字符的Unicode编码值被转换为指定的数值类型;编码值被转换为指定的数值类型;l一个一个int整数被转换为整数被转换为char类型时,只保留整数的低类型时,只保留整数的低16位作为位作为Unicode编码,高位部分被截断;当一个浮点编码,高位部分被截断;当一个浮点数被转换为数被转换为char类
23、型时,先将浮点数转换为类型时,先将浮点数转换为int类型,类型,再转换成再转换成char类型。类型。2.6.3 字符串与基本数据类型之间的转换l两个字符串可以通过两个字符串可以通过“+”连接起来,此处的连接起来,此处的“+”称为连接运算符。称为连接运算符。lJava的的“+”运算符在参与运算的数据类型不同的运算符在参与运算的数据类型不同的情况下有不同的作用,所以在使用时要特别注意区情况下有不同的作用,所以在使用时要特别注意区别不同的运算。别不同的运算。2.6.3 字符串与基本数据类型之间的转换l把字符串转换为把字符串转换为int类型,使用下面语句:类型,使用下面语句:int value=Int
24、eger.parseInt(intString);l把字符串转换为把字符串转换为double类型,使用下面语句:类型,使用下面语句:double value=Double.parseDouble(doubleString);2.7 使用Math类进行数学运算lJava在标准类库中提供了在标准类库中提供了Math类,其中定义了与数类,其中定义了与数学运算有关的方法和两个常量。学运算有关的方法和两个常量。lMath类中的方法主要有三角函数方法、指数函数方类中的方法主要有三角函数方法、指数函数方法等。法等。2.7 使用Math类进行数学运算lMath类中部分方法类中部分方法 2.8 基本输入输出l输
25、入和输出是程序必须具备的功能,计算机用户通输入和输出是程序必须具备的功能,计算机用户通过程序的输入、输出界面与程序进行交互。过程序的输入、输出界面与程序进行交互。l输入是指用户通过输入设备向程序提供数据或命令,输入是指用户通过输入设备向程序提供数据或命令,输出是指程序将运算得到的结果显示在输出设备上。输出是指程序将运算得到的结果显示在输出设备上。l目前主流程序中有两种输入输出方式:命令行界面目前主流程序中有两种输入输出方式:命令行界面和图形用户界面。和图形用户界面。l命令行界面较为简单且运行效率高,但缺乏直观性命令行界面较为简单且运行效率高,但缺乏直观性和交互性。图形用户界面用户体验好且操作方
26、便,和交互性。图形用户界面用户体验好且操作方便,但是实现较复杂。但是实现较复杂。lJava语言的输入和输出是通过语言的输入和输出是通过JDK中定义的类中封中定义的类中封装的方法实现的。装的方法实现的。1.数据输入数据输入lJDK5.0中增加了类中增加了类Scanner,使用它可以便地完成各种基,使用它可以便地完成各种基本类型数据和字符串的输入。本类型数据和字符串的输入。lScanner类中输入数据的方法类中输入数据的方法 l例例2-1 2.数据输出数据输出l使用使用System.out.print()和和System.out.println()方方法可以在标准输出设备输出结果。其中法可以在标准
27、输出设备输出结果。其中System.out是是PrintStream类型的标准输出对象,两个方法的参类型的标准输出对象,两个方法的参数是一样的,均为一个字符串。数是一样的,均为一个字符串。l两者的区别在于两者的区别在于println()方法在输出完字符串后自动方法在输出完字符串后自动添加一个回车换行。添加一个回车换行。2.数据输出数据输出l为了便于控制多个不同类型数据的输出,为了便于控制多个不同类型数据的输出,JDK5开始开始增加了增加了printf方法,其格式为:方法,其格式为:System.out.printf(格式字符串,表达式1,表达式2,表达式n);2.数据输出数据输出l格式字符串由
28、格式控制字符和普通字符组成,普通格式字符串由格式控制字符和普通字符组成,普通字符原样输出,格式控制字符用来说明输出的数据字符原样输出,格式控制字符用来说明输出的数据类型和输出的格式。类型和输出的格式。l格式控制字符有以下几种:格式控制字符有以下几种:%d:输出整数类型的数据值。%c:输出char类型的数据值。%f:输出浮点数类型数据值,默认保留6位小数。%s:输出字符串类型。2.数据输出数据输出l输出数据时,可以在输出数据时,可以在%和格式控制字符之间加附加和格式控制字符之间加附加控制符控制符m、n和,其中和,其中m和和n均为整数直接量,使均为整数直接量,使用方法如下:用方法如下:%md:输出
29、的整数占m列,如果实际宽度大于m列,则按实际宽度输出;否则在输出数据前面加空格。也可以用于其他格式控制符。%-md:输出的整数占m列,如果实际宽度大于m列,则按实际宽度输出;否则在输出数据后面加空格。也可以用于其他格式控制符。%m.nf:用于输出浮点数类型,小数部分保留n位。m作用与上面相同,小数点也占输出宽度。%-m.nf:与%m.nf类似,只是当实际宽度小于m时,在输出数据后面加空格。2.8.2 使用对话框进行输出输出l使用对话框进行字符串输入输出的方式。要实现这使用对话框进行字符串输入输出的方式。要实现这个目标,需要使用个目标,需要使用JOptionPane类的方法。类的方法。l对话框输
30、出示例对话框输出示例:2.8.2 使用对话框进行输出输出l对话框输入示例对话框输入示例:2.9 顺序结构程序举例l顺序结构的程序设计是最简单的程序结构,只要按顺序结构的程序设计是最简单的程序结构,只要按照要解决问题的要求顺序写出相应的语句即可。它照要解决问题的要求顺序写出相应的语句即可。它的执行顺序是自上而下,依次执行。的执行顺序是自上而下,依次执行。l例例2-2:计算圆的面积。要求程序使用对话框方式输:计算圆的面积。要求程序使用对话框方式输入圆的半径,计算圆的面积,最后使用对话框输出入圆的半径,计算圆的面积,最后使用对话框输出圆的半径和其对应的面积。圆的半径和其对应的面积。l例例2-3:计算
31、三角形的面积。使用命令行方式输入三:计算三角形的面积。使用命令行方式输入三角形的三条边长,计算并在命令行输出三角形的面角形的三条边长,计算并在命令行输出三角形的面向。假设输入的三条边长一定能构成三角形。向。假设输入的三条边长一定能构成三角形。课后工作l复习本章内容复习本章内容l编写程序,从输入对话框输入编写程序,从输入对话框输入double类型的华氏温类型的华氏温度值,将其转换为摄氏温度值并在输出对话框显示结度值,将其转换为摄氏温度值并在输出对话框显示结果。转换公式为:摄氏度果。转换公式为:摄氏度=(5/9)*(华氏度华氏度 32)。l编写程序,使用命令行方式输入圆柱体的底面圆半径编写程序,使用命令行方式输入圆柱体的底面圆半径和高度,计算表面积和体积,使用命令行方式输出结和高度,计算表面积和体积,使用命令行方式输出结果。果。l编写程序,输入一个编写程序,输入一个0到到1000之间的整数,计算其各之间的整数,计算其各位数字之和。例如:位数字之和。例如:236的各位数字之和为的各位数字之和为11;87的的各位数字之和为各位数字之和为15。Java程序设计程序设计52