【文档说明】Java语言基础(部分自学)课件.ppt,共(54)页,203.035 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-45181.html
以下为本文档部分文字说明:
第二讲Java语言基础任何程序设计语言,都是由语言规范和一系列开发库组成的。如标准C,除了语言规范外,还有很多函数库;MSVisualC++更是提供了庞大的APIs和MFC。Java语言也不例外,也是由Java语言规范和Java开发包组成的。学
习任何程序设计语言,都是要从这两方面着手,尤其是要能够熟练地使用后者。1、Java语言基本元素2、Java数据类型3、Java语言结构4、Java控制语句主要内容语言规范标识符(Identifier)保留字(ReservedWord)1、Java语言基本
元素程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(identifier)包括:类名、变量名、常量名、方法名、…Java语言中,标识符是以字母,下划线(_),美元符($)开始的一个字符序列,后面可以跟字母,下划线,美元符,数字。合法的标识
符identifieruserNameUser_Name_sys_value$change非法的标识符2mailroom#class1、Java语言基本元素——标识符具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字(reserved
word)。abstractbreakbytebooleancatchcaseclasscharcontinuedefaultdoubledoelseextendsfalsefinalfloatforfinallyifimportimplementsintinterfaceins
tanceoflonglengthnativenewnullpackageprivateprotectedpublicfinalreturnswitchsynchronizedshortstaticsupertrytruethisthrowthrowsthr
eadsafetransientvoidwhile1、Java语言基本元素——保留字数据和返回值类型:int,void,return……包/类/成员/接口:package,class,interface访问控制:public,private,protected循环及循环控制:
if,switch,break例外处理:throw,try,finally保留词(无含义但不能使用):goto,const1、Java语言基本元素——保留字:基本分类在Java中,true、false和null都是小写的
。区别于C++中大写的TRUE、FALSE和NULL。不必死记这些关键词,当理解每个关键词的含义后,自然就记住了所有的关键词。1、Java语言基本元素——保留字:注意事项2、Java数据类型常量(Constant)变量(Variable)数据类型(Data
Type)基本数据类型(PrimaryDataTypes)复合数据类型(CompositeDataTypes)Java中的常量值是用文字串表示的,它区分为不同的类型,如整型常量123,实型常量1.23,字符常量‘a’,布尔常量true、false以及字符串常量"Thi
sisaconstantstring."。与C、C++不同,Java中不能通过#define命令把一个标识符定义为常量,而是用关键字final来定义,其定义格式为:finalTypevarName=value[,varName[=value]…];finalintg
lobalAccount=100,nationalAccount=50;finaldoublePI=3.141592、Java数据类型——常量程序中的基本存储单元,其定义包括变量名、变量类型和作用域几个部分,定义格式为:TypevarName[=value][{,varName[=v
alue]}];intn=3,n1=4;Java中变量的缺省初值都是确定的:布尔变量的初值为:false整数变量的初值为:0浮点数变量的初值为:0.0引用(复合)变量的初值为:null在方法实现中定义的变量必须显式的初
始化。变量的作用域指可访问变量的一段代码,在程序中不同的地方声明的变量具有不同的作用域:局部变量、类变量、方法参数、例外处理参数。在一定的作用域内,变量名必须唯一。2、Java数据类型——变量2、Java数据类型——数据类型所有基本类型所占的位数都是确定的,并不因操作系
统的不同而不同。所有基本类型的关键词都是小写的。数据类型所占位数数的范围char160~65535byte8-27~27-1short16-215~215-1int32-231~231-1long64-263~263-1float323.4e-038~3.4
e+038double641.7e-308~1.7e+3082、Java数据类型——基本数据类型布尔型数据只有两个值true和false,且它们不对应于任何整数值布尔型变量的定义如:booleanb=true;布尔型数据只能参与逻辑关系运算:&&||==!=!示例:bo
oleanb1;booleanb2=true;b=!b2;booleanb=(b1&&b2)!=false;2、Java数据类型——基本数据类型:布尔类型(boolean)字符型数据代表16位的Unicode字符字符常量是用单引号括起来的一个字符
‘a’‘B’‘\n’‘\u0030’字符型数据的取值范围为0~65535或者说\u0000~\uFFFF\u0000为缺省值示例charc1;\\缺省值为0charc2=‘0’;\\赋初值为字符‘0’charc3=32;\
\用整数赋初值为空格2、Java数据类型——基本数据类型:字符类型(char)特殊字符的常量表示法:反斜线(Backslash)‘\\’退格(Backspace)‘\b’回车(Carriagereturn)‘\r’进纸符(Formfeed
)‘\f’制表符(Formfeed)‘\t’换行(Newline)‘\n’单引号(Singlequote)‘\’’八进制数(‘\0’~‘\377’)‘\DDD’Unicode字符‘\uHHHH’2、Java数据类型——基本数据类型:字符类型(char)整型常量1.十进制整
数如123,-456,02.八进制整数以0开头,如0123表示十进制数83,-011表示十进制数-9。3.十六进制整数以0x或0X开头,如0x123表示十进制数291,-0X12表示十进制数-18。整型变
量类型为byte、short、int或long,byte在机器中占8位,short占16位,int占32位,long占64位。整型变量的定义如:intx=123;//指定变量x为int型,且赋初值为123byteb=8;shorts=10;longy=123L;longz
=123l;2、Java数据类型——基本数据类型:整数类型(byte,short,int,long)64位长整数以l或L结尾:12l,-343L,0xfffffffffL1L<<32等于4294967296L1<<32等于0没有以l或L结尾的数字,根据其实际值所属范围,可以被用作byte,
short,或int型整数以l或L结尾的数字,无论其实际值所属范围怎样,都被用作long型整数2、Java数据类型——基本数据类型:整数类型(byte,short,int,long)示例byteb1;\\缺省值为0byteb2=127;\\赋初
值为127shorts1=(short)(b1+b2);\\强制类型转换shorts2=(short)(b1+123)\\强制类型转换intn=b1+b2;\\不需要强制类型转换longl1=2343;\
\不需要强制类型转换longl2=4294967296L;\\必须用L或l结尾longl3=65536*63356;\\乘法运算越界,l3为0longl4=65536L*63356;\\l4为429
4967296L2、Java数据类型——基本数据类型:整数类型(byte,short,int,long)实型常量1.十进制数形式由数字和小数点组成,且必须有小数点,如0.123,.123,123.,123.02.科学计数法形式如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的
指数必须为整数。32位浮点数形式:0.23f,1.23E-4f,.18F2、Java数据类型——基本数据类型:浮点数类型,实型(float,double)实型变量类型为float或double,float在机器中占32位,double占64位。实型变量的定义如:double
d1=127.0;\\赋初值为127doubled2=127;\\赋初值为127floatf1=127.0f;\\必须在数字后加f或Ffloatf2=4.0e38f;\\错误!32位浮点数不能超过\\3.40282346638
52886e38floatf3=(float)d1;\\必须强制类型转换2、Java数据类型——基本数据类型:浮点数类型,实型(float,double)publicclassAssign{publi
cstaticvoidmain(Stringargs[]){intx,y;byteb=6;floatz=1.234f;doublew=1.234;booleanflag=true;charc;c=„A„;x=12;y=300;......}}2、Java数据类型—
—基本数据类型:使用举例自动类型转换整型、实型、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级:低-----------------------------------------------
------>高byte,short,char—>int—>long—>float—>double操作数1类型操作数2类型转换后的类型byte、short、charintintbyte、short、char、intlonglongbyte、short、cha
r、int、longfloatfloatbyte、short、char、int、long、floatdoubledouble2、Java数据类型——基本数据类型:数据类型转换数据类型转换必须满足如下规则:不能对boolean类型进行类型转换。
不能把对象类型转换成不相关类的对象。在把容量大的类型转换为容量小的类型时必须使用强制类型转换。转换过程中可能导致溢出或损失精度inti=8;byteb=(byte)i;(byte)255==-1(byte)0x5634==0x34浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
(int)23.7==23(int)-45.89f==-452、Java数据类型——基本数据类型:数据类型转换数组Array,类class,接口interface属于引用类型。引用类型的变量是所引用的对象的内存地址。classMyDate{
privateintday=1;privateintmonth=1;privateintyear=2000;publicMyDate(intday,intmonth,intyear){...}pu
blicvoidprint(){...}}publicclassTestMyDate{publicstaticvoidmain(String[]args){MyDatemy_birth=newMyDate(22,7,1964);}
}2、Java数据类型——复合(引用)数据类型引用数据类型(referencetype)创建一个类对象:MyDatemy_birth=newMyDate(22,7,1964);引用数据类型(referencetype)两个引用变量
的赋值将会产生如下结果:intx=7;inty=x;MyDates=newMyDate(22,7,1964);MyDatet=s;两个变量指向同一个对象:运算符(Operator)和表达式(Expression)注释(Comment)语句(Statement)代码段(Code
Block)作用域(Scope)3、Java语言的结构(1)运算符算术运算符:+,―,*,/,%,++,――关系运算符:>,<,>=,<=,==,!=布尔逻辑运算符:!,&&,||位运算符:>>,<<,>>>,&,|,^,~赋值运算符:=,及其
扩展赋值运算符如+=,―=,*=,/=等。条件运算符:?:3、Java语言的结构——运算符和表达式其它分量运算符·,下标运算符[],实例运算符instanceof,内存分配运算符new,强制类型转换运算符(类型),方法调用运算符()…由于数
据类型的长度是确定的,所以没有长度运算符sizeof。3、Java语言的结构——运算符和表达式(2)表达式表达式是由操作数和运算符按一定的语法形式组成的符号序列。一个常量或一个变量名字是最简单的表达式,其值即该常量或变量的值;表达式的值还可以用作其他运算的操作
数,形成更复杂的表达式。例:xnum1+num2a*(b+c)+d3.14x<=(y+z)x&&y||z3、Java语言的结构——运算符和表达式(3)运算符的优先次序1).,[],()9)&2)++,--,!,~,instanceof10)^3)new(type)11)|4)*,/,%12)
&&5)+,-13)||6)>>,>>>,<<14)?:7)>,<,>=,<=15)=,+=,-=,*=,/=,%=,^=8)==,!=16)&=,|=,<<=,>>=,>>>=3、Java语言的结构——运算符和表达式举例://
单行注释,简单的解释语句含义./*多行注释,用来说明更多的内容,包括算法等.……*//**Java文档注释,可以通过javadoc生*成类和接口的HTML格式的帮助文档.*这种注释有其特殊的格式(参见相关文档)*/3、Java语言的结构——注释一个由分号(;)结
尾的单一命令是一条语句(Statement),一条语句一般是一行代码,但也可以占多行代码。inta=1;//变量定义及初始化语句用大括号({……})围起来的多条语句构成一个代码段(Codeblock);同时代码段也大括号前的一些修饰性描述:classAc
lass{for(inti=0;i<=1;i++){…………}}3、Java语言的结构——语句和代码段作用域(Scope)决定了变量可使用的范围全局变量(Globalvariables):变量可以在整个类中被访问;局部变量(Localvariables):变量只能在定义其的代码段中
被访问。使用局部变量比使用全局变量更安全。3、Java语言的结构——作用域变量的作用域在类体中声明的类成员变量,可在该类的各个成员方法中使用;在某个方法体中或参数表中声明的变量,只能在该方法体中使用;
在一个代码段中定义的变量只能在该代码段或者该代码段的子代码段中可见。publicclassVariableScope{publicstaticvoidmain(Stringarge[]){intx;x=10;if(x==
10){inty=20;System.out.println("x="+x);System.out.println("y="+y);}System.out.println("x="+x);System.out.println(“y=
”+y);}}y没有定义在Java语言中,嵌套的程序块的内层与外层,不允许定义相同的变量名,否则将导致编译错误。publicclassScopeError{publicstaticvoidmain(Stringarge[])
{intE=999;{intE=999;System.out.println("E="+E);}}}4、Java控制语句分支语句:if-else,switch循环语句:while,do-while,for与程序转移有关的其它语句
:break,continue,return例外处理语句:try-catch-finally,throwif(boolean-expression1){statements1;}elseif(boolean-e
xpression2){statements2;}…else{statementsN;}4、Java控制语句——条件语句if-else布尔表达式boolean-expression是任意一个返回布尔数据类型的表达式,而且必须是(比C或C++要严格)。与C或
C++一样,每个单一语句后面都要有分号。为了增强程序的可读性,应将if或else后的语句用{}括起来。else子句是任选的,不能单独作为语句使用,它必须和if语句配对使用,并且总是与离它最近的if配对。inti1=123;in
ti2=456;if(i1>i2){System.out.println(“Thebiggeroneis:”+i1);}else{System.out.println(“Thebiggeroneis:”+i2);}
4、Java控制语句——条件语句if-elseswitch(expression){casevalue1:{statements1;break;}……casevalueN:{statementsN;break;}[defaul
t:{defaultStatements;}]}4、Java控制语句——多分支语句switch表达式expression的返回值类型必须是这几种类型之一:int、byte、char、short。case子句中的值valueI必须是常量,而且所有case子
句中的值应是不同的。default子句是任选的。break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行。(如果某个case分支后没有break语句,程序将
不再做比较而执行下一个分支。)switch语句的功能可以用if-else语句来实现,但某些情况下,使用switch语句更简炼。4、Java控制语句——多分支语句switchinta=100;intb=20;intc
;charoper=„+‟;switch(oper){case„+‟:{c=a+b;break;}case„-‟:{c=a-b;break;}default:{c=a*b;break;}}4、Java控制语句——多分支语句switch循环语句while(当型循环)[initial
ization]//初始化条件while(termination){//循环条件body;//循环体[iteration;]//迭代,变更循环条件}当表达式termination为true时,执行{}中的语句,否则终止循环。tbfalsetrue4、Java控制语句——循环语句wh
ile(当型循环)循环语句do-while(直到型循环)[initialization]//初始化条件do{body;//循环体[iteration;]//迭代,变更循环条件}while(termination);//循环条件首先执行一遍{}中的语句
,当表达式termination为true时,继续执行{}中的语句,否则终止循环。tbfalsetrue4、Java控制语句——循环语句do-while(直到型循环)循环语句for(另一种当型循环)for(initialization;termination;iterat
ion){body;//循环体}initialization//初始化条件termination//循环条件iteration//迭代,变更循环条件tbodyfalsetrueiterainit4、Java控制语句——循环语句for(另一种当型循环)for语句执行时
,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。初始化、终止以及迭代部分都可以为空语句(但分号不能省),三者均为空的时候,相当于一个无限循环。
在初始化部分和迭代部分可以使用逗号语句,来进行多个操作。逗号语句是用逗号分隔的语句序列。for(inti=0,intj=10;i<j;i++,j--){……}4、Java控制语句——循环语句for(另一种当型循环)intn=1,sum=0;while(n
<=10){sum=sum+n;n++;}intn=10,sum=0;do{sum+=n;n--;}while(n>0);intsum=0;for(inti=1;i<=10;i++){sum+=i;}while循环do-while循环for循环4、Java控制语句——循环语句在swit
ch语中,break语句用来终止switch语句的执行,使程序从整个switch语句后的第一条语句开始执行。在循环语句中,break用于终止并跳出循环,从紧跟着循环体代码段后的语句执行。在Java中,可以
为每个代码块加一个标号,一个代码块通常是用大括号{}括起来的一段代码。加标号的格式为:BlockLabel:{codeBlock;}break语句的第二种使用情况就是跳出它所指定的块,并从紧跟该块后的第一条语句处执行。BlockL
abel:{codeBlock;breakBlockLabel;codeBlock;}4、Java控制语句——程序转移相关语句breaka:{//标记代码块a……b:{//标记代码块b……c:{//标记代码块
c……breakb;……//这段语句将不执行}//代码块c结束……//这段语句也不执行}//代码块b结束……//从这段语句开始执行}//代码块a结束4、Java控制语句——程序转移相关语句breakco
ntinue语句用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。对于for语句,在进行终止条件的判断前,还要先执行迭代语句。它的格式为:continue;也可以用continue跳转到括号指明的外层循环中,这时的
格式为continueouterLable;4、Java控制语句——程序转移相关语句continueouter:for(inti=0;i<10;i++)//外层循环{inner:for(intj=0;j<1
0;j++)//内层循环{if(i<j){……continueouter;}……}//内层循环结束……}//外层循环结束for(inti=0;i<10;i++){if(i==5){continue;}
……}4、Java控制语句——程序转移相关语句continuereturn语句从当前方法中退出,返回到调用该方法的语句处,并从紧跟该语句的下一条语句继续程序的执行。返回语句有两种格式:returnexpression;//当方法需要返回某
种类型数据时return;//当方法的返回类型为void时单独一条return语句放在方法中间时,会产生编译错误,因为其后的语句将不会执行到。若真需要退出方法,可以通过将return语句嵌入某些语句(如if-else)来使程序在未执行完方法中所有语句时退出。4、Java控制语句——程序转移相关
语句return在进行程序设计时,错误的产生是不可避免得。如何处理错误?把错误交给谁去处理?程序又该如何从错误中恢复?这是任何程序设计语言都必须面对和解决的问题。Java语言中是通过例外(Exception)来处理错误的。我们将在后面详细介绍例外及其处理。4、Java控制语句—
—例外处理语句try-catch-finally,throw