JAVA程序设计课件:第3章 Java语言基础_第1页
JAVA程序设计课件:第3章 Java语言基础_第2页
JAVA程序设计课件:第3章 Java语言基础_第3页
JAVA程序设计课件:第3章 Java语言基础_第4页
JAVA程序设计课件:第3章 Java语言基础_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

第三章Java语言基础

任何程序设计语言,都是由语言规范和一系列开发库组成的。如标准C,除了语言规范外,还有很多函数库;MSVisualC++更是提供了庞大的APIs和MFC。

Java语言也不例外,也是由Java语言规范和Java开发类库(JFC)组成的。

学习任何程序设计语言,都是要从这两方面着手,尤其是要能够熟练地使用后者。主要内容3.1标识符

3.2分隔符3.3注释3.4数据类型3.5变量与常量3.6运算符与表达式3.7数组3.8Java语句3.9控制语句3.1标识符定义:标识符是是程序的重要组成部分,由一串字符序列组成,是程序中不带空格和分隔符的字符串,标识符用来表示类名,变量名、数组名、方法名等名称。标识符的表示:标识符中只能由大写和小写英文字母、数字(0-9)、下划线(_),和美元符号($)组成。并且标识符中的第一个符号必须是英文字母、下划线或者美元符号,数字不能作为标识符的开头字符。

3.1标识符以下哪些是合法的标识符?HelloJavaWorld_xy3c$histkAd_gsHello&JavaXy-3c3histkAdgsHelloJavaWorld_xy3c$histkAd_gs关键字又称为保留字,是Java语言中由系统规定的标识符,其含义和用法由系统事先规定具有专门的意义和用途,不能当作一般的标识符使用。abstractbreakbytebooleancatchcaseclasscharcontinuedefaultdoubledoelseextendsfalsefinalfloatforfinally ifimportimplementsintinterfaceinstanceoflonglengthnativenewnullpackageprivateprotectedpublicfinalreturnswitchsynchronizedshortstaticsupertrytruethisthrowthrowsthreadtransientvoidwhile3.2分隔符分隔符用来分隔和组合标识符,辅助编译程序阅读和理解Java源程序。分隔符分为两类:没有意义的空白符,拥有确定含义的分隔符。空白符在Java程序中的作用是分隔标识符,包括以下四种:空格回车换行制表符Tab键3.2分隔符普通分隔符也用来分隔和区分程序中的不同成分,但是它在程序中有确定的含义。Java的普通分隔符有以下四种:大括号{}:用来标明类体范围、方法体范围、复合语句和数组成员的初始化

分号;:用来标志Java语句的结束

逗号,:用来分隔方法定义中的多个参数,以及分隔相同类型的多个变量的定义。

冒号::用来说明语句的标号,用在程序语句转移中。3.3注释Java语言的注释有三种形式:单行注释://abc多行注释:/*abc*/文档注释:/**abc*/注:SUN公司的J2SDK中的javadoc软件可以识别程序中的文档注释内容(/***/),并自动从程序中提出注释内容,形成程序文档。

Javadoc参考文献Code

Conversion:

SUN

推荐的书写

Java

程序文档的格式和规范

/docs/codeconv/html/CodeConvTOC.doc.html

包括如何命名(文件,类,方法),各种语句的格式,文档的写法。3.4-5数据类型,变量与常量Javatypesystemprimitivereferencenullcharnumericbooleanclassinterfacearrayintegralfloating-pointbyteshortintlongfloatdouble基本类型:在Java语言中,基本数据类型的长度是固定的,不依赖于具体的计算机硬软件平台环境,这使得Java语言具有良好的跨平台特性和可移植性。数据类型

所占位数

数的范围

char 16 0~65535byte

8

-27~27-1short 16 -215~215-1 int 32 -231~231-1 long 64 -263~263-1 float 32 3.4e-038

~3.4e+038double 64 1.7e-308

