《JAVA第2章基础语法.ppt》由会员分享,可在线阅读,更多相关《JAVA第2章基础语法.ppt(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2章Java基础语法本章学习重点本章学习重点 lJava语言的基本语法。l变量的含义。l数据类型。l程序语句。2.1 引言引言 l每一个Java程序都是按照一定规则编写而成,这些规则一般称之为程序语法程序语法,只有语法正确了,程序才能通过编译系统的编译,进而也才能被计算机加以执行,本章重点介绍Java程序的基本概念和语法。符号l1 基本符号元素基本符号元素l2 关键字关键字l3 标识符标识符基本符号元素l字母:A-Z,a-z,美元符号$和下划线(_)。l数字:0-9。l算术运算符:+,-,*,/,%。l关系运算符:,=,=,!=,=。l逻辑运算符:!,&和|。l位运算符:,&,|,。l赋值运
2、算符:=。l其他符号:(),等等。关键字l关键字是Java语言本身使用的标识符,有其特定的作用。所有的Java关键字都不能被用作用户的标识符,关键字用英文小写字母表示。l初学者不必刻意记忆以上关键字,在以后的使用过程中,自然会逐步掌握的。标识符l本书中,标识符特指用户自定义的标识符。在Java语言中,标识符必须以字母、美元符号或者下划线打头,后接字母、数字、下划线或美元符号串。另外,Java语言对标识符的有效字符个数不做限定。l合法的标识符:a,b,c,x,y,z,result,sum,value,a2,x3,_a,$b等。l非法的标识符:2a,3x,byte,class,&a,x-value
3、,new,true,www等。标识符命名约定标识符命名约定 l(1)一般标识符定义应尽可能“达意”,如value,result,number,getColor,getNum,setColor,setNum等。l(2)final变量的标识符一般全大写,如finaldoublePI=3.1415。l(3)类名一般用大写字母打头,如Test,Demo。分隔符分隔符 l1 空白符空白符l2 可见分隔符可见分隔符空白符在程序中主要起间隔作用,没有其他的意义。空白符包括空格、制表符、回车和换行符等,程序各基本元素间通常用一个或多个空白符进行间隔。可见分隔符也是用来间隔程序基本元素的,这一点同空白符类似,但
4、是不同的可见分隔符有不同的用法。Java语言中,主要有六种可见分隔符 六种可见分隔符六种可见分隔符 l(1)“/”l(2)“/*”和“*/”l(3)“;”l(4)“,”l(5)“:”l(6)“”和“”常量常量 lJava程序中使用的直接量称为常量,它是用户在程序中“写死”的量,这个量在程序执行过程中都不会改变,也称最终量(用final标识的量)。布尔值布尔值 l布尔类型的取值范围就是true或false两个值,因而其常量值只能是true或false,而且true或false只能赋值给布尔类型的变量。l不过,Java语言还规定布尔表达式的值为0可以代表false,而1(或其他非0值)则表示tru
5、e。2整数值l整数常量在程序中经常出现,习惯以十进制表示,如10、100等。l如八进制或十六进制进行表示,用八进制时,需在数字前加0示意,而十六进制加0 x(或0X)标识,譬如010(十进制值8)、070(十进制值(7*8+0*8)56)、0 x10(十进制值16)、0Xf0(十进制值240)。l程序中出现的整数值默认分配四个字节的空间进行存储,即其数据类型为int,但当整数值超出int的取值范围(详见书上表3-1)时,系统则自动用八个字节空间来存储,即其类型为long型,若要系统将数值不大的整数常量也用long类型来存储,可以在数值后添加L(或小写l)后缀,如22L。3浮点数l浮点数即通常所
6、说的实数,它包含有小数点,可以用两种方式进行表示:标准式和科学记数式。l标准式是由整数部分、小数点和小数部分构成,如1.5、2.2、80.5等都是标准式的浮点数。l科学记数法由一个标准式跟上一个以10为底的幂构成,两者间需有E(或e)间隔开,如1.2e+6、5e-8和3E10等都是以科学记数法表示的浮点数。在程序中,一般浮点数的默认数据类型为double,即用8个字节空间来存放,当然也可以用F(或f)后缀来限定其类型为float,如55.5F、22.2f等。4字符常量l字符常量是指用一对单引号括起来的字符,如A、a、1、和*等,事实上,所有的可见Ascii码字符都可以用单引号括起来作为字符常量
7、。l此外,Java语言还规定了一些转义字符,这些转义字符以反斜杠打头,将其后的字符转变为另外的含义。l需要注意的是,反斜杠后的数字表示Unicode字符集的字符,而不是Ascii码字符集。转义字符描述xxx1到3位八进制数所表示的字符(xxx)uxxx1到4位十六进制数所表示的字符(xxxx)单引号字符双引号字符r回车反斜杠n换行b退格f换页t跳格Java转义转义字符表字符表5 字符串常量字符串常量 lSystem.out.println(Hello,welcome to Java programming.);上述语句中,用双引号括起来的就是字符串常量,再比如:lNicetomeetyou!l
8、Yt-(¥)l1n2n3(1、2、3各占据一行)l尤其需要注意的是,单个的字符加上双引号也是字符串常量,如:lN(字符串常量)lN(字符常量)l字符串常量一般都是用来给字符串变量赋初值的。变量变量 l在程序执行过程中其值可以改变的数据,称为变量。l每个变量都必须有对应的名称来标识它,即变量名。变量名由程序设计者自己命名,但要注意必须是合法的标识符。l另外,为了提高程序可读性,一般都会根据变量意义或特征取对应英文单词或简写等。l根据变量数据的特点,决定其数据类型,在Java中,一个变量只能属于某种确定的数据类型,并且在定义该变量时就要给出声明,这样就确定了该变量的取值范围,同时也确定了对该变量所
9、能执行的操作或运算。八种基本的数据类型八种基本的数据类型 l整型:byte、short、int、longl实型:float和doublel布尔型:booleanl字符型:char变量定义变量定义lbyteage;(存放某人的年龄)lshortnumber;(存放某大学人数)lchargender;(存放某人性别)ldoublebalance;(存放某帐户的余额)lbooleanflag;(存放布尔值)变量一经定义,系统将为其分配一定长度的内存存储空变量一经定义,系统将为其分配一定长度的内存存储空间,在程序中使用到该变量时,就需要在对应的内存中进间,在程序中使用到该变量时,就需要在对应的内存中进
10、行读数据或写数据,通常称这种操作为对变量的访问。行读数据或写数据,通常称这种操作为对变量的访问。final变量变量 lfinal变量的定义形式与普通变量一样,但其所起作用却是类似于前面讲的常量。l定义final变量的方式有两种:1 定义的同时初始化定义的同时初始化finaldoublePI=3.14;2 先定义后初始化先定义后初始化finaldoublePI;PI=3.14;提示提示l在程序设计时,一般建议将程序中多次要用到的常量值定义为final变量,这样在程序中就可以以final变量名来引用该常量值,以减少程序的出错概率,同时将来若常量值发生变化时也好调整。lfinal变量与普通变量的本质
11、区别是:后者在初始化后仍能对其进行赋值,而前者在初始化后就不能再被赋值。变量类型转换变量类型转换 l一般情况下,各种数据类型的变量间最好不要互相串用,但是在特定的情况下,存在进行变量类型转换的需要。l比如将一个int类型的值赋给long类型变量,或将一个double类型的值赋给float类型变量。前者的转换不会破环原有值,这种转换一般系统会自动进行,而后者的转换很可能会破环原有值,这种转换需要程序员在程序中明确指出,即进行强制转换。类型转换类型转换llonga=10;(常量10的默认类型为int,系统会自动自动将其转换为long类型并存至a中)lfloatf=11.5;shortb;b=(sh
12、ort)f;(强制强制转换)2.2基本数据类型数据数据类类型名称型名称数据数据类类型型标识标识占据存占据存储储空空间间取取值值范范围围布布尔尔型型boolean1bittrue(非(非0),或),或false(0)整型整型byte8bits(1Byte)-128 +127short16bits(2Bytes)-32768 +32767int32bits(4Bytes)-21亿亿 +21亿亿long64bits(8Bytes)-9.21018 +9.21018浮点型浮点型float32bits(4Bytes)7位精度位精度double64bits(8Bytes)15位精度位精度字符型字符型cha
13、r16bits(2Bytes)Unicode字符字符布尔型布尔型 l布尔类型用关键字boolean来标识,其取值范围就是:true(逻辑真)和false(逻辑假),是最简单的数据类型。l布尔类型的数据可以参加逻辑运算,并构成逻辑表达式,其结果也是布尔值,常用来作为分支、循环结构中的条件表达式。boolean flag1=true;boolean flag2=35;boolean flag3=1;整型整型 l1bytel2shortl3intl4long【例2-1】数据溢出演示。public class Test public static void main(String args)byte
14、a=20;short b=20000;short c=200000;System.out.println(清华大学的院系数量:+a);System.out.println(清华大学的在校生人数:+b);System.out.println(海淀区高校在校生总人数:+c);【例2-2】演示常量的不同进制表示。public class Test public static void main(String args)byte a=10;/十进制 short b=010;/八进制 int c=0 x10;/十六进制 System.out.println(a的值:+a);System.out.prin
15、tln(b的值:+b);System.out.println(c的值:+c);浮点型【例2-3】演示单精度浮点型的使用。public class Test public static void main(String args)float pi=3.1415f;float r =6.5f;float v =2*pi*r;System.out.println(该圆周长为:+v);【例2-4】演示双精度浮点型的使用。public class Test public static void main(String args)double r =6.5;double v =2*pi*r;System.
16、out.println(该圆周长为:+v);字符型字符型 lJava语言用Unicode字符集来定义字符型,一个字符占用两个字节的存储空间,这与C/C+不同。l前面已经介绍过字符常量,下面再来看看字符型的变量定义:charch;/定义字符型变量chch=1;/给ch赋初值为1l字符型变量在程序常被用作代号,比如ch为1代表成功,为0代表失败;为F表示女性,为M表示男性等。在具体进行程序设计时,应注意灵活应用。2.3程序语句l赋值语句赋值语句 l条件表达式条件表达式l运算运算l复合语句复合语句赋值语句l赋值语句的一般形式为:variable=expression;l在这里“=”不是数学中的等号,
17、而是赋值运算符,其功能是将右边表达式的值赋(即传递或存入)给左边的变量,例如:linti,j;lcharc;li=100;lc=alj=i+100;li=j*10;自增自减语句自增自减语句l特别地,对于形如i=i+1;这样的赋值语句,可以将其简写为i+;或者+i,并称之为自增语句,同样还有自减语句i-;或者-i;,它们等价于i=i-1;语句。l我们把“+”和“-”叫做自增和自减,它们写在变量的前面与后面有时是有区别的!【例2-5】自增赋值语句。public class Test public static void main(String args)int i,j,k=1;i=k+;j=+k;
18、System.out.println(i=+i);System.out.println(j=+j);复合赋值语句的复合赋值运算复合赋值语句的复合赋值运算 l+=加后赋值l-=减后赋值l*=乘后赋值l/=除后赋值l%=取模后赋值【例2-6】复合赋值语句。public class Test public static void main(String args)int i=0,j=30,k=10;i+=k;/相当于 i=i+k;j-=k;/相当于j=j-k;i*=k;/相当于i=i*k;j/=k;/相当于j=j/k;k%=i+j;/相当于k=k%(i+j);System.out.println(i
19、=+i);System.out.println(j=+j);System.out.println(k=+k);条件表达式l条件表达式的一般形式为:Exp1?Exp2:Exp3l首先计算Exp1,当表达式Exp1的值为true时,计算表达式Exp2并将结果作为整个表达式的值,当表达式Exp1的值为false时,计算表达式Exp3并将结果作为整个表达式的值。【例2-7】条件表达式示例。public class Test public static void main(String args)int i,j=30,k=10;i=j=k*3?1:0;System.out.println(i=+i);运
20、算(1)算术运算lJava的算术运算有加(+)、减(-)、乘(*)、除(/)和取模(%)运算。l3/2结果为1l3/2.0结果为1.5l5%2结果为1l11%3结果为2(2)关系运算)关系运算关系运算的结果为布尔值,即true或falseJava语言中共有六种关系运算:(大于)=(大于等于)(小于)k;b2=i=j;b3=j/3!=k;System.out.println(b1=+b1+,b2=+b2+,b3=+b3);(3)逻辑运算)逻辑运算lJava语言中有三种逻辑运算:&(与)、|(或)、!(非),参与逻辑运算的操作数为布尔类型值,最终结果也为布尔值。xyx&yx|y!xtruefals
21、efalsetruefalsetruetruetruetruefalsefalsetruefalsetruetruefalsefalsefalsefalsetrue(4)位运算)位运算l位运算指的是对二进制位进行计算,其操作数必须为整数类型或者字符类型。运算符运算符用法用法功能功能&ope1&ope2按位与按位与|ope1|ope2按位或按位或 ope1按位取反按位取反ope1 ope2按位异或按位异或ope1ope1ope2带带符号右移符号右移ope1ope2不不带带符号右移符号右移复合语句复合语句 l语句是程序的基本元素,任何单独的一条语句都可以称之为简单语句,而复合语句是指由一条或多条的
22、语句构成的语句块。l在Java语言中,复合语句是用大括号括起来的,可以将其从整体上看成是一条语句,复合语句主要用于流程控制结构中,如分支,循环等,它体现的是程序的一种结构性或者说是局部性,复合语句所包含的语句们要么都执行,要么都不执行,或者都被重复执行若干次。2.4应用举例【例2-9】分析以下程序有哪些错误。public class Test public static void main(String args)short i,j;i=50000;j =2.5;System.out.println(i=+i+,j=+j);l【例2-10】假设整型变量x的当前值为2,则复合赋值语句x/=x+1执行后x值为多少?【例2-11】分析以下程序段的功能。int x,y,z,result;/x,y,z分别被赋值result=(xy)?x:y;result=(resultz)?result:z;作业作业l1l2l3l4l6l8l9