




已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2. Java编程语言基础知识,重庆大学计算机学院 杨瑞龙 ,主要内容,标识符和保留字 数据类型 类型转换 运算符和表达式 控制语句,标识符,以字母,下划线(_),美元符号($,或者其它货币符号)开始的一个字母序列;后续字符可以是字母,数字,下划线,美元符,Unicode字符集中大于0xC0的所有符号,运算符除外。 大小写敏感,没有最大长度限制 不能与保留字重名 实际编程序中,甚至标识符完全可以用中文,比如可以把一个变量的名字命名为 int 中文=1;,标识符举例,合法的标识符 identifier userName User_Name _sys_val $change 不合法的标识符 2mail room# class,练习题,Which declarations of identifiers are legal? $persons TwoUsers *point this _endline,保留字,具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字(reserved word),也称为关键字: 都是小写,比如true,false,null等,不像c中都是大写的。 注意和c +的保留字的区别,增加了哪些,又去掉了哪些。 比如在java中没有sizeof运算符,因为数据类型的长度与平台无关。,保留字2-1,用于数据类型的保留字 byte short int long float double char boolean 用于流程控制语句的关键字 if else switch case default do while for break continue 方法、类型、变量的修饰关键字 private public protected final static abstract synchronized volatile,保留字2-2,异常处理关键字 try catch finally throw throws 对象相关关键字 new extends implements class instanceof this super 字面值常量关键字 false true null 方法相关关键字 return void 包相关关键字 package import,练习题,Which of the following are Java keywords? 1) NULL 2) new 3) instanceOf 4) wend,注释,单行注释 / 注释内容 多行注释 /* 注释文本 */ 文件注释 文件注释用来产生一个Html文件,可以使用Jdk提供的工具程序JavaDoc从源程序中提取这种注释,为程序提供文档说明。 javadoc能识别注释中用标记标识的一些特殊变量。文件注释以“/*”开头,遇到“*/”结束,在注释中每行以一个“*”开始。其格式如下。 /*注释文本 *注释文本 * */,数据类型划分,数据类型,数据类型的分类 简单数据类型,复杂数据类型 byte,short,int,long,float,double char,boolean class,interface,数组 数的范围,位长 不支持c/C+中的指针类型,结构类型(struct)、联合类型(union),枚举类型(enum),常量,变量,常量用文字串表示,比如 3,a等 通过final定义常量, final typeSpecifier varName=value,varName=value; 如 final int i0; 变量是java中的基本存储单元,包括变量名,类型,作用域等。 int i0,j1; 局部变量,类变量,方法参数,例外处理参数等。,简单数据类型boolean类型,布尔型数据只有两个值true和false,且它们不对应于任何整数值 布尔型变量的定义如: boolean b=true; boolean a=false;,简单数据类型字符类型char,字符常量 字符常量是用单引号括起来的一个字符,如a,A; 字符型变量 类型为char,使用Unicode字符集它在机器中占16位,16位无符号型数据,其范围为065535。字符型变量的定义如: char c=a; /*指定变量c为char型,且赋初值为a*/ Java也提供转义字符,以反斜杠()开头,P13,比如表示单引号,uxxxx,1到4位16进制表示的字符。 char c=u0061; 如何从字符转换到它的编码,可以用jdk提供的工具native2ascii.exe程序。 举例,“中文”的unicode编码是:“u4e2du6587”,简单数据类型字符类型char(续),Java中的字符型数据不能用作整数,因为java不提供无符号整数类型,但是同样可以把他当作整数数据来操作(因为发生了类型转换)。例如: int three=3; int one=1; char four=(char)(three+one);/four=4,简单数据类型整型数据,数据类型 所占位数 数的范围 byte 8 -2727-1 short 16 -215215-1 int 32 -231231-1 long 64 -263263-1 在定义时,long型数据要加后缀l或者L。,浮点型(实型)数据,实型常量 1. 十进制数形式 由数字和小数点组成,且必须有小数点,如0.123, .123, 123.,123.0 2. 科学计数法形式 如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。,浮点型(实型)数据,实型变量 数据类型 所占位数 数的范围 float 32 3.4e038 3.4e038 double 64 1.7e308 1.7e308 注意:定义float时,需加后缀f或F,使用举例,public class Test byte b=21; short s=256; int i=100000; long l=0xffL; double d=0.7e-3; boolean b=false; ,练习题,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;,类型转换,自动类型转换 整型,实型,字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级; 低-高 byte ,short ,char int long float double,自动类型转换规则,操作数1类型 操作数2类型 转换后的类型 byte、short、char int int byte、short、char、int long long byte、short、char、int、long float float byte、short、char、int、long、float double double 注意:byte,short和char在一起运算时,首先转换为int类型进行运算。,思考题,分析下面程序中的错误。 byte b1=5; short s1=6; short s2 ; s2=b1+s1; 答案:byte类型 和 short类型的数据进行运算时首先都转换为int类型。在第四行中就会发生赋值类型不匹配的编译错误。,强制类型转换,高级数据要转换成低级数据,需用到强制类型转换,如: int i; byte b=(byte)i; /*把int型变量i强制转换为byte型*/ 提示:已知一个字符的编码,需要获取对应的字符时,一般可以通过类型转换实现。 int i65; char c; c=(char)i;,运算符和表达式,与我们学过的C+是相同的。 注意运算符的类型 优先级 参与计算的数的类型 一些运算符的特殊用途。,运算符(按照操作数区分),一元运算符:, 二元运算符:, 三元运算符:?: 注:只列出了部分。,运算符(按照功能来分),1)算术运算符: +,*,/,%,+, 3+2; a-b; i+; -i; %“求模运算的操作数可为浮点数 2)关系运算符: ,=,3; i=0; n!=-1; 3)布尔逻辑运算符: !,,运算符(按照功能来分),4)位运算符: , 注意,132, 它们的值等于多少?,运算符(按照功能来分),5)赋值运算符 =,及其扩展赋值运算符如+=,=,*=,/=等。 i=3; i+=3 等效于i=i+3 6)条件运算符 ? : result=(sum= =0 ? 1 : num/sum);,运算符(按照功能来分),7)其它:包括分量运算符 ,下标运算符 ,实例运算符instanceof,内存分配运算符new,强制类型转换运算符 (类型),方法调用运算符 () 等。 System.out.println(“hello world”); int array1=new int4;,练习题,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.println(i1);,表达式的类型,表达式的类型由运算以及参与运算的操作数的类型决定,可以是简单类型,也可以是复合类型: 布尔型表达式: x 整型表达式: num1+num2,练习题,Given the following class public class ZeroPrint public static void main(String argv) int i =0; /Here ,练习题,Which of the following lines if placed after the comment /Here will print out 0. 1) System.out.println(i+); 2) System.out.println(i+0); 3) System.out.println(i); 4) System.out.println(i-);,运算符的优先次序,表达式的运算按照运算符的优先顺序从高到低进行,同级运算符从左到右进行: . () + - ! instanceof new (type) * / % + - = =,运算符的优先次序,= != & | & | ?: = += -= *= /= %= = &= |= = =,运算符的优先次序:特点,赋值运算符的优先级最低,因为赋值运算符要使用表达式的值; 关系运算符的优先级比布尔逻辑运算符的优先级高; .,()等运算符的优先级最高。 一元运算符的优先级也比较高。 算术元算符要比关系运算符和二元逻辑运算符的优先级要高。,运算符的优先次序示例,Resutl=sum=0?1:num/sum; 第1步:result=sum=0?1:(num/sum) 第2步:result=(sum=0)?1:(num/sum) 第3步:result=(sum=0)?1:(num/sum) 第4步:result= 注:可以用括号()显式的标明运算次序。,练习题,Which of the following are Java key words? 1) double 2) Switch 3) then 4) instanceof,练习题,Which of the following are not Java keywords? 1)volatile 2)sizeOf 3)goto 4)try,练习题,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=il;,练习题,Given the following variables char c = c; int i = 10; double d = 10; long l = 1; String s = “Hello“; Which of the following will compile without error? 1) c=c+i; 2) s+=i; 3) i+=s; 4) c+=s;,练习题,What will be output by the following statement? System.out.println(-1 1); 1) 0 2) -1 3) 1 4) 2147483647,练习题,What will be output by the following statement? System.out.println(1 32); 1) 1 2) -1 3) 32 4)-2147483648,控制语句,分支语句,if else,switch 循环语句,for ,while,do while 其他相关语句 break,continue,return 例外处理语句,trycatchfinally,throw 注释语句/,/*/,/*/,分支语句-if,条件语句 if-else if(boolean-expression) statement1; else statement2; 注意: 1.布尔表达式是任何一个返回布尔型数据的表达式。 2.每一个语句后面必须有分号; 3。If语句可以嵌套使用。,练习题,写出输出结果 int output=20; boolean b1=false; if(b1=true) ,分支语句switch,多分支语句 switch switch (expression) case value1 : statement1; break; case value2 : statement2; break; case valueN : statemendN; break; default : defaultStatement; ,switch,表达式expression的返回值类型必须是这几种类型之一:int,byte,char,short。 case子句中的值valueN必须是常量,而且所有case子句中的值应是不同的。,switch,default子句是可选的。 break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行。 Case语句只是起到一个标号作用,用来查找匹配的入口并从此处开始执行其后的语句序列,对后面的case子句不再进行匹配。,switch试题,写出输出结果 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“); ,循环语句,while语句 do-while语句 for语句,While语句,initialization while (termination) body; iteration; 先计算终止条件,Do-while语句,initialization do body; iteration; while (termination); 先执行循环体,后计算终止条件,若结果为true,则继续执行循环体。 循环体,至少执行一次。,For语句,for (initialization; termination; iteration) body; for语句执行时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。,For语句,初始化、终止以及迭代部分都可以为空语句(但分号不能省),三者均为空的时候,相当于一个无限循环。 在初始化部分和迭代部分可以使用逗号语句,来进行多个操作。逗号语句是用逗号分隔的语句序列。 for( i=0, j=10; ij; i+, j-) ,与程序转移有关的其它语句,break语句 continue语句 返回语句return 注意break语句和continue语句的区别 如果break和continue后面都跟了标号,又有什么区别,break语句,在switch语中,break语句用来终止switch语句的执行。使程序从switch语句后的第一个语句开始执行。 在Java中,可以为每个代码块加一个括号,一个代码块通常是用大括号括起来的一段代码。加标号的格式如下: BlockLabel: codeBlock break语句的第二种使用情况就是跳出它所指定的块,并从紧跟该块的第一条语句处执行。 break BlockLabel;,Break语句,a: /标记代码块a b: /标记代码块b c: /标记代码块c break b; /will not be executed /will not be executed /execute from here ,Break语句,如果一个break后所指定的标号不是一个代码块的标号,而是一个语句,则这时break完全实现goto的功能。 应该避免这种方式的使用,Continue语句,continue语句用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。对于for语句,在进行终止条件的判断前,还要先执行迭代语句。它的格式为: continue; 也可以用continue跳转到括号指明的外层循环中,这时的格式为 continue outerLable;,Continue语句,outer: for( int i=0; i10; i+ ) /外层循环 inner: for( int j=0; j10; j+ ) /内层循环 if( ij ) continue outer; ,返回语句return,return语句从当前方法中退出,返回到调用该方法的语句处,并从紧跟该语句的下一条语句继续程序的执行。返回语句有两种格式: return expression return return语句通常用在一个方法体的最后,否则会产生编译错误,除非用在if-else语句中,例外处理语句,包括 try catch( ExceptionCalss e ) . finally . throw语句; 与c/c+相比,是Java特有的语句.,试题1,What will happen when you attempt to compile and run the following 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 Syst
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 草原草原退化治理技术比较考核试卷
- 石墨在海水淡化技术中的材料创新考核试卷
- 别出心裁的课件设计
- 时尚产品设计思维与流程考核试卷
- 罐头食品生产过程中的食品安全监管要求考核试卷
- 2025年棉花加工成套设备合作协议书
- 《民事法律制度》课件
- 农业农业机械智能优化服务批发考核试卷
- 水利工程中的水利工程可行性与评估考核试卷
- 蛋品加工市场营销策略与实践考核试卷
- 2024年江苏南京金陵中学特长生选拔考试数学试题(含答案详解)
- 《论语》全文带拼音有注释(完整版)
- 《火灾调查 第2版》 课件全套 刘玲 第1-12章 绪论、询问 -火灾物证鉴定
- 施工焊接与质量控制
- 二年级下册口算题1000题大全-
- AQ/T 1119-2023 煤矿井下人员定位系统通 用技术条件(正式版)
- 基本公共卫生服务项目-中医药健康管理服务规范培训课件
- JGJ133-2001 金属与石材幕墙工程技术规范
- 社区智慧养老方案含内容课件
- 2024房产抵账协议书范本
- 多元主体协同治理
评论
0/150
提交评论