java语言基础知识.ppt_第1页
java语言基础知识.ppt_第2页
java语言基础知识.ppt_第3页
java语言基础知识.ppt_第4页
java语言基础知识.ppt_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

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

文档简介

第二章java语言基础知识,1,本章知识点,本章主要讲述Java语言的基本语法知识,包括基本数据类型,运算符和表达式,控制语句。通过本章的学习,可编写简单的Java应用程序,学习目标、学习建议,学习目标本讲主要讲述java编程语言的基本语法知识简单数据类型;运算符和表达式;控制语句;break语句与return语句的使用与区别数组。学习指南同任何一种编程语言一样,应深刻理解语法知识点的概念,本章重点,重点深刻理解各知识点的基本概念,掌握java的语法规范;熟练使用各种数据类型;熟练使用各种控制语句;,211标识符和保留字,标识符程序员对程序中的各个语法单位命名时使用的命名记号称为标识符(identifier)Java语言中,标识符是以字母,下划线(_),美元符($)开头的一个字符序列,后面可以跟字母,下划线,美元符,数字;大小写敏感如,no1,My_name,_a0$,$Mon为合法的标识符;而2m、-My_n,class为非法的标识符,211标识符和保留字,保留字具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字(reservedword),也称为关键字,下面列出了java语言中的所有保留字java语言中的保留字均用小写字母表示,class,int,char,double,boolean,float,long,whilefor,return,continue,if,else,case,break,byte,short,do,false,catch,default,extends,final,finally,import,implements,interface,abstract,instanceof,length,native,new,null,package,private,protected,public,switch,synchronized,static,super,try,true,this,throw,throws,threadsafe,transient,void,,211标识符和保留字,注释Java运行在源程序中添加注释,以增加程序的可读性,系统不会对注释内容编译java允许三种注释单行注释以“/”开始,到行末多行注释以“/*”开始,以“*/”结束/*单行或多行*/文件注释产生一个HTML文档,以“/*”开始,以“*/”结束/*文件注释*/,211标识符和保留字,语句,分号,块语句是程序中最小的单位;分号分隔语句;块由大括号包含;,211编码体制,1.类名:每个词的首字母大写;2.方法:首个词的首字母小写,其余词首字母大写3.常量:每个字母都大写,每个词用下划线分开4.变量:所有字母小写;,2.1.2数据类型,java中的数据类型划分java语言的数据类型有基本类型和复合(引用)类型(reference):基本数据类型:整数类型(Integer):byte,short,int,long浮点类型(Floating):float,double字符类型(Textual):char布尔类型(Logical):boolean复合类型(reference):Array数组Class类Interface接口,2.1.3变量与常量,变量变量是Java程序中的基本存储单元,其定义包括变量名、变量类型和作用域:变量名是一个合法的标识符,不能为保留字,变量名应具有一定的含义,以增加程序的可读性;变量类型可以为上面所说的任意一种数据类型;变量使用前,先声明,在赋值。比如:publicintsum;,变量与常量,常量程序运行期间不改变的量,Java中通过final命令把一个标识符定义为常量Java中的常量是有类型的;常量的声明方式与变量的声明基本一样,只需在前面加上关键字final,如finalintMAX=100;finalfloatPI=3.1415926f;Java约定常量标示符全部用大写程序中使用常量有两个好处:增加程序可读性增强可维护性,2.2基本数据类型,整型整型数就是整数,Java中的整型数都是有符号数:正整数、零、负整数,整型常量整型常量即整常数,分为一般整型常量和长整型常量,分别用32位和64位的数据存储长度表示。Java整常数有三种表示方法:十进制整数:使用多个数字09表示,首位不能为0(整数0除外)如:123,456,0,整型常量,八进制整数:以0开头,后面跟数字07中的数0123表示十进制数83010表示十进制数8,十六进制整数:以0 x或0X开头,后面跟数字09中的数或af中的小写字母或AF中的大写字母,其中,af或AF分别表示十进制数1015,如:0 x123表示十进制数2910X11表示十进制数17,整型,整型变量:整型变量的类型有byte、short、int、long四种,下表列出各类型所在内存的位数和其表示范围。int类型是最常使用的一种整数类型,但对于大型的计算,超出int类所表示的范围,这时要使用long类型整数类型与c/c+不同,其内存长度是固定的,S,整型,在编程中最常使用的整数类型是int,在实际编程中可根据每种数据类型所表示的范围灵活选择Java的整数类型表示的是有符号数并且每种数据类型的存储长度是固定的,不会因平台或系统不同而变化,为Java程序的跨平台提供了保障。,【例2-1】整型变量的定义与使用,publicclasstestIntDemopublicstaticvoidmain(Stringargs)bytei=012;/八进制bytej=12;/十进制bytek=0 x12;/十六进制intx=123;longy=123L;System.out.println(i=+i+j=+j+k=+k);System.out.println(x=+x+y=+y);,”+”是字符串的连接符号,基本数据类型,浮点型(实型)数据浮点数就是数学中的实数,Java中的浮点数有float和double两种类型表示了不同实数的存储长度与精度浮点型常量:十进制数形式数字和小数点组成,必须有小数点,如0.123,1.23,123.0科学计数法形式如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的数必须为整数float型的值,必须在数字后加f或F,如1.23f,基本数据类型,在默认的情况下浮点常量为double类型表示存储长度是64位如果要表示float类型的常量,须在数字后面加f或F,如常量12.3表示的是double,存储长度是64位;常量12.3F表示是float类型的常量,存储长度是32位;,基本数据类型,浮点型(实型)数据浮点型变量有float和double两种类型,其存储长度与表示的数据范围如表2-2所示。,【例2-2】浮点型变量的定义与使用,publicclasstestFloatDemopublicstaticvoidmain(Stringargs)floati=12.3f,j=12.3f;floatk=i*j;doublex=12.3,y=12.3;doublez=i*j;System.out.println(i=+i+j=+j+i*j=+k);System.out.println(x=+x+y=+y+x*y=+z);,”+”是字符串的连接符号,基本数据类型,字符类型char字符常量是用单引号括起来的一个字符,如a,A;与C/C+不同,Java中的字符型数据是16位无符号型数据,它表示Unicode集,不仅仅是ASCII集;与C、C+相同,Java也提供转义字符,以反斜杠()开头,将其后的字符转变为另外的含义:ddd1到3位8进制数据所表示的字符(ddd)uxxxx1到4位16进制数所表示的字符(xxxx)单引号字符、反斜杠字符r回车n换行t横向跳格b退格,简单数据类型,字符类型char字符变量的类型为char,它在机器中占16位,其范围为065535。字符型变量的定义如:charc=a;/指定变量c为char型,且赋初值为a与C、C+不同,Java中的字符型数据不能用作整数,因为Java不供无符号整数类型。但是同样可以把它当作整数数据来操作:例如:intthree=3;charone=1;charfour=(char)(three+one);/four=4在计算加法时,字符型变量one被转化为整数相加,最后把结果又转化为字符型。,简单数据类型,字符串类型字符串与C、C+相同,Java的字符串常量是用双引号(“”)括起来的一个字符;如“Thisisastring.”;但不同的是,Java中的字符串常量是作为String类的一个对象来处理,而不是一个数据;有关类String,将在后面讲述,【例2-3】字符型变量的定义与使用,publicclasstestCharpublicstaticvoidmain(Stringargs)charch1=a,ch2=A;charch3=101;/编码为八进制数101的字符charch4=;/转义字符表示双引号charch5=中;/输出中文字符System.out.println(ch1);System.out.println(n);/输出换行字符System.out.println(ch2);System.out.println(ch3);System.out.println(ch4);System.out.println(ch5);,2.2基本数据类型,布尔类型boolean布尔型数据只有两个值true和false,且它们不对应于任何整数值。布尔型变量的定义如:booleanf1,f2=false;,publicclassSimpleTypespublicstaticvoidmain(Stringargs)inta=10,b=20;booleanx,y,z;x=(ab);y=(a!=b);z=(a=b);System.out.println(“x=+x+”n”);System.out.println(“y=+y+”n”);System.out.println(“z=+z+”n”);,2.3变量赋初值,在实际的编程中需要程序员为一些变量赋初值。Java语言允许在定义变量的同时为变量赋值,也就是变量的初始化。如,,inti=123;/定义变量i为整型变量,初值为123floatf=1.23f;/定义变量f为浮点型变量,初值为1.23charch=A;/定义变量f为字符型变量,初值为A,在定义多个同类型变量的同时可只为部分变量赋初值。如,inti,j=10,k=20;定义三个整型变量j,j,k,并对j,k初始化,需要注意的是,如果对几个同类变量赋同一个常量值,应写出inti=10,j=10,k=10;而不是inti=j=k=10;,简单数据类型例子,publicclassAssignpublicstaticvoidmain(Stringargs)intx,y;/定义x,y两个整型变量floatz=1.234f;/指定变量z为float型,且赋初值为1.234doublew=1.234;/指定变量w为double型,且赋初值为1.234booleanflag=true;/变量flag为boolean型,且赋初值为truecharc;/定义字符型变量cStringstr;/定义字符串变量strStringstr1=“Hi”;/指定变量str1为String型,且赋初值为Hic=A;/给字符型变量c赋值Astr=“bye”;/给字符串变量str赋值“bye”x=12;/给整型变量x赋值为12y=300;/给整型变量y赋值为300.,简单数据类型的使用与c语言没有本质的区别,2.4基本数据类型优先关系及相互的转换,自动类型转换整型、实型、字符型数据混合运算,同类型的数据先转化为同一类型,然后进行运算;转换从低级到高级,如下图:,2.4各类数值型数据间的混合运算,不发生不安全的自动类型转换与c/c+不同,java不会发生不安全的数据类型转换,即不会自动把精度高的数据类型向精度低的数据类型转换,比如;,publicclassstpublicstaticvoidmain(Stringargs)inti;floatf=32.4f;i=f;System.out.println(ni=+i+n);,编译时会提示错误:possiblelossofpresicison,2.4各类数值型数据间的混合运算,强制类型转换高级数据要转换成低级数据,需用到强制类型转换,如:inti;byteb=(byte)i;/把int型变量i强制转换为byte型可能会导致溢出或精度的下降,最好不要使用,publicclassstpublicstaticvoidmain(Stringargs)intx=(int)45.0+(int)45.9;System.out.println(nx=+x+n);,2.5运算符与表达式,在程序中对各种类型的数据进行加工处理的过程就是运算表示各种不同运算的符号称为运算符;参与运算的数据称为操作数;按操作数的数目来分,如下所示:一元运算符:,等二元运算符:如,*,/等三元运算符:?:,2.5.1赋值,赋值运算“=”是赋值运算符,通过赋值表达式把表达式的值赋值给变量,赋值运算的一般格式:=赋值表达式的求解过程:先计算出赋值号“=”右侧表达式的值,然后赋值给赋值号左侧的变量,如,inta,b;a=4;为变量a赋值b=(a+1)*10;求解(a+1)*10的值为50,然后赋值给变量b,使用赋值表达式要注意的问题,赋值表达式的值赋值表达式本身就是一个表达式,该表达式的值就是赋值号左侧变量获得的值。,赋值表达式运算顺序从右到左赋值表达式本身就是一个表达式,该表达式的值就是赋值号左侧变量获得的值如何理解下面的赋值语句:intx,y,z;x=y=z=10;上面的赋值表达式相当于x=(y=(z=10),使用赋值表达式要注意的问题,正确使用赋值表达式在赋值表达式中出现的变量必须已经定义,否则编译时会出错,假设,变量i没有定义,而直接使用下面的赋值语句,i=4;/编译时出错,i未定义另外,赋值号右侧表达式的必须有确定的值,如,inti;i=(j+1)*10;/编译出错,因为j未定义,使用赋值表达式要注意的问题,赋值相容在赋值表达式中,如果参与运算的表达式与变量的类型相同,可以赋值;如果类型不同,有两种情况,赋值相容如果变量的类型比表达式值的类型精度高,系统会自动将表达式的值转化为与变量相同的类型,称为赋值相容,如,longbigValue=89L;类型相同,可以赋值longbigValue=3;3是int,赋值相容,3自动转化为long然后赋值,使用赋值表达式要注意的问题,赋值不相容与C/C+不同,如变量类型的精度低于表达式值的类型,为了避免发生数据精度损失,系统不会自动把表达式值的类型转化为变量类型,编译程序产生编译错误“可能损失精度错误”,如,inti=12.34;赋值不相容,编译出错,因为12.34是double类型赋值不相容时,要使用“强制类型转换”,如,inti=(int)12.34;强制类型转换,把double类型的值12.34强制转换为int类型的值12,然后赋值给i,在进行强制类型转换时会损失精度,使用时要慎重。,2.5.2扩展赋值运算符,在赋值号“=”前面加上其他运算符,就构成了扩展赋值运算符。如在赋值号“=”前加上“+”运算符,就构成了扩展赋值运算符“+=”,其用法如下,inti;i+=10;/相当于i=i+10i*=10;/相当于i=i*10扩展赋值表达式i+=10相当于i加10,然后再赋值给i,再如,inti,j=5;i+=(j+10);/相当于i=i+(j+10),2.5.2扩展赋值运算符,所有的二元(双目)运算符,都可以添加在赋值号“=”前构成扩展赋值运算符。Java共有11个扩展赋值运算符,它们是:+=,-=,*=,/=,%=,m=i+;/相当于m=i,i=i+1,则m=10,i=11n=+i;/相当于i=i+1,n=i,则m=11,i=11自加自减运算符只能作用在变量上,如:intx=10,y;y=+(y*10);/错误,+不能作用在表达式上,2.5.3运算符,二元运算符+(加),(减),*(乘),/(除),%(取余)需要注意:与C/C+不同,对取模运算符%来说,其操作数可以为浮点数7/2=3/操作数都是整数,整除7.0/2=3.5/除法7%2=1/余数为整7.0/2=1.0/余数为浮点数-7%2=-1/符号与被除数相同7%-2=1,2.5.4关系运算符,关系运算符用来比较两个值之间的“关系”返回布尔类型值true或false,而不是C、C+中的1或0;关系运算符都是二元运算符,共有6个关系运算符:大于(),小于(=)小于等于(,=,j!=aj)!=(aa+b等价于i(a+b)f=ai+j等价于f=(ai+j),2.5.5逻辑运算符,逻辑运算符用来连接关系表达式形成逻辑表达式,逻辑运算只能处理布尔值,运算结果是布尔类型值true或false;Java中的逻辑运算符共有六个:inti=10,j=10,ii=10,jj=10;x=true|(+i10);y=true,【例2-11】逻辑运算符举例,本例演示了逻辑运算符以及逻辑(条件)运算中的短路计算,2.5.6位运算符,位运算符用来对二进制数的位进行操作,操作数只能为整型和字符型数据(右移),(0填充右移)b=00111001;则有如下结果:a3=a3=ab=a与)运算符执行一个右移位(带符号),左边按符号位补0或1,例如:inta=16,b;b=a2;/b=4运算符同样是执行一个右移位,在带符号的右移()中,右移后左边留下的空位中添入的是原数的符号位(正数为0,负数为1);在不带符号的右移()中,右移后左边留下的空位中添入的一律是0,如a=10011101;b=00111001;有如下结果:a3=11110011;a3=00010011;,2.5.6位运算符,位运算符用来对二进制数的位进行操作,操作数只能为整型和字符型数据(左移),(0填充右移)(同为0,异为1),2.5.7条件运算符,条件运算符?在Java语言中,三目条件运算符(?:)与C语言中的使用规则是完全一致的,使用的形式是:x?y:z;规则是:先计算表达式x的值,若x为真,则整个三目运算的结果是表达式y的值;若x为假,则整个三目运算的结果是表达式z的值,如:inta=3,b=4;intmax=ab?a:b;/max的值为4intx=-3,sign;sign=(x0?1:(xb)max=a;elsemax=b;if(cmax)max=c;System.out.println(max=+max);min=ab?a:b;min=cmin?c:min;System.out.println(min=+min);,有时条件语句可以代替if语句,Switch语句,switch语句switch语句(又称开关语句)是和case语句一起使用的,是多分支语句中,一般格式如下:switch(表达式)case判断值1:语句块1case判断值2:语句块2case判断值3:语句块3case判断值n:语句块ndefault:语句块n+1,如果表达式的值等于判断值i,则执行其后面的语句,否则执行default后的语句,Switch语句举例,publicclassex_switchpublicstaticvoidmain(Stringargs)intnum=1;switch(num)case0:System.out.println(zero);case1:System.out.println(one);case2:System.out.println(two);case3:System.out.println(three);default:System.out.println(DataError!);,【例2-14】输入03之间的一个整数,输出相应的英文单词,Switch语句与break语句,switch语句一般要与break语句结合,才能正确实现多分支break语句用来在执行完一个case分支后,使程序跳出switch语,即终止switch语句的执行。case子句只是起到一个标号的作用,用来查找匹配的入口从此处开始执行,对后面的case子句不再进行匹配,而是直接执行其后的语句序列;所以,在每个case分支后,要用break来终止后面的case分支语句的执行;在一些特殊情况下,多个不同的case值要执行一组相同的操作,可不用break,使用Switch语句要注意的问题,表达式回值类型必须是这几种类型之一:int,byte,char,short;case子句中的判断值必须是常量,而且所有case子句中的值是不同的;default子句是任选的,当表达式的值与任一case子句中的都不匹配时,程序执行default后面的语句;,使用Switch语句要注意的问题,如果表达式的值与任一case子句中的值都不配,且没有default子句,程序直接跳出switch语句;case分支中包括多个执行语句时,可以不用大括号括起;switch语句的功能可以用嵌套if语句实现,使switch语句更简炼,可读性强,执行效率提高;,publicclassWeek1publicstaticvoidmain(Stringargs)intscore=78;score=score/10;switch(score)case0:case5:System.out.println(“fail);break;case6:case7:System.out.println(“pass);break;case8:System.out.println(“good);break;case9:case10:System.out.println(“Excellent);break;default:System.out.println(DataError!);,【例2-15】输入一个成绩,输出该成绩所属的等级(059为“fail”,6079为“pass”,8089为“good”,90100为“Excellentgood”),循环结构是程序中一种重要的基本结构,是指在一定的条件下反复执行某段程序,被反复执行的这段程序称为“循环体”;Java语言中提供了三种循环语句有:while语句do-while语句for语句,2.7.3循环结构,三种循环结构,While语句,while语句格式:while(条件表达式)循环体;执行过程:求解条件表达式。如果其值为true,转2;否则转3执行循环体语句组,然后转1执行while语句后面的语句,进入循环之前,必须给相关的控制循环变量赋初值以保证循环控制表达式中的变量有确定的值;在循环体内必须要有修改循环控制变量值的语句,以保证循环达到结束条件,正常退出循环,While语句两个要素,do-while语句格式如下:do循环体语句;while(条件表达式);与while循环的不同在于:先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环;do-while循环至少要执行一次循环语句,do-While语句-举例,在3条循环语句中,for语句最为灵活,常常应用于循环次数已经确定的情况;一般格式:for(表达式1;表达式2;表达式3)循环体执行过程:先求解表达式1,表达式1只执行一次,一般是赋值语句,用于初始化变量;求解表达式2,若为假,则结束循环,为真执转3;执行循环体,执行表达式3;转回2,for语句,for语句举例,publicclassSum_forpublicstaticvoidmain(Stringargs)inti=1,n=10,s=0;for(i=1;i1;i-)s+=i;System.out.print(i+);System.out.println(i+=+(s+i);,【例2-16】求110的累加和,for(表达式1;表达式2;表达式3)循环体表达式1常用于说明循环变量、对一组变量进行初始化或赋值第一次循环的开头被执行,且只被执行一次;可以是被逗号隔开的多个赋值表达式,如:.inti,n,s;for(i=1,n=10,s=0;i=n;i+)s=s+i;.,for语句的表达式,for(表达式1;表达式2;表达式3)循环体表达式2用于循环控制的条件测试,相当于while循环控制语句中的条件在每次循环的开头被执行(首次循环时,首先执行表达式1,再执行表达式2),若其值为真,则执行循环体语句;否则,跳出循环若在第一次循环时该语句的值便为假,则循环体将一次也不被执行,for语句的表达式,for(表达式1;表达式2;表达式3)循环体表达式3在每次循环体执行后被执行,主要用于修改循环变量,从而使条件测试表达式表达式2值有可能发生改变,否则陷入死循环,for语句的表达式,break,continue和return语句break语句格式:breaklabel;label是程序中的“标号

温馨提示

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

评论

0/150

提交评论