




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java语言基础金陵科技学院下一页2Java语言基础2复 习概述JAVA的历史与发展Java语言概貌Java开发工具:JDK实用程序Java的程序结构Applet与applicationJava语言基础3本讲主要内容基本语法规则数据类型运算符与表达式流程控制语句分支语句循环语句Java的数组和字符串Java语言基础4Java语言的基本语法规则分隔符注释标识符关键字
Java语言基础5分隔符Java是一种自由格式的语言,可以用任意个空格、制表符、换行符隔开每个词。如:
System.
out.
println
("Counted"+count+"chars.");分号作为语句的结束符,每个语句必须以分号作为结束符;空格作为关键字、标识符之间的分隔符;逗号作为数据的分隔符。
Java语言基础6注释三种注释格式://实现单行注释/*这是
*一段注释,
*它跨越了多个行
*//**JDK的javadoc工具用这种注释信息能自动从程序中抽出类的公共接口形成Web文档。
… */
Java语言基础7标识符定义:标识符用来作为类、方法和变量的名字语法规则:以字母、下划线(_)、美元符号($)开始,后跟这三种符号或数字,也可是Unicode字符集中的汉字。 例如:identifier、_sys_var1、$change、userName、user_name、整数1必须要区分大小写
没有长度限制不允许插入空格标识符不能是关键字,但是它可包含一个关键字作为它的名字的一部分
Java语言基础8标识符(续)约定:类名,接口名:首字母应该大写。
classThisIsAClassName
interfaceAccount字段、方法以及对象:首字母应小写。
thisIsMethodOrFieldName()常量:全部用大写字母表示。
如:GREENHEAD_COUNTJava包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此。 如:packagejava.awt.event对于所有标识符:包含的所有单词都应紧靠在一起,而且大写中间单词的首字母(除包名外)。Unicode字符编码使得标识符可以使用汉字,如:int整数=10;标识符名应具有一定的含义,以增加程序的可读性Java语言基础9关键字关键字是由系统定义的一些词,它们在程序里代表特定的含义。定义标识符时要避免使用这些词。abstractbooleanbreakbytecasecatchcharclassconst*continuedefaultdodoubleelseextendsfinalfinallyfloatforgoto*ifimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttryvoidvolatilewhileJava语言基础10数据类型基本数据类型常量变量复合数据类型Java语言基础11基本数据类型数据类型 关键字占用比特数缺省数值
布尔型 boolean 8 false 字符型 char 16
‘\u0000’
字节型 byte 8 0短整型 short 16 0 整型 int 32 0 长整型 long 64 0L
浮点型 float 32 0.0F
双精度型 double 64 0.0D
Java语言基础12常量直接常量数值型常量,如78,-7.8非数值型常量,如‘A’,“str”,false符号常量以标识符形式表示必需先声明,后使用常量声明finalintMAX=10;Java语言基础13常量整型常量:32位(一般)和64位(长型L/l)255(十),0377(八),0XFF(十六)浮点常量:32位(一般F/f)和64位(双精度D/d)19.4(一般表示) 2.4E-4(指数表示)boolean常量:true,false不能转化为int型Java语言基础14常量(续)char型常量:用单引号界定‘
’,‘
0x20’(16进制表示的ASCII码空格)采用Unicode码,从‘\u0000’~’\uFFFF’,其中‘\u0000’~‘\u00FF’为ASCII码字符串常量:用双引号界定“HELLO,WORLD”+号的特殊用法Java语言基础15常量(续)特殊字符(转义字符)引用方法 对应Unicode码 意义 ‘\b’
‘\u0008’
回退 ‘\t’
‘\u0009’
水平制表符tab ‘\n’
‘\u000a’
换行 ‘\r’
‘\u000d’
回车 ‘\”’
‘\u0022’
双引号 ‘\’’
‘\u0027’
单引号 ‘\\’
‘\u005c’
反斜线 Java语言基础16变量变量是保存在程序中可被改变的数据变量的4要素:名字类型值作用域Java中变量的类型:基本数据类型引用数据类型
Java语言基础17变量的声明格式:[modifier]typeidentifier[=value][,identifier[=value]…];例如:inta,b,c;staticdoubled1,d2=0.0;
方法参数和异常处理参数的变量值是由调用者给出。变量声明:先声明,后使用Java语言基础18变量的作用域变量的作用域指明可访问该变量的一段代码按作用域来分,变量可以有下面几种:成员变量Membervariable方法参变量Methodparameter局部变量Localvariable异常处理参变量Exception-handlerparameterJava语言基础19变量的作用域(续)Java语言基础20变量的作用域(续)变量的屏蔽与冲突块内定义的变量屏蔽所在类定义的同名变量同一块内定义两个同名变量将引起冲突例:Customer.javaJava语言基础21变量的默认初始化值Java语言基础22复合数据类型数组,类class,接口interface属于复合类型(引用类型)。复合类型(引用类型)的变量是所引用的对象的内存地址。Java语言基础23复合数据类型例子:publicclassMyDate{privateintday=1;privateintmonth=1;privateintyear=2000;publicMyDate(intday,intmonth,intyear){...}publicvoidprint(){...}}classTestMyDate{publicstaticvoidmain(String[]args){
MyDatemy_birth=newMyDate(22,7,1964);}Java语言基础24复合数据类型创建一个类对象:MyDatemy_birth=newMyDate(22,7,1964);Java语言基础25Java的运算符运算符指明对操作数所进行的运算。按功能分类:算术运算符(+,-,*,/,%,++,--)关系运算符(>,<,>=,<=,==,!=)布尔逻辑运算符(!,&&,||,|,&)位运算符(>>,<<,>>>,&,|,^,~)赋值运算符(=,及其扩展赋值运算符如+=)条件运算符(?:)其它(包括分量运算符·,下标运算符[],实例运算符instanceof,内存分配运算符new,强制类型转换运算符(类型),点操作符.等)Java语言基础26算术运算符算术运算符双目运算符 +,-,×,/,%(取余)
+号:可连接字符串“He”+“llo”为“Hello”单目运算符(自运算符)++,--,运算符的位置决定自运算的顺序,只能用于整数和字符类型变量,不可用于表达式
例:a=3,b=5;c=(a++)*b; a=?,c=?
++(i-1);//语法错误Java语言基础27关系运算符关系运算符对两运算量大小关系的比较,结果是布尔量>,<,>=,<=,!=,==(与=不同)Java中,大部分数据类型的数据(包括基本类型和复合类型)都可以通过==或!=来比较是否相等(这与C、C++不同)boolean类型不能比较大小Java语言基础28逻辑运算符逻辑运算符表示两布尔量的逻辑关系,结果仍为布尔量不可将一个非布尔值当作布尔值在逻辑表达式中使用例如:以下是非法的:inti=1,j=2;i&&ji||j!i以下是合法的:(i<10)&&(j>10)(i<10)||(j>10)Java语言基础29逻辑运算符逻辑运算符双目:(与、或)非简洁运算符:&,|
简洁运算符:&&,|| (短路运算)1、a&&b&&c2、a||b||c3、x=y=truea=5,b=3,c=2,d=1(x=a<b)&&(y=c<d)x,y=?单目:!(否)Java语言基础30位运算符位运算符按位运算:~,&,|,^移位运算:<<,>>,>>>
>>>不带符号右移;
Java语言基础31位运算符(~,&,|,^)Java语言基础32位运算符(>>,>>>,<<)>>:将一个数的各二进制位全部右移若干位,移到右端的低位被舍弃,最高位则移入原来高位的值
例如: a=00110111,则a>>2=00001101 b=11010011,则
b>>2=11110100右移一位相当于除2取商 例如:128>>1returns128/21=64 -256>>4returns-256/24=-16Java语言基础33位运算符(>>,>>>,<<)>>>:一个数的各二进制位无符号右移若干位,与运算符>>相同,移出的低位被舍弃,但不同的是最高位补0。如a=00110111,则a>>>2=00001101 b=11010011,则b>>>2=00110100Java语言基础34位运算符(>>,>>>,<<)<<:用来将一个数的各二进位全部左移若干位。高位左移后溢出,舍弃不起作用,右补0。例如:a=00001111,则a<<2=00111100。在不产生溢出的情况下,左移一位相当于乘2 128<<1returns128*21=256 -16<<2returns-16*22=-64x 二进制表示x<<2x>>2 x>>>2 30 00011110 01111000 0000011100000111-17 11101111 10111100 1111101100111011Java语言基础35赋值运算符在赋值运算符两侧的类型不一致的情况下:Java允许将任何基本类型转换为为其他任何一种基本类型。但布尔值(boolean)要除外如果左侧变量的数据类型的级别高,则右侧的数据被自动转化为与左侧相同的高级的数据类,然后赋给左侧变量否则,需要使用强制类型转换运算符复合类型不能随便进行强制类型转换Java语言基础36赋值运算符例如:longbigValue=99L;intsquashed=bigValue;//Wrongintsquashed=(int)bigValue;//OKintsquashed=99;//defaultintegerliteraldoublez=12.414F;//12.414Fisfloat,OKfloatz1=12.414;//12.414isdouble,illegal复合(扩展)赋值运算符赋值运算符与算术、逻辑、位运算符组成二元运算符@=,a@=b即a=a@ba+=ba=a+b;Java语言基础37条件运算符三目条件运算符(?:)D=表达式A?表达式B:表达式C A为真,返回表达式BA为假,返回表达式C返回值类型为B,C中的长类型例: intx=5,y=8;shortz=2; intk=x<3?y:z; //2(int型)Java语言基础38JAVA的运算符(续)运算符的优先级括号最优先算术运算符移位运算符关系运算符大部分逻辑运算符(除了!号)和按位运算符条件运算符赋值运算符Java语言基础39JAVA的流程控制语句结构化程序设计的三种基本控制语句顺序分支循环按语句书写的先后顺序执行在若干路径中有条件地选择执行当某条件成立时,反复执行一段代码Java语言基础40分支(选择)语句IF语句if(条件表达式)语句块;if(条件表达式)语句组1;
else 语句组2;语句块用大括号括起的语句集合else与最近的if配合,用来消除二义性If条件A{ 1……… }If条件B{ 2……… }else{ 3……… }Java语言基础41分支(选择)语句(续)嵌套的if-else-if if(expression) statement; elseif(expression) statement; elseif(expression) ………………. else statement;Java语言基础42多分支开关语句SWITH语句
switch(表达式) { case判断值1:语句组1;[break;]
case判断值2:语句组2;[break;]
……
default:语句组n;}根据表达式取值的不同转向不同的分支每个case分支都只是入口点,以break语句作为出口点【例2.4】求一个日期(年月日)对应的是星期几Java语言基础43JAVA的循环语句
for语句当型循环,功能最强、使用最多、最灵活for(表达式1;表达式2;表达式3) 语句组;表达式1:循环变量赋初值,可使用外部没有定义的循环变量表达式2:循环条件表达式3:循环变量修正【例2.9】输出九九乘法表Java语言基础44JAVA的循环语句(续)求表达式1求表达式3循环体求表达式2假真Java语言基础45JAVA的循环语句(续)while语句当型循环:while(表达式) 语句组;执行过程:先计算表达式若为真则执行语句组,并转回再计算表达式若为假
则跳出循环,执行后面的语句。【例2.6】用辗转相除法求两个整数的最大公因数Java语言基础46JAVA的循环语句(续)do-while语句直到型循环: do{
语句
}while(表达式);执行过程:先执行语句,再计算表达式若为真则转回再执行语句,若假则跳出循环循环体至少执行一次【例2.7】计算Fibonacci序列Java语言基础47while与do-while语句执行流程Java语言基础48转移语句return语句:从方法中返回值break语句:从循环体内跳出至后面语句,结束当前循环。跳出当前循环体,不是跳出当前大括号对。循环嵌套时,break语句只跳出当前循环。跳出switch分支。continue语句跳过本轮循环剩余语句,直接进入当前循环体的下一轮。Java语言基础49JAVA的数组Java数组是引用数据类型,一个数组变量采用引用方式保存多个数组元素。Java数组元素可以是基本数据类型,也可以是引用类型。数组在其他语言中仅是相同数据类型元素的集合;而Java中还提供了数组类(Arrays),有自身的属性和方法。Java语言基础50JAVA数组的声明数组的声明方法:intintArray[];--([]不是指长度可变)int[]intArray;数组的长度不是在声明时指定,而是在创建时由所开辟的内存单元数目确定Java语言基础51JAVA数组的创建数组的创建步骤创建数组空间对每个数组元素进行初始化系统默认初始化人工初始化Java语言基础52创建一维数组的过程图2.8一维数组Java语言基础53JAVA数组创建方法创建方法:先声明后创建
intintArray[]; intArray=newint[10];在声明的同时创建
intintArray[]=newint[10];在声明的同时初始化
int[]intArray={1,2,3,4,5};例:ArraySize.java数组元素为对象的情况数组元素为基本数据类型的情况Java语言基础54JAVA数组的使用数组元素的引用用下标变量访问数组元素(0~length-1)如:arrayName[0],arrayName[5*i]越界异常越界时系统会产生异常ArrayIndexOutofBounds克服异常方法:数组长度不直接用下标值表示,而用arrayName.length表示【例2.5】用一维数组计算Fibonacci序列值Java语言基础55数组变量的引用赋值Array_reference.javaJava语言基础56JAVA的二维数组数组的数组1.定义二维数组定义二维数组有三种形式:(1)数组元素类型[][]数组名称;例如:int[][]results;(2)数组元素类型数组名称[][];例如:Stringabc[][];(3)数组元素类型[]数组名称[];例如:Point[]points[];Java语言基础57JAVA的二维数组2.创建二维数组二维数组可以看作一个按照行和列存储数据的内存空间按照数组每行和每列的长度,有两种创建方法(1)矩阵数组(2)非矩阵数组(不规则二维数组)Java语言基础58矩阵数组数组每行、每列之间长度相同Java语言基础59矩阵数组【例2.11】幻方816357492Java语言基础60非矩阵数组数组每行、每列之间长度不同Java语言基础61JAVA的二维数组3.静态初始化二维数组(1)按照顺序依次给每个元素赋值。例如给数组results赋值:int[][]results;results=newint[2][3];results[0][0]=67;results[0][1]=97;results[0][2]=100;results[1][0]=89;results[1][1]=73;results[1][2]=65;(2)在定义数组的同时直接给数组赋初值。例如:int[][]results={{67,97,100},{89,73,65}};Java语言基础62JAVA的二维数组4.二维数组的长度二维数组的长度是指行数的个数,二维数组每行的长度是指每行的元素个数。例如:results.length表示二维数组results的长度,也就是行数;results[i].length表示二维数组results第i行的长度,也就是元素个数。Java语言基础63【例2.15】杨辉三角JAVA的二维数组Java语言基础64数组的复制创建的每个数组都是Array类中的一个对象,所以在复制数组时有两种情况:(1)两个数组指向同一个元素空间。例如:int[]num_1={1,2,3,4,5,6};int[]num_2;num_2=num_1;Java语言基础65数组的复制(2)两个数组指向内容相同的两个元素空间。如果要真正复制一个数组,使修改复制数组的值时,不会影响到源数组的话,则需要定义一个和源数组长度相同的数组,然后再把源数组中的元素一一复制给新的数组。例:ArrayTest.java使用方法:System.arraycopy(源数组名,源数组起始下标,目的数组名,目的数组起始下标,拷贝长度)Java语言基础66JAVA中的字符串Java中的字符串也是类。由于使用频繁,有时也被视为基本类型遇到双引号自动创建String类的对象提供字符串运算符,如字符串的连接:+定长字符串:String类(效率较高)不能更改可变字符串:StringBuffer类(使用灵活)可追加、插入、修改,但内存管理复杂Java语言基础67JAVA中的字符串(续)创建字符串StringBufferdest=newStringBuffer(len);Strings=“abc”;Strings=newString(“abc”);字符串的访问:获取String的信息intlength():求字符串的长度charcharAt(intindex):返回指定位置处的字符StringsubString(intbegin,intend):返回指定头尾的字符子串Booleanequals(Objectobj):比较字符串是否相等StaticStringformat(Stringformat,Object…args):获得指定格式字符串Java语言基础68JAVA中的字符串(续
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络游戏虚拟货币发行与游戏角色扮演服务合同
- 东南亚仓储库存盘点与仓储设备租赁合同
- 儿童综合保障计划退保服务协议
- 游戏美术资源制作设计师劳务合同
- 互联网金融服务反欺诈补充合同
- 数字出版物区域独家代理权转让合同
- 工业自动化软件许可及市场推广合作协议
- 太阳能电池技术升级补充协议
- 跨国公司员工离职保密协议及全球竞业限制条款
- 保险业务审核补充合同
- 粤教科技版科学六年级下册第14课《生物生存的环境》教学课件
- 高考语文作文素材:《典籍里的中国》课件33张
- 隧道施工安全教育培训
- 2022年道路交通安全防汛工作应急预案
- (完整)《神经病学》考试题库及答案
- 国网北京市电力公司授权委托书(用电)
- 边坡支护之锚杆施工技术ppt版(共35页)
- 黄芩常见的病虫害症状及防治措施
- 思政课社会实践报告1500字6篇
- GB∕T 25119-2021 轨道交通 机车车辆电子装置
- 电池PCBA规格书
评论
0/150
提交评论