~1.7e+3083.2数据类型,变量与常量常量用文字串来表示,具有不同的类型,其定义格式为:finalTypevarName=value[,varName[=value]…];变量程序中的基本存储单元,其定义包括变量名、变量类型和作用域几个部分,定义格式为:TypevarName=value[,varName[=value]…];作用域:指可访问变量的一段代码,在程序中不同的地方声明的变量具有不同的作用域:局部变量、类变量、方法参数、例外处理参数。在一定的作用域内,变量名必须唯一。3.2数据类型,变量与常量整型整数包括字节型byte、短整形short、整形int和长整形long四种类型。长整数的表示方法为在数值后面添加一个字母L(或l)。例如:456l,189450L,5L整型数据——byte,short,int,long整型常量1.十进制整数 如123,-456,0定义:finalintA=123;2.八进制整数 以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;浮点型Java语言共有两种浮点类型:单精度类型float和双精度类型double。浮点型数据只采用十进制数表示,其表示方式可以为小数和指数两种形式。为了区分单精度数和双精度数,在单精度数值后面必须添加字符f(或F),双精度数后面添加字符d(或D),或者不添加任何字符。小数形式的浮点数表示如下:35.14f,4.678f,-0.675f,78.09F,45.789d,78.09,-0.675D浮点型指数形式的浮点数中必须包含指数部分,指数部分由字符e(或E)和一个带符号数组成,具体实例表示如下:0.45e45f,4.795E7f,7.09e8d,5e43,8.706E4D实型常量1.十进制数形式 由数字和小数点组成,且必须有小数点,如0.123,.123,123.,123.02.科学计数法形式 如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。实型变量类型为float或double,float在机器中占32位,double占64位。实型变量的定义如:

floatx=0.123; //指定变量x为float型,且赋初值为0.123doubley=0.123F;doublez=0.123f;字符型字符型数据表示单个Unicode编码中的字符,Unicode是一中新的国际标准编码方案,每个Unicode字符占用16个比特位,即两个字节的内存空间,它包含的信息量比一个字节编码的ASCII标准码多了一倍。字符型常数的表示为用单引号括起来的字符。例如:‘A’‘7’‘{’‘#’字符型Unicode编码通常采用16进制编码方案表示,范围从‘\u0000’到‘\uffff’。转义符\u是Unicode编码的前缀,表示这是一个Unicode编码。字符常量 字符常量是用单引号括起来的一个字符,如‘a’,‘A’;字符型变量

类型为char,它在机器中占16位。字符型变量的定义如:

charc=‘a’; //指定变量c为char型,且赋初值为'a'布尔型布尔型数据用于逻辑测试功能,主要用在选择语句和循环语句中,用于判断条件是否成立,从而决定下步的操作。布尔型数据只有两个值:true和false,分别表示逻辑真和逻辑假。使用举例

publicclassAssign{publicstaticvoidmain(Stringargs[]){intx,y;byteb=6;floatz=1.234f;doublew=1.234;booleanflag=true;charc;c=‘A‘;x=12;y=300;......}}数据类型转换自动类型转换整型、实型、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级:低----------------------------------------------------->高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如果从高级转换成低级,则需要强制类型转换,但会导致溢出或精度下降。如:inti=8;byteb=(byte)i;

3.6Java运算符和表达式(1)运算符算术运算符:+,―,*,/,%,++,――关系运算符:>,<,>=,<=,==,!=布尔逻辑运算符:!,&&,||位运算符:>>,<<,>>>,&,|,^,~赋值运算符:=,及其扩展赋值运算符如+=,―=,*=,/=等。条件运算符:?:其它:包括分量运算符

·

,下标运算符

[],实例运算符instanceof,内存分配运算符new,强制类型转换运算符(类型),方法调用运算符

