1、本章内容提要本章内容提要1、基本数据类型、基本数据类型2、表达式和运算符、表达式和运算符3、程序控制语句、程序控制语句4、数组、数组5、向量(简介)、向量(简介)6、字符串、字符串2.12.1数据类型数据类型程序程序=算法算法+数据结构数据结构+程序设计方法程序设计方法+语言工具和环境。语言工具和环境。之所以有数据类型,就是因之所以有数据类型,就是因为计算机存储不同数据类型的方为计算机存储不同数据类型的方式和空间不同。式和空间不同。数据类型分类数据类型分类 Java定义了定义了8个基本数据类型:字节个基本数据类型:字节型,短整型,整型,长整型,字符型,型,短整型,整型,长整型,字符型,浮点型,
2、双精度型,布尔型。浮点型,双精度型,布尔型。它们分为它们分为4组:组:整数型(整数型(byte,short,int,long)浮点数型(浮点数型(float,double)字符型(字符型(char)布尔型(布尔型(boolean)数据类型数据类型的分类的分类【例例2-1】计算二个整数的和:计算二个整数的和:class Example2_1 public static void main(String args)int x,y,sum;/变量声明变量声明 x=3;y=5;sum=x+y;/求和求和 System.out.println(二数之和为:二数之和为:+sum);在在Java中,使用变量
3、要遵守中,使用变量要遵守“先声明后使用先声明后使用”的原的原则。则。类型转换类型转换自动转换自动转换需要满足两个条件:需要满足两个条件:1 1、类型相容;、类型相容;2 2、目标数据类型比原、目标数据类型比原数据类型分配的内存空间数据类型分配的内存空间大大(即由低到高即由低到高)。强制转换强制转换发生在相容数据类型发生在相容数据类型之间之间(即精度由高到低即精度由高到低)。语法形式:语法形式:(目标类型目标类型)值值基本数据类型按精度从基本数据类型按精度从“低低”到到“高高”的顺序为:的顺序为:byte short int long float double2.2 2.2 表达式和运算符表达式
4、和运算符表达式是由运算符、操作数和方法调用按照语言的语法构造而成的符号序列。表达式可用于计算一个公式,为变量赋值以及帮助控制程序执行流程。2.2.1 表达式与运算符表达式与运算符 只有一个运算对象的运算符称为一元运算符。例如+x是一个一元运算符,它是对运算对象x自增加1。+x,-x:使用使用X之前,先使之前,先使X的值加的值加1(或减或减1);X+,X-:使用使用X之后,再使之后,再使X的值加的值加1(或减或减1)设设X=5 则则 Y=+X Y的值为的值为6;Y=X+Y的值为的值为5,而而X为为6。我们可以将运算符分成以下几类:我们可以将运算符分成以下几类:算术运算符;算术运算符;关系和条件运
5、算符;关系和条件运算符;移位和逻辑运算符;移位和逻辑运算符;赋值运算符;赋值运算符;其他的运算符。其他的运算符。2.2.2 算术运算符算术运算符Java 语言支持所有的浮点型和整型数进行各种算术运算。这些运算符为+(加)、-(减)、*(乘)、/(除)以及%(取模)。算术运算符的使用基本上与加减乘除一样,也是先乘除后加减,必要时加上括号表示运算的先后顺序。例如这个程序代码会在命令行模式下显示:System.out.println(1+2*3);2.2.3 关系与逻辑运算符关系与逻辑运算符运算符运算符运算运算用法用法返回返回truetrue的情况的情况 大于大于x1 x2x1 x2x1x1大于大于
6、x2x2=不小不小于于x1 =x2x1 =x2x1 x1 大于或等于大于或等于x2x2 小于小于x1 x2x1 x2x1x1小于小于 x2x2=不大不大于于x1=x2x1 右移x n将x各位右移n位,左边按符号补0或补111110101左移x 无符号右移x n将x右移n位(无符号的),左边补000110101&与x&y将x,y按位与操作01010000|或x|y将x,y按位或操作11011111异或x y将x,y按位异或操作10001111位反 x将x各比特位按位取反00101001右移运算符“”将一个数的二进制位序列右移若干位,移出右端的低位被舍弃,最高位则移入原来高位的值。例如:a=001
7、10111,则 a2=00001101 b=11010011,则 b2=11110100左移运算符“”将一个数的二进制位序列左移若干位,高位左移后溢出舍弃,不起作用。当移位运算符通过对运算对象左移位或者右移位来对数据执行位操作时,一个数每左移1位,相当于这个数乘以2,每右移1位,相当于除以2。例如,设x=8,则x 1表示左移1位,相当于作x21的运算,其结果为16。x 1表示右移1位,相当于作x21的运算,其结果为4,x 2表示右移2位,相当于作x22的运算,其结果为2。一般地:x n表示右移n位,相当于作x2n的运算。逻辑右移运算符“”将一个数的二进制位右移若干位,右端移出的低位被舍弃,最高
8、位也是补0,这点与“”不同。当运算对象为数字的时候,“&”运算符为每一个运算对象的每位执行按位与功能。它在两个运算对象的对应位为1时结果才为1,反之结果都为0。即:0&0=0、0&1=0、1&0=0、1&1=1 “|”运算符执行或操作。当两个操作对象都是数字的时候,或操作只要有一个运算对象为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如果c=a b那么a=c b即用同一个数b对数a进行二次异或运算的结果仍是数a。2.32.3程序控制语句程序控制语句语句
9、分为五类:语句分为五类:1、方法调用语句;、方法调用语句;2、表达式语句;、表达式语句;3、复合语句;、复合语句;4、控制语句;、控制语句;5、package和和import语句。语句。2.3.2 控制语句控制语句通常语句在程序中都是按先后顺序执行,通常语句在程序中都是按先后顺序执行,控制语句用于改变程序执行的顺序。控制语句用于改变程序执行的顺序。Java的控制语句有:的控制语句有:if-else语句语句switch语句语句while do-while语句语句for语句语句跳转语句跳转语句异常处理语句异常处理语句2.3.3if条件语句条件语句1、if 语句的一般形式语句的一般形式 if(表达式
10、)(表达式)若干语句;若干语句;2.3.4 switch语句语句switch语句是一个多分支选择语句,也叫开关语句。它可以根据一个整型表达式有条件地选择一个语句执行。switch(变量名称或表达式)case 符合数字或字符:语句块1;break;case 符合数字或字符:语句块2;break;default:语句块3;switch语句首先计算条件表达式的值,如果表达式的值和某个case后面的常量数值相同,就执行该case里的若干条语句,直到break语句为止。若没有一个常量与表达式的值相同,则执行default后面的若干条语句。default是可有可无的,如果它不存在,并且所有的常量数值都和表
11、达式的值不相同,那么switch语句就不进行任何处理。2.3.5 循环语句循环语句1、for循环语句循环语句for循环语句的语法结构如下:循环语句的语法结构如下:for(初始条件;终止条件;增量)(初始条件;终止条件;增量)循环体循环体;图图2.7 循环语句的执行过程循环语句的执行过程2.4 数组数组数组是一组相同类型变量的集合,可以使用共同的名字引用它。2.4.1 创建和使用数组创建和使用数组 1、声明数组(1)声明一维数组的格式:数组元素的类型 数组的名字;(2)声明二维数组的格式:数组元素的类型 数组的名字;2、创建数组创建数组 一般来说,当创建数组的时候,使用 new 操作符,后面跟着
12、数组元素的数据结构。然后将元素的数目用方括号括起来,其格式如下所示:数组名字数组名字=new 数组元素的类型数组元素的类型数组数组元素的个数元素的个数;例:例:a=new int10;3、数组元素的使用、数组元素的使用数组可以通过下标访问自己的元素:int a=new int10;for(int i=0;ia.length;i+)ai=i;System.out.print(ai+);4、确定数组的大小、确定数组的大小为了获得数组的大小,可以使用下面的代码:数组名.length;注意,不能在length后面加一个圆括号(),否则造成错误,因为length不是一个方法。2.4.2 多维数组的应用多
13、维数组的应用 在Java中,多维数组(multidimensional arrays)是由若干行和若干列组成数组。在人们工作生活与学习中,要使用二维表格、矩阵、行列式等,都可以表示成多维数组。例如:int D =new int34;该语句声明并创建了一个3行4列的数组D。这个数组在逻辑上可以表示成一个int类型的矩阵。也就是说,这个数组在逻辑上可以表示为:D00 D01 D02 D03 D10 D11 D12 D13 D20 D21 D22 D232.5 向量向量1、向量(Vector)向量(Vector)是Java.util包(java.util包是专门保存各种常用工具类的类库)提供的一个工
14、具类。它有类似数组的顺序存储的数据结构,但是具有比数组更强大的功能。2、创建向量对象、创建向量对象Vector类有三个构造函数:(1)Vector():构造一个空向量。(2)Vector(int i):用指定的初始化容量构造一个空向量。(3)Vector(int i,int j):用指定的初始化容量i和容量增量j构造一个空向量。下面的语句就利用构造函数创建了一个向量序列:Vector v1=new Vector(100,10);向量的常用方法向量的常用方法 方方 法法说说 明明addElement(ObjectaddElement(Object objobj)在向量尾部添加指定组件,并在向量尾
15、部添加指定组件,并且长度加一。且长度加一。capacity()capacity()返回该向量的当前容量。返回该向量的当前容量。copyInto(ObjectcopyInto(ObjectanArrayanArray)把该向量的元素复制到指定数把该向量的元素复制到指定数组中。组中。elementAt(intelementAt(int index)index)返回指定下标处的组件。返回指定下标处的组件。firstElementfirstElement()()返回该向量的第一个元素。返回该向量的第一个元素。lastElementlastElement()()返回向量的最后一个元素。返回向量的最后一个
16、元素。size()size()返回该向量的元素数。返回该向量的元素数。insertElementAt(ObjectinsertElementAt(Object obj,intobj,int index)index)在指定的在指定的 index index 处插入作为处插入作为该向量元素的指定对象。该向量元素的指定对象。2.6 字符串的简单介绍字符串的简单介绍 1、字符串声明与创建下面是声明并创建字符串的语句:String str;str=this is a Stirng.;也可以将上面二条语句合并为一条语句:String str=this is a String.;2、字符串操作、字符串操作方
17、法说明length()取得字符串的字符长度equals()判断两个字符串中的字符是否等于toLowerCase()转换字符串中的英文字符为小写toUpperCase()转换字符串中的英文字符为大写(1)求字符串的长度)求字符串的长度例:String str1=Hello!;String str2=你身体好吗?;System.out.println(str1.length();System.out.println(str2.length();(2)比较两个字符串)比较两个字符串 String类中有三个方法可以比较两个字符串是否相同。public int compareTo(String str)
18、;public boolean equals(Object obj);public boolean equalsIgnoreCase(String str);这里需要特别说明,比较二个数值这里需要特别说明,比较二个数值x、y是否相等,是否相等,我们使用我们使用x=y。而比较二个字符串相等则不能使用。而比较二个字符串相等则不能使用“=”来比较。请看下面的程序段:来比较。请看下面的程序段:(3)字符串与数值的转换)字符串与数值的转换字符串str转换为整型:int x=Integer.paresInt(str);字符串str转换为float型:float n=Integer.paresFloat(s
19、tr);例如:String str=String.valueOf(123.4);(4)字符串与字节数组的转化)字符串与字节数组的转化 要将一个字符串转化为字节数组,可用下列方法:byte d=字符串对象.getBytes();反之,要将一个字节数组转化为字符串,则用字符串的构造方法就能达到目的。String(byte,int offset,int length)3、使用、使用StringTokenizer字符分析器字符分析器 有时我们需要将字符串分解成可被独立使用的单词,这些单词叫做语言符号。当我们分析一个字符串并将字符串分解成可被独立使用的单词时,可以使用java.util包中的String
20、Tokenizer类。StringTokenizer对象被称为字符分析器。其构造方法为:StringTokenizer(String str,String delim)将指定字符串str按字符delim为分隔符进行分解。StringTokenizer类的常用方法:hasMoreTokens():检测字符串中是否还有语言符号,若有语言符号就返回true,否则返回false。nextToken():逐个获取字符串中的语言符号。countTokens():计算调用了nextToken()方法的次数,用于统计字符串中的语言符号的个数。4、main()方法中的参数方法中的参数 在Java应用程序中必须要有public static void main(String args)主方法。Main()方法中的参数是一个字符串数组args,这个数组的元素args0,args1,argsn的值都是字符串。args是命令行参数,其功能是接收运行程序时通过命令行输入的参数。其一般形式为:java 类文件名字符串1字符串2 字符串n其中,类文件名和各字符串间用空格分隔。精品课件精品课件!精品课件精品课件!本章结束本章结束!