清华大学张思民Java课件第2章_第1页
清华大学张思民Java课件第2章_第2页
清华大学张思民Java课件第2章_第3页
清华大学张思民Java课件第2章_第4页
清华大学张思民Java课件第2章_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本章内容提要1、基本数据类型2、表达式和运算符3、程序控制语句4、数组5、向量(简介)6、字符串本章内容提要1、基本数据类型12.1数据类型程序=算法+数据结构+程序设计方法+语言工具和环境。之所以有数据类型,就是因为计算机存储不同数据类型的方式和空间不同。2.1数据类型程序=算法+数据结构+程序设计方法+语言工具2数据类型分类Java定义了8个基本数据类型:字节型,短整型,整型,长整型,字符型,浮点型,双精度型,布尔型。它们分为4组:整数型(byte,short,int,long)浮点数型(float,double)字符型(char)布尔型(boolean)数据类型分类Java定义了8个基本数据类型:字节型3数据类型的分类数据类型的分类4【例2-1】计算二个整数的和:classExample2_1{publicstaticvoidmain(Stringargs[]){intx,y,sum;//变量声明x=3;y=5;sum=x+y;//求和System.out.println("二数之和为:"+sum);}}在Java中,使用变量要遵守“先声明后使用”的原则。

【例2-1】计算二个整数的和:classExample25类型转换自动转换

需要满足两个条件:1、类型相容;2、目标数据类型比原数据类型分配的内存空间大(即由低到高)。强制转换

发生在相容数据类型之间(即精度由高到低)。语法形式: (目标类型)值基本数据类型按精度从“低”到“高”的顺序为:byteshortintlongfloatdouble类型转换自动转换强制转换基本数据类型按精度从“低”到“高”的62.2表达式和运算符表达式是由运算符、操作数和方法调用按照语言的语法构造而成的符号序列。表达式可用于计算一个公式,为变量赋值以及帮助控制程序执行流程。2.2表达式和运算符表达式是由运算符、操作数和方法调用按照72.2.1表达式与运算符只有一个运算对象的运算符称为一元运算符。例如++x是一个一元运算符,它是对运算对象x自增加1。++x,--x:使用X之前,先使X的值加1(或减1);X++,X--:使用X之后,再使X的值加1(或减1)设X=5则Y=++XY的值为6;Y=X++Y的值为5,而X为6。2.2.1表达式与运算符只有一个运算对象的运算符称为8我们可以将运算符分成以下几类:算术运算符;关系和条件运算符;移位和逻辑运算符;赋值运算符;其他的运算符。我们可以将运算符分成以下几类:92.2.2算术运算符Java语言支持所有的浮点型和整型数进行各种算术运算。这些运算符为+(加)、-(减)、*(乘)、/(除)以及%(取模)。算术运算符的使用基本上与加减乘除一样,也是先乘除后加减,必要时加上括号表示运算的先后顺序。例如这个程序代码会在命令行模式下显示:System.out.println(1+2*3);2.2.2算术运算符Java语言支持所有的浮点型和整型数102.2.3关系与逻辑运算符2.2.3关系与逻辑运算符11条件运算符条件运算符122.2.4位运算符位运算符是对操作数以二进制位为单位进行的操作和运算,其结果均为整型量。2.2.4位运算符位运算符是对操作数以二进制位为单位进行13移位和逻辑运算符移位和逻辑运算符14右移运算符“>>”将一个数的二进制位序列右移若干位,移出右端的低位被舍弃,最高位则移入原来高位的值。例如:a=00110111,则a>>2=00001101b=11010011,则b>>2=11110100左移运算符“<<”将一个数的二进制位序列左移若干位,高位左移后溢出舍弃,不起作用。右移运算符“>>”将一个数的二进制位序列右移若干位,移出右端15当移位运算符通过对运算对象左移位或者右移位来对数据执行位操作时,一个数每左移1位,相当于这个数乘以2,每右移1位,相当于除以2。例如,设x=8,则x<<1表示左移1位,相当于作x×21的运算,其结果为16。x<<2表示左移2位,相当于作x×22的运算,其结果为32。而x>>1表示右移1位,相当于作x÷21的运算,其结果为4,x>>2表示右移2位,相当于作x÷22的运算,其结果为2。一般地:x<<n表示左移n位,相当于作x×2n的运算,x>>n表示右移n位,相当于作x÷2n的运算。逻辑右移运算符“>>>”将一个数的二进制位右移若干位,右端移出的低位被舍弃,最高位也是补0,这点与“>>”不同。当运算对象为数字的时候,“&”运算符为每一个运算对象的每位执行按位与功能。它在两个运算对象的对应位为1时结果才为1,反之结果都为0。即:0&0=0、0&1=0、1&0=0、1&1=1当移位运算符通过对运算对象左移位或者右移位来对数据执行位操作16“|”运算符执行或操作。当两个操作对象都是数字的时候,或操作只要有一个运算对象为1结果就为1。即:0|0=0、0|1=1、1|0=1、1|1=1“^”运算符执行异或操作。异或是指当运算对象不同时结果才为1,否则结果为0。即:0^0=0、0^1=1、1^0=1、1^1=0“|”运算符执行或操作。当两个操作对象都是数字的时候,或17如果c=a^b那么a=c^b即用同一个数b对数a进行二次异或运算的结果仍是数a。如果c=a^b182.3程序控制语句语句分为五类:1、方法调用语句;2、表达式语句;3、复合语句;4、控制语句;5、package和import语句。2.3程序控制语句语句分为五类:192.3.2控制语句通常语句在程序中都是按先后顺序执行,控制语句用于改变程序执行的顺序。Java的控制语句有:if-else语句switch语句whiledo-while语句for语句跳转语句异常处理语句2.3.2控制语句通常语句在程序中都是按先后顺序执行,控制202.3.3if条件语句1、if语句的一般形式if(表达式){若干语句;}2.3.3if条件语句1、if语句的一般形式212.3.4switch语句switch语句是一个多分支选择语句,也叫开关语句。它可以根据一个整型表达式有条件地选择一个语句执行。switch(变量名称或表达式){case符合数字或字符:语句块1;break;case符合数字或字符:语句块2;break;default:语句块3;}2.3.4switch语句switch语句是一个多分支22switch语句首先计算条件表达式的值,如果表达式的值和某个case后面的常量数值相同,就执行该case里的若干条语句,直到break语句为止。若没有一个常量与表达式的值相同,则执行default后面的若干条语句。default是可有可无的,如果它不存在,并且所有的常量数值都和表达式的值不相同,那么switch语句就不进行任何处理。switch语句首先计算条件表达式的值,如果表达式的值和某个232.3.5循环语句1、for循环语句for循环语句的语法结构如下:

for(初始条件;终止条件;增量){循环体;}2.3.5循环语句1、for循环语句24图2.7循环语句的执行过程图2.7循环语句的执行过程252.4数组数组是一组相同类型变量的集合,可以使用共同的名字引用它。2.4数组数组是一组相同类型变量的集合,可以使用共同的名262.4.1创建和使用数组1、声明数组(1)声明一维数组的格式:数组元素的类型[]数组的名字;(2)声明二维数组的格式:数组元素的类型[][]数组的名字;2.4.1创建和使用数组1、声明数组272、创建数组一般来说,当创建数组的时候,使用new操作符,后面跟着数组元素的数据结构。然后将元素的数目用方括号[]括起来,其格式如下所示:

数组名字=new数组元素的类型[数组元素的个数];例:

a=newint[10];

2、创建数组一般来说,当创建数组的时候,使用283、数组元素的使用

数组可以通过下标访问自己的元素:inta[]=newint[10];for(inti=0;i<a.length;i++){a[i]=i;System.out.print(a[i]+"");}3、数组元素的使用

数组可以通过下标访问自己的元素:294、确定数组的大小为了获得数组的大小,可以使用下面的代码:

数组名.length;注意,不能在length后面加一个圆括号(),否则造成错误,因为length不是一个方法。4、确定数组的大小为了获得数组的大小,可以使用下面的代码:302.4.2多维数组的应用在Java中,多维数组(multidimensionalarrays)是由若干行和若干列组成数组。在人们工作生活与学习中,要使用二维表格、矩阵、行列式等,都可以表示成多维数组。例如:intD[][]=newint[3][4];2.4.2多维数组的应用在Java中,多维数组(mu31该语句声明并创建了一个3行4列的数组D。这个数组在逻辑上可以表示成一个int类型的矩阵。

也就是说,这个数组在逻辑上可以表示为:D[0][0]D[0][1]D[0][2]D[0][3]D[1][0]D[1][1]D[1][2]D[1][3]D[2][0]D[2][1]D[2][2]D[2][3]该语句声明并创建了一个3行4列的数组D。这个数组在逻辑上可以322.5向量1、向量(Vector)向量(Vector)是Java.util包(java.util包是专门保存各种常用工具类的类库)提供的一个工具类。它有类似数组的顺序存储的数据结构,但是具有比数组更强大的功能。2.5向量1、向量(Vector)332、创建向量对象Vector类有三个构造函数:(1)Vector():构造一个空向量。(2)Vector(inti):用指定的初始化容量构造一个空向量。(3)Vector(inti,intj):用指定的初始化容量i和容量增量j构造一个空向量。下面的语句就利用构造函数创建了一个向量序列:Vectorv1=newVector(100,10);2、创建向量对象Vector类有三个构造函数:34向量的常用方法向量的常用方法352.6字符串的简单介绍1、字符串声明与创建下面是声明并创建字符串的语句:Stringstr;str="thisisaStirng.";也可以将上面二条语句合并为一条语句:Stringstr="thisisaString.";2.6字符串的简单介绍1、字符串声明与创建362、字符串操作2、字符串操作37(1)求字符串的长度例:Stringstr1="Hello!";Stringstr2="你身体好吗?";System.out.println(str1.length());System.out.println(str2.length());(1)求字符串的长度例:38(2)比较两个字符串String类中有三个方法可以比较两个字符串是否相同。publicintcompareTo(Stringstr);publicbooleanequals(Objectobj);publicbooleanequalsIgnoreCase(Stringstr);这里需要特别说明,比较二个数值x、y是否相等,我们使用x==y。而比较二个字符串相等则不能使用“==”来比较。请看下面的程序段:(2)比较两个字符串String类中有三个方法可以比较两个39(3)字符串与数值的转换

字符串str转换为整型:intx=Integer.paresInt(str);字符串str转换为float型:floatn=Integer.paresFloat(str);例如:Stringstr=String.valueOf(123.4);(3)字符串与数值的转换

字符串str转换为整型:40(4)字符串与字节数组的转化要将一个字符串转化为字节数组,可用下列方法:byted[]=字符串对象.getBytes();反之,要将一个字节数组转化为字符串,则用字符串的构造方法就能达到目的。String(byte[],intoffset,intlength)(4)字符串与字节数组的转化要将一个字符串转化为字节数组,413、使用StringTokenizer字符分析器有时我们需要将字符串分解成可被独立使用的单词,这些单词叫做语言符号。当我们分析一个字符串并将字符串分解成可被独立使用的单词时,可以使用java.util包中的StringTokenizer类。StringTokenizer对象被称为字符分析器。其构造方法为:StringTokenizer(Stringstr,Stringdelim)将指定字符串str按字符delim为分隔符进行分解。3、使用StringTokenizer字符分析器有时我们需42StringTokenizer类的常用方法:hasMoreTokens():检测字符串中是否还有语言符号,若有语言符号就返回true,否则返回false。nextToken():逐个获取字符串中的语言符号。countTokens():计算调用了nextToken()方法的次数,用于统计字符串中的语言符号的个数。StringTokenizer类的常用方法:434、main()方法中的参数在Java应用程序中必须要有publicstaticvoidmain(Stringargs[])主方法。Main()方法中的参数是一个字符串数组args[],这个数组的元素args[0],args[1],…,args[n]的值都是字符串。args是命令行参数,其功能是接收运行程序时通过命令行输入的参数。其一般形式为:java类文件名字符串1字符串2…字符串n其中,类文件名和各字符串间用空格分隔。4、main()方法中的参数在Java应用程序中必须要有p44精品课件!精品课件!45精品课件!精品课件!46本章结束!本章结束!47本章内容提要1、基本数据类型2、表达式和运算符3、程序控制语句4、数组5、向量(简介)6、字符串本章内容提要1、基本数据类型482.1数据类型程序=算法+数据结构+程序设计方法+语言工具和环境。之所以有数据类型,就是因为计算机存储不同数据类型的方式和空间不同。2.1数据类型程序=算法+数据结构+程序设计方法+语言工具49数据类型分类Java定义了8个基本数据类型:字节型,短整型,整型,长整型,字符型,浮点型,双精度型,布尔型。它们分为4组:整数型(byte,short,int,long)浮点数型(float,double)字符型(char)布尔型(boolean)数据类型分类Java定义了8个基本数据类型:字节型50数据类型的分类数据类型的分类51【例2-1】计算二个整数的和:classExample2_1{publicstaticvoidmain(Stringargs[]){intx,y,sum;//变量声明x=3;y=5;sum=x+y;//求和System.out.println("二数之和为:"+sum);}}在Java中,使用变量要遵守“先声明后使用”的原则。

【例2-1】计算二个整数的和:classExample252类型转换自动转换

需要满足两个条件:1、类型相容;2、目标数据类型比原数据类型分配的内存空间大(即由低到高)。强制转换

发生在相容数据类型之间(即精度由高到低)。语法形式: (目标类型)值基本数据类型按精度从“低”到“高”的顺序为:byteshortintlongfloatdouble类型转换自动转换强制转换基本数据类型按精度从“低”到“高”的532.2表达式和运算符表达式是由运算符、操作数和方法调用按照语言的语法构造而成的符号序列。表达式可用于计算一个公式,为变量赋值以及帮助控制程序执行流程。2.2表达式和运算符表达式是由运算符、操作数和方法调用按照542.2.1表达式与运算符只有一个运算对象的运算符称为一元运算符。例如++x是一个一元运算符,它是对运算对象x自增加1。++x,--x:使用X之前,先使X的值加1(或减1);X++,X--:使用X之后,再使X的值加1(或减1)设X=5则Y=++XY的值为6;Y=X++Y的值为5,而X为6。2.2.1表达式与运算符只有一个运算对象的运算符称为55我们可以将运算符分成以下几类:算术运算符;关系和条件运算符;移位和逻辑运算符;赋值运算符;其他的运算符。我们可以将运算符分成以下几类:562.2.2算术运算符Java语言支持所有的浮点型和整型数进行各种算术运算。这些运算符为+(加)、-(减)、*(乘)、/(除)以及%(取模)。算术运算符的使用基本上与加减乘除一样,也是先乘除后加减,必要时加上括号表示运算的先后顺序。例如这个程序代码会在命令行模式下显示:System.out.println(1+2*3);2.2.2算术运算符Java语言支持所有的浮点型和整型数572.2.3关系与逻辑运算符2.2.3关系与逻辑运算符58条件运算符条件运算符592.2.4位运算符位运算符是对操作数以二进制位为单位进行的操作和运算,其结果均为整型量。2.2.4位运算符位运算符是对操作数以二进制位为单位进行60移位和逻辑运算符移位和逻辑运算符61右移运算符“>>”将一个数的二进制位序列右移若干位,移出右端的低位被舍弃,最高位则移入原来高位的值。例如:a=00110111,则a>>2=00001101b=11010011,则b>>2=11110100左移运算符“<<”将一个数的二进制位序列左移若干位,高位左移后溢出舍弃,不起作用。右移运算符“>>”将一个数的二进制位序列右移若干位,移出右端62当移位运算符通过对运算对象左移位或者右移位来对数据执行位操作时,一个数每左移1位,相当于这个数乘以2,每右移1位,相当于除以2。例如,设x=8,则x<<1表示左移1位,相当于作x×21的运算,其结果为16。x<<2表示左移2位,相当于作x×22的运算,其结果为32。而x>>1表示右移1位,相当于作x÷21的运算,其结果为4,x>>2表示右移2位,相当于作x÷22的运算,其结果为2。一般地:x<<n表示左移n位,相当于作x×2n的运算,x>>n表示右移n位,相当于作x÷2n的运算。逻辑右移运算符“>>>”将一个数的二进制位右移若干位,右端移出的低位被舍弃,最高位也是补0,这点与“>>”不同。当运算对象为数字的时候,“&”运算符为每一个运算对象的每位执行按位与功能。它在两个运算对象的对应位为1时结果才为1,反之结果都为0。即:0&0=0、0&1=0、1&0=0、1&1=1当移位运算符通过对运算对象左移位或者右移位来对数据执行位操作63“|”运算符执行或操作。当两个操作对象都是数字的时候,或操作只要有一个运算对象为1结果就为1。即:0|0=0、0|1=1、1|0=1、1|1=1“^”运算符执行异或操作。异或是指当运算对象不同时结果才为1,否则结果为0。即:0^0=0、0^1=1、1^0=1、1^1=0“|”运算符执行或操作。当两个操作对象都是数字的时候,或64如果c=a^b那么a=c^b即用同一个数b对数a进行二次异或运算的结果仍是数a。如果c=a^b652.3程序控制语句语句分为五类:1、方法调用语句;2、表达式语句;3、复合语句;4、控制语句;5、package和import语句。2.3程序控制语句语句分为五类:662.3.2控制语句通常语句在程序中都是按先后顺序执行,控制语句用于改变程序执行的顺序。Java的控制语句有:if-else语句switch语句whiledo-while语句for语句跳转语句异常处理语句2.3.2控制语句通常语句在程序中都是按先后顺序执行,控制672.3.3if条件语句1、if语句的一般形式if(表达式){若干语句;}2.3.3if条件语句1、if语句的一般形式682.3.4switch语句switch语句是一个多分支选择语句,也叫开关语句。它可以根据一个整型表达式有条件地选择一个语句执行。switch(变量名称或表达式){case符合数字或字符:语句块1;break;case符合数字或字符:语句块2;break;default:语句块3;}2.3.4switch语句switch语句是一个多分支69switch语句首先计算条件表达式的值,如果表达式的值和某个case后面的常量数值相同,就执行该case里的若干条语句,直到break语句为止。若没有一个常量与表达式的值相同,则执行default后面的若干条语句。default是可有可无的,如果它不存在,并且所有的常量数值都和表达式的值不相同,那么switch语句就不进行任何处理。switch语句首先计算条件表达式的值,如果表达式的值和某个702.3.5循环语句1、for循环语句for循环语句的语法结构如下:

for(初始条件;终止条件;增量){循环体;}2.3.5循环语句1、for循环语句71图2.7循环语句的执行过程图2.7循环语句的执行过程722.4数组数组是一组相同类型变量的集合,可以使用共同的名字引用它。2.4数组数组是一组相同类型变量的集合,可以使用共同的名732.4.1创建和使用数组1、声明数组(1)声明一维数组的格式:数组元素的类型[]数组的名字;(2)声明二维数组的格式:数组元素的类型[][]数组的名字;2.4.1创建和使用数组1、声明数组742、创建数组一般来说,当创建数组的时候,使用new操作符,后面跟着数组元素的数据结构。然后将元素的数目用方括号[]括起来,其格式如下所示:

数组名字=new数组元素的类型[数组元素的个数];例:

a=newint[10];

2、创建数组一般来说,当创建数组的时候,使用753、数组元素的使用

数组可以通过下标访问自己的元素:inta[]=newint[10];for(inti=0;i<a.length;i++){a[i]=i;System.out.print(a[i]+"");}3、数组元素的使用

数组可以通过下标访问自己的元素:764、确定数组的大小为了获得数组的大小,可以使用下面的代码:

数组名.length;注意,不能在length后面加一个圆括号(),否则造成错误,因为length不是一个方法。4、确定数组的大小为了获得数组的大小,可以使用下面的代码:772.4.2多维数组的应用在Java中,多维数组(multidimensionalarrays)是由若干行和若干列组成数组。在人们工作生活与学习中,要使用二维表格、矩阵、行列式等,都可以表示成多维数组。例如:intD[][]=newint[3][4];2.4.2多维数组的应用在Java中,多维数组(mu78该语句声明并创建了一个3行4列的数组D。这个数组在逻辑上可以表示成一个int类型的矩阵。

也就是说,这个数组在逻辑上可以表示为:D[0][0]D[0][1]D[0][2]D[0][3]D[1][0]D[1][1]D[1][2]D[1][3]D[2][0]D[2][1]D[2][2]D[2][3]该语句声明并创建了一个3行4列的数组D。这个数组在逻辑上可以792.5向量1、向量(Vector)向量(Vector)是Java.util包(java.util包是专门保存各种常用工具类的类库)提供的一个工具类。它有类似数组的顺序存储的数据结构,但是具有比数组更强大的功能。2.5向量1、向量(Vector)802、创建向量对象Vector类有三个构造函数:(1)Vector():构造一个空向量。(2)Vector(inti):用指定的初始化容量构造一个空向量。(3)Vector(inti,intj):用指定的初始化容量i和容量增量j构造一个空向量。下面的语句就利用构造函数创建了一个向量序列:Vectorv1=newVector(100,10);2、创建向量对象Vector类有三个构造函数:81向量的常用方法向量的常用方法822.6字符串的简单介绍1、字符串声明与创建下面是声明并创建字符串的语句:Stringstr;str="thisisaStirng.";也可以将上面二条语句合并为一条语句:Stringstr="thisisaString.";2.6字符串的简单介绍1、字符串声明与创建832、字符串操作2、字符串操作84(1)求字符串的长度例:Stringstr1="Hello!";Stringstr2="你身体好吗?";System.out.println(str1.length());System.out.println(str2.length());(1)求字符串的长度例:85(2)比较两个字符串String类中有三

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论