()等。由于数据类型的长度是确定的,所以没有长度运算符sizeof。赋值运算符赋值运算符作用是将右边表达式的值赋给左边的变量。表现形式为:vname=expression例如:y=4;y=y*5;赋值表达式右边的表达式也可以是一个赋值表达式,这样的赋值表达式遵循右结合规律。例如:x=y=7例:Assign.java算术运算符算数运算符对数值型数据(整型数据和浮点型数据)进行运算。一元运算符:“―”、“++”,和“――”三种;二元运算符:“+”、“―”、“*”、“/”,“%”五种。例:Compute1.java关系运算符关系运算用来比较两个数据之间的关系,并产生一个布尔型值true或者false。关系表达式经常用在条件判断语句和循环条件判断中.例:Comparing.java运算符运算用法意义==等于op1==op2op1与op2相同时,结果为真!=不等于op1!=op2op1与op2不同时,结果为真>大于op1>op2op1大于op2时,结果为真<小于op1<op2op1小于op2时,结果为真>=大于等于op1>=op2op1大于或者等于op2时,结果为真<=小于等于op1<=op2op1小于或者等于op2时,结果为真逻辑运算符逻辑运算是用来在布尔型数据之间进行比较的运算,运算的结果仍为布尔型值。逻辑运算常用来连接关系表达式。&与&&,|与||的区别booleanb=(x>y)&&(++x<y)与booleanb=(x>y)&(++x<y)例:Logic.java运算符运算用法意义&与op1&op2op1与op2都为真时,结果为真|或op1|op2op1与op2都为假时,结果为假!非!opop为假时,结果为真,反之为假^异或op1^op2op1与op2相同时,结果为假&&条件与op1&&op2op1与op2都为真时,结果为真||条件或op1||op2op1与op2都为假时,结果为假位运算符位运算是对整数按其二进制位进行运算,运算结果仍是整数。运算符运算用法意义&按位与op1&op2op1与op2的二进制数进行按位与|按位或op1|op2op1与op2的二进制数进行按位或^按位异或op1^op2op1与op2相同时,结果为假~按位取反~op将op按位求反>>算术右移op>>n将op各位右移n位<<算术左移op<<n将op各位左移n位>>>无符号右移op>>>n将op各位右移n位,空位补0按位逻辑运算令x=7,y=3,对它们进行逻辑运算,具体为:

011101110111&0011|0011^0011

001101110100运算结果为:7&3=3,7|3=7,7^3=4。LogicBit.java算术移位运算算数左移运算符(<<)和算术右移运算符(>>)进行移位运算时,按照补码移位规则进行,即左移时,空位补0;右移时,空位补符号位,正数补0,负数补1。无符号右移运算符(>>>)表示无论操作数是负数还是正数,移位时空位补0。ArithShift.java其它运算符1.复合赋值运算符运算符用法意义+=op1+=op2op1=op1+op2-=op1-=op2op1=op1-op2*=op1*=op2op1=op1*op2/=op1/=op2op1=op1/op2%=op1%=op2op1=op1%op2&=op1&=op2op1=op1&op2|=op1|=op2op1=op1|op2^=op1^=op2op1=op1^op2<<=op1<<=op2op1=op1<<op2>>=op1>>=op2op1=op1>>op2>>>=op1>>>=op2op1=op1>>>op2其他运算符2.条件运算符条件运算符是三元运算符,可以代替某些if-else语句。条件运算符的一般形式为:exp1?exp2:exp3例:intx=5,z=7;Y=x〉z?x:z;其他运算符3.对象运算符对象运算符为instanceof,用来测试一个对象是否属于某个指定类(或其子类)的实例,如果是,返回结果true,否则返回结果false。例如:booleanb=myFrameInOutinstanceofFrameInOut;Java运算符和表达式运算符的优先次序1) .,

[],() 9) &2) ++,--,!,~,instanceof 10) ^3) new(type) 11) |4) *,/,% 12) &&5) +,- 13) ||6) >>,>>>,<< 14) ?:7) >,<,>=,<= 15) =,+=,-=,*=,/=,%=,^=8) ==,!= 16) &=,|=,<<=,>>=,>>>=表达式表达式是由操作数和运算符按一定的语法形式组成的符号序列。一个常量或一个变量名字是最简单的表达式,其值即该常量或变量的值;表达式的值还可以用作其他运算的操作数,形成更复杂的表达式。例:

x num1+num2 a*(b+c)+d 3.14 x<=(y+z) x&&y||zJava运算符和表达式3.7Java数组

在Java语言中,数组是一种最简单的复合数据类型(引用数据类型)。数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。数组有一维数组和多维数组。其语法与C语言类似。3.7Java数组数组的创建:数组的声明数组空间的分配3.7Java数组数组的声明数组的声明主要是定义数组的名称以及数组元素的数据类型,Java语言中,共有两种数组声明方式:

type

arrayName[];

type[]

arrayName;

