《Java编程语言基础知识.ppt》由会员分享,可在线阅读,更多相关《Java编程语言基础知识.ppt(72页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2.Java编程语言基础知识重庆大学计算机学院 杨瑞龙CSC,Chongqing University主要内容o标识符和保留字o数据类型o类型转换o运算符和表达式o控制语句CSC,Chongqing University标识符o以字母,下划线(_),美元符号($,或者其它货币符号)开始的一个字母序列;后续字符可以是字母,数字,下划线,美元符,Unicode字符集中大于0 xC0的所有符号,运算符除外。o大小写敏感,没有最大长度限制o不能与保留字重名o实际编程序中,甚至标识符完全可以用中文,比如可以把一个变量的名字命名为nint 中文=1;CSC,Chongqing University标识符举
2、例o合法的标识符identifier userName User_Name _sys_val$changeo不合法的标识符2mailroom#classCSC,Chongqing University练习题Which declarations of identifiers are legal?A.$personsB.TwoUsersC.*pointD.thisE._endline CSC,Chongqing University保留字o具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字(reserved word),也称为关键字:o都是小写,比如true,false,null
3、等,不像c中都是大写的。o注意和c+的保留字的区别,增加了哪些,又去掉了哪些。o比如在java中没有sizeof运算符,因为数据类型的长度与平台无关。CSC,Chongqing University保留字2-1o用于数据类型的保留字byte short int long float double char booleano用于流程控制语句的关键字if else switch case default do while for break continueo方法、类型、变量的修饰关键字private public protected final static abstract synchroni
4、zed volatileCSC,Chongqing University保留字2-2o异常处理关键字try catch finally throw throwso对象相关关键字new extends implements class instanceof this supero字面值常量关键字false true nullo方法相关关键字return voido包相关关键字package importCSC,Chongqing University练习题Which of the following are Java keywords?1)NULL 2)new 3)instanceOf 4)we
5、ndCSC,Chongqing University注释o单行注释/注释内容o多行注释/*注释文本 */o文件注释文件注释用来产生一个Html文件,可以使用Jdk提供的工具程序JavaDoc从源程序中提取这种注释,为程序提供文档说明。javadoc能识别注释中用标记标识的一些特殊变量。文件注释以“/*”开头,遇到“*/”结束,在注释中每行以一个“*”开始。其格式如下。/*注释文本*注释文本*/CSC,Chongqing University数据类型划分数据类型数据类型基本类型基本类型引用类型引用类型数值类型数值类型字符类型字符类型(char)布布尔尔类类型型(boolean)整整数数类类型型(
6、byte,short,int,long)浮浮点点类类型型(float,double)类类(class)接接口口(interface)数组数组图图 2-1 Java语言的数据类型语言的数据类型CSC,Chongqing University数据类型o数据类型的分类n简单数据类型,复杂数据类型nbyte,short,int,long,float,doublenchar,booleannclass,interface,数组o数的范围,位长o不支持c/C+中的指针类型,结构类型(struct)、联合类型(union),枚举类型(enum)CSC,Chongqing University常量,变量o常量
7、用文字串表示,比如 3,a等o通过final定义常量,final typeSpecifier varName=value,varName=value;如 final int i0;o变量是java中的基本存储单元,包括变量名,类型,作用域等。int i0,j1;o局部变量,类变量,方法参数,例外处理参数等。CSC,Chongqing University简单数据类型boolean类型o布尔型数据只有两个值true和false,且它们不对应于任何整数值布尔型变量的定义如:boolean b=true;boolean a=false;CSC,Chongqing University简单数据类型字符
8、类型charo字符常量字符常量是用单引号括起来的一个字符,如a,A;o字符型变量类型为char,使用Unicode字符集它在机器中占16位,16位无符号型数据,其范围为065535。字符型变量的定义如:char c=a;/*指定变量c为char型,且赋初值为a*/oJava也提供转义字符,以反斜杠()开头,P13,比如表示单引号,uxxxx,1到4位16进制表示的字符。char c=u0061;o如何从字符转换到它的编码,可以用jdk提供的工具native2ascii.exe程序。o举例,“中文”的unicode编码是:“u4e2du6587”CSC,Chongqing University简
9、单数据类型字符类型char(续)oJava中的字符型数据不能用作整数,因为java不提供无符号整数类型,但是同样可以把他当作整数数据来操作(因为发生了类型转换)。例如:int three=3;int one=1;char four=(char)(three+one);/four=4CSC,Chongqing University简单数据类型整型数据数据类型所占位数数的范围byte8-2727-1short16-215215-1int32-231231-1long64-263263-1在定义时,long型数据要加后缀l或者L。CSC,Chongqing University浮点型(实型)数据o实
10、型常量1.十进制数形式由数字和小数点组成,且必须有小数点,如0.123,.123,123.,123.02.科学计数法形式如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。CSC,Chongqing University浮点型(实型)数据o实型变量数据类型 所占位数数的范围float 323.4e038 3.4e038double 641.7e308 1.7e308o注意:定义float时,需加后缀f或FCSC,Chongqing University使用举例public class Test byte b=21;short s=256;int i=100000
11、;long l=0 xffL;double d=0.7e-3;boolean b=false;CSC,Chongqing University练习题Which of the following are legal statements?1)float f=1/3;2)int i=1/3;3)float f=1.01;4)double d=999d;CSC,Chongqing University类型转换o自动类型转换整型,实型,字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级;低-高byte,short,char int long float do
12、ubleCSC,Chongqing University自动类型转换规则o操作数1类型 操作数2类型 转换后的类型obyte、short、char intintobyte、short、char、intlong longobyte、short、char、int、long float floatobyte、short、char、int、long、float double doubleo注意:byte,short和char在一起运算时,首先转换为int类型进行运算。CSC,Chongqing University思考题思考题o分析下面程序中的错误。byte b1=5;short s1=6;short
13、 s2;s2=b1+s1;o答案:byte类型 和 short类型的数据进行运算时首先都转换为int类型。在第四行中就会发生赋值类型不匹配的编译错误。CSC,Chongqing University强制类型转换o高级数据要转换成低级数据,需用到强制类型转换,如:int i;byte b=(byte)i;/*把int型变量i强制转换为byte型*/o提示:提示:已知一个字符的编码,需要获取对应的字符时,一般可以通过类型转换实现。int i65;char c;c=(char)i;CSC,Chongqing University运算符和表达式o与我们学过的C+是相同的。o注意运算符的类型o优先级o参
14、与计算的数的类型o一些运算符的特殊用途。CSC,Chongqing University运算符(按照操作数区分)o一元运算符:,o二元运算符:,o三元运算符:?:注:只列出了部分。CSC,Chongqing University运算符(按照功能来分)1)算术运算符:+,*,/,%,+,3+2;a-b;i+;-i;%求模运算的操作数可为浮点数求模运算的操作数可为浮点数 2)关系运算符:,=,3;i=0;n!=-1;3)布尔逻辑运算符:!,&,|flag=true;!(flag);flag&false;CSC,Chongqing University运算符(按照功能来分)4)位运算符:,&,|,a
15、=10011101;b=00111001;a3 =11110011 a3=00010011;a&b=00011001;a|b=10111101;a=01100010;ab=10100100;o注意,132,它们的值等于多少?CSC,Chongqing University运算符(按照功能来分)5)赋值运算符=,及其扩展赋值运算符如+=,=,*=,/=等。i=3;i+=3 等效于i=i+3 6)条件运算符?:result=(sum=0?1:num/sum);CSC,Chongqing University运算符(按照功能来分)7)其它:包括分量运算符,下标运算符,实例运算符instanceof,
16、内存分配运算符new,强制类型转换运算符(类型),方法调用运算符()等。System.out.println(“hello world”);int array1=new int4;CSC,Chongqing University练习题Which of the following will compile without error?1)char c=1;System.out.println(c1);2)Integer i=Integer(1);System.out.println(i1);3)int i=1;System.out.println(i1);4)int i=1;System.out
17、.println(i =CSC,Chongqing University运算符的优先次序o=!=!=o&o o|o&o|o?:?:o=+=-=*=/=%=+=-=*=/=%=o&=|=&=|=CSC,Chongqing University运算符的优先次序:特点o赋值运算符的优先级最低,因为赋值运算符要使用表达式的值;o关系运算符的优先级比布尔逻辑运算符的优先级高;o.,()等运算符的优先级最高。o一元运算符的优先级也比较高。o算术元算符要比关系运算符和二元逻辑运算符的优先级要高。CSC,Chongqing University运算符的优先次序示例oResutl=sum=0?1:num/sum
18、;第1步:result=sum=0?1:(num/sum)第2步:result=(sum=0)?1:(num/sum)第3步:result=(sum=0)?1:(num/sum)第4步:result=o注:可以用括号()显式的标明运算次序。CSC,Chongqing University练习题oWhich of the following are Java key words?1)double2)Switch3)then4)instanceofCSC,Chongqing University练习题oWhich of the following are not Java keywords?1)v
19、olatile2)sizeOf3)goto4)tryCSC,Chongqing University练习题Given the following variables which of the following lines will compile without error?String s=Hello;long l=99;double d=1.11;int i=1;int j=0;1)j=i s;2)j=ij;3)j=id;4)j=i1);1)02)-13)14)2147483647CSC,Chongqing University练习题oWhat will be output by the
20、 following statement?System.out.println(1 32);1)12)-13)324)-2147483648CSC,Chongqing University控制语句o分支语句,if else,switcho循环语句,for,while,do whileo其他相关语句 break,continue,returno例外处理语句,try.catch.finally,throwo注释语句/,/*/,/*/CSC,Chongqing University分支语句-ifo条件语句 if-elseif(boolean-expression)statement1;else st
21、atement2;注意:1.布尔表达式是任何一个返回布尔型数据的表达式。2.每一个语句后面必须有分号;3。If语句可以嵌套使用。CSC,Chongqing University练习题o写出输出结果int output=20;boolean b1=false;if(b1=true)&(output+=10)=30)System.out.println(“We are equal:”+output);elseSystem.out.println(“Not equal:”+output);CSC,Chongqing University分支语句switcho多分支语句 switchswitch(ex
22、pression)case value1:statement1;break;case value2:statement2;break;case valueN:statemendN;break;default :defaultStatement;CSC,Chongqing Universityswitcho表达式expression的返回值类型必须是这几种类型之一:int,byte,char,short。ocase子句中的值valueN必须是常量,而且所有case子句中的值应是不同的。CSC,Chongqing Universityswitchodefault子句是可选的。obreak语句用来在
23、执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行。oCase语句只是起到一个标号作用,用来查找匹配的入口并从此处开始执行其后的语句序列,对后面的case子句不再进行匹配。CSC,Chongqing Universityswitch试题o写出输出结果 int i=9;switch(i)default:System.out.println(default);case 0:System.out.println(zero);break;case 1:System.out.println(one);case 2:System.out.println(two);CSC,C
24、hongqing University循环语句owhile语句odo-while语句ofor语句CSC,Chongqing UniversityWhile语句initializationwhile(termination)body;iteration;o先计算终止条件CSC,Chongqing UniversityDo-while语句initializationdo body;iteration;while(termination);o先执行循环体,后计算终止条件,若结果为true,则继续执行循环体。o循环体,至少执行一次。CSC,Chongqing UniversityFor语句for(in
25、itialization;termination;iteration)body;ofor语句执行时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。CSC,Chongqing UniversityFor语句o初始化、终止以及迭代部分都可以为空语句(但分号不能省),三者均为空的时候,相当于一个无限循环。o在初始化部分和迭代部分可以使用逗号语句,来进行多个操作。逗号语句是用逗号分隔的语句序列。for(i=0,j=10;ij;i+,j-)CSC,Chongqing University与程序转移有关的其它语句obrea
26、k语句ocontinue语句o返回语句returno注意break语句和continue语句的区别o如果break和continue后面都跟了标号,又有什么区别CSC,Chongqing Universitybreak语句o在switch语中,break语句用来终止switch语句的执行。使程序从switch语句后的第一个语句开始执行。o在Java中,可以为每个代码块加一个括号,一个代码块通常是用大括号括起来的一段代码。加标号的格式如下:BlockLabel:codeBlock break语句的第二种使用情况就是跳出它所指定的块,并从紧跟该块的第一条语句处执行。break BlockLabel
27、;CSC,Chongqing UniversityBreak语句a:/标记代码块a b:/标记代码块b c:/标记代码块c break b;/will not be executed /will not be executed /execute from here CSC,Chongqing UniversityBreak语句o如果一个break后所指定的标号不是一个代码块的标号,而是一个语句,则这时break完全实现goto的功能。o应该避免这种方式的使用CSC,Chongqing UniversityContinue语句ocontinue语句用来结束本次循环,跳过循环体中下面尚未执行的语句
28、,接着进行终止条件的判断,以决定是否继续循环。对于for语句,在进行终止条件的判断前,还要先执行迭代语句。它的格式为:continue;o也可以用continue跳转到括号指明的外层循环中,这时的格式为continue outerLable;CSC,Chongqing UniversityContinue语句outer:for(int i=0;i10;i+)/外外层层循循环环inner:for(int j=0;j10;j+)/内层循环内层循环if(ij)continue outer;CSC,Chongqing University返回语句returnoreturn语句从当前方法中退出,返回到调
29、用该方法的语句处,并从紧跟该语句的下一条语句继续程序的执行。返回语句有两种格式:return expression return return语句通常用在一个方法体的最后,否则会产生编译错误,除非用在if-else语句中CSC,Chongqing University例外处理语句o包括 try .catch(ExceptionCalss e).finally .throw语句;与c/c+相比,是Java特有的语句.CSC,Chongqing University试题1oWhat will happen when you attempt to compile and run the follow
30、ing code?public class MyIf boolean b;public static void main(String argv)MyIf mi=new MyIf();MyIf()if(b)System.out.println(The value of b was true);else System.out.println(The value of b was false);CSC,Chongqing University1)Compile time error variable b 2)was not initialised2)Compile time error the p
31、arameter 3)to the if operator must evaluate4)to a boolean3)Compile time error,cannot 5)simultaneously create and assign6)value for boolean value4)Compilation and run with output of falseCSC,Chongqing University试题2o请写出请写出testing()被调用时的输出结果被调用时的输出结果void testing()one:for(int i=0;i 3;i+)two:for(int j=10
32、;j 2)continue one;CSC,Chongqing University试题3public class MyIf public static void main(String argv)MyIf mi=new MyIf();MyIf()boolean b=false;if(b=false)System.out.println(The value of b is+b);有无输出结果?CSC,Chongqing University试题4o输出结果public class MySwitch public static void main(String argv)MySwitch ms=new MySwitch();ms.amethod();public void amethod()char k=10;switch(k)default:System.out.println(This is the default output);break;CSC,Chongqing University试题4续 case 10:System.out.println(ten);break;case 20:System.out.println(twenty);break;CSC,Chongqing University试题6程序有无问题o见word文档o讲义相关练习题.doc