例:intmyArray[];Double[]d;3.7Java数组数组空间的分配要想使用数组,需要为其在内存中分配空间,即创建数组空间。分配数组空间的语法为:arrayName=newtype[n]例:myArray=newint[10];d=newdouble[5];数组空间的创建工作可以同数组的声明组合在一起,用一条语句实现。intmyArray=newint[10];doubled=newdouble[5];3.8Java语句表达式语句方法调用语句空语句复合语句控制语句3.8Java语句表达式语句一个表达式后加上分号(;)便构成一个语句。例如:i=8;i=i+3;b=i=i+1y=x<z?x:z;3.8Java语句方法调用语句:方法调用加分号便构成一条语句,如:System.out.println(“helloworld!”);3.8Java语句空语句:只有一个分号的语句称为空语句。下面是一条空语句:;空语句有时用来作为循环语句的循环体,表示循环体什么操作都不做。3.8Java语句复合语句:用花括号{}将一些语句括起来便成为复合语句,又称为块语句。在复合语句中定义的变量只能在该块内使用。例:PublicclassBlockStmt{publicstaticvoidmain(Stringargs[]){intx=3;System.out.println(“first:x=”+x);{inty=6;x++;System.out.println(“second:x=”+x);System.out.println(“y=”+y);}x++;System.out.println(“third:x=”+x);}}3.8Java语句与其他编程语言一样,Java语句支持条件语句和循环语句,用来控制程序的流程。Java控制语句有8种:if()–else-switch()-for()-while()-do-while()continuebreakreturn3.9Java流程控制语句

结构化程序设计的三种基本流程:顺序语句分支语句:if-else,switch

循环语句:while,do-while,for

与程序转移有关的其它语句:

break,continue,return

例外处理语句:try-catch-finally,throw条件语句if-elseif语句一般采取以下形式:

if(p) A else BJava控制语句

布尔表达式p是任意一个返回布尔数据类型的表达式,而且必须是(比C或C++要严格)。与C或C++一样,每个单一语句后面都要有分号。为了增强程序的可读性,应将if或else后的语句用{}括起来。

else子句是任选的,不能单独作为语句使用,它必须和if语句配对使用,并且总是与离它最近的if配对。inti1=123;inti2=456;if(i1>i2){System.out.println(“Thebiggeroneis:”+i1);}else{System.out.println(“Thebiggeroneis:”+i2);}Java控制语句

如果if语句中的语句A或B也是一个if语句,该语句称为嵌套条件语句。if(i>0)if(j>5)y=1;elsey=-1;Java控制语句

多分支语句switch switch(expression)

{ casevalue1:

{statements1; break;

}

…… casevalueN:

{ statementsN; break;

} default: { defaultStatements; }}Java控制语句

表达式expression的返回值类型必须是这几种类型之一:int、byte、char、short。

case子句中的值valueI必须是常量,而且所有case子句中的值应是不同的。

default子句是任选的。

break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行。如果某个case分支后没有break语句,程序将不再做比较而执行下一个分支。

switch语句的功能可以用if-else语句来实现,但某些情况下,使用switch语句更简炼。Java控制语句inta=100;intb=20;intc;charoper=‘+’;switch(oper){case‘+’:{c=a+b;break;}case‘-’:{c=a-b;break;}default:{c=a*b;break;}}Java控制语句

循环语句while(当型循环)

[initialization]//初始化条件

while(termination){//循环条件

body;//循环体

[iteration;]//迭代,变更循环条件

}当表达式termination为true时,执行{}中的语句,否则终止循环。tbfalsetrueJava控制语句

循环语句do-while(直到型循环)

[initialization]//初始化条件

do{ body;//循环体

[iteration;]//迭代,变更循环条件

}while(termination);//循环条件首先执行一遍{}中的语句,当表达式termination为true时,继续执行{}中的语句,否则终止循环。tbfalsetrueJava控制语句

循环语句for(另一种当型循环)for(initialization;termination;iteration){ body;//循环体}initialization//初始化条件

termination//循环条件

iteration//迭代,变更循环条件tbodyfalsetrueiterainitJava控制语句for语句执行时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。初始化、终止以及迭代部分都可以为空语句(但分号不能省),三者均为空的时候,相当于一个无限循环。在初始化部分和迭代部分可以使用逗号语句,来进行多个操作。逗号语句是用逗号分隔的语句序列。

for(inti=0,intj=10;i<j;i++,j--) { …… }Java控制语句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循环Java控制语句程序转移相关语句break在switch语句中,break语句用来终止switch语句的执行,使程序从整个switch语句后的第一条语句开始执行。在Java中,可以为每个代码块加一个标号,一个代码块通常是用大括号{}括起来的一段代码。加标号的格式为:BlockLabel

温馨提示

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

评论

0/150

提交评论