JAVA语言程序设计 Java应用基础_第1页
JAVA语言程序设计 Java应用基础_第2页
JAVA语言程序设计 Java应用基础_第3页
JAVA语言程序设计 Java应用基础_第4页
JAVA语言程序设计 Java应用基础_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

第2章Java应用基础1Java概述主要内容2.1标识符、关键字标识符关键字2.2基本数据类型2.3常量、变量常量变量2.4运算符与表达式2.5流程控制语句2.6Java开发类库组成掌握java.lang包22.1标识符、关键字Java语言使用国际字符集(Unicode)Unicode字符集定义了一套国际标准字符集。通常的ASCII码是8位的,而Unicode字符集中的每个字符占16位,即2个字节,整个字符集共包括65336个字符,兼容ASCII,排在前面的256个字符就是ASCII码。Unicode除了可以表示256个ASCII码外,还可以表示汉字、拉丁语、希腊字母、朝鲜语等。32.1.1标识符标识符是赋予变量、类、方法、数组、文件等的名称。Java语言规定标识符是以字母、下划线“_”或美元符号“$”开始,随后可跟数字、字母、下划线或美元符号的字符序列。Java标识符大小写敏感,没有长度限制,可以为标识符取任意长度的名字,但关键字不能作为标识符。4关于标识符为增强程序可读性,Java作如下的约定:类、接口: 通常使用名词,且每个单词的首字母要大写方法: 通常使用动词,首字母小写,其后用大写字母 分隔每个单词常量: 全部大写,单词之间用下划线分隔变量: 通常使用名词,首字母小写,其后大写字母

分隔每个单词,避免使用$符号。例:下面是合法的标识符:identifier thisone UserName User_name _system_varl $max下面是不合法的标识符:8_value (不能以数字打头)$book*c (不能包含非法字符*)52.1.2关键字关键字是指对编译器有特殊意义,在程序中不能用作其它目的的字符序列,关键字都是由小写字母组成的。Java中的关键字:abstract boolean

break byte

case

catch char class continue default do double else extends final finally float for if implements import instanceof int interface long native newnull package private protected public returnshort static super switch synchronizedthis throw throws transient tryvoid volatile while6关于关键字注:true和false不是关键字,类似地,对象值null也没有列入关键字。但是不能把它们派作其它用途。还有些关键字,如cast、future、goto、generic、inner、operator、outer、rest、var等都是Java保留的没有意义的关键字。

72.2基本数据类型数据类型规定一类数据的数据位长度,取值范围,以及对该类数据所能进行的操作。Java数据类型分为基本数据类型和引用数据类型(引用类型又称为组合类型)。Java语言定义了8种基本数据类型,其分类及关键字如下:整型: byte、short、int、long浮点型:float、double字符型:char布尔型:boolean8表2.1Java中的基本数据类型9关于补码关于补码正数的原码反码补码相同,负数的补码为反码加1。以八位为例, 正2 原码反码补码都是00000010

负2 原码是10000010,反码是11111101(符号位不变), 补码是11111110因为计算机只会累加,别的都不会,一切运算都要变成加法才能完成.那么怎样把减法变成加法呢?就是用补码相加的方法

例如2减2(八位为例)

102.3常量、变量Java语言中存在着两种表征数据的形式:常量与变量。常量:程序运行过程中保持不变,并且不可进行修改的量。变量:用来存放数据且其值可以改变的量称为变量。112.3.1常量Java语言中常量有两种类型:直接常量(值常量)5种 1.整型 12 2.浮点型 2.1 3.布尔型 true 4.字符型 ‘A’ 5.字符串型 “asdfadf”符号常量Java语言中使用关键字final来定义符号常量,finaldoublePI=3.1415926;注:符号常量实质上是一种特殊的变量,也占用内存空间。不同于C语言编译预处理定义的宏。

12值常量整型常量可以用来给整型变量赋值,可以用十进制、八进制和十六进制来表示。十进制整型常量 由0至9的数字组成,没有前缀,不能以0开始,没有小数部分。例如:124,-36等。八进制整型常量 以0为前缀,其后由0到7的数字组成,没有小数部分。例如:0332,-0122等。十六进制整型常量 以0x或0X为前缀,其后由0到9的数字和A到F(大小写均可)字母组成,没有小数部分。例如:0x3A,-0X43f等。1.整型常量(byte、short、int、long)13十进制小数表示法 由整数部分和小数部分组成的。如:4.0,33.32等。 小数点两边的数字不能同时省略且小数点不能省略。科学计数法表示 它常用来表示很大或很小的数,如1.2×1000000在Java中表示为1.2E6。表示方法是在小数表示法后加e(或E)及指数部分。但要注意,e(或E)前面必须有数字,指数部分可正可负,但都是整数(正号可省略)。例如,4.2E-5,3e6等。值常量2.浮点型常量(float、double)3.布尔型常量boolean布尔型常量值只有true和false,true和false必须要小写。true表示“逻辑真”,false表示“逻辑假”。注:和C/C++语言不同,在Java语言中不能认为“非0值或1”是true,“0值”是false。14值常量Java中的字符采用Unicode字符集的编码方案,是16位的无符号整数,占2个字节,表示的字符从0~65535。Unicode字符集可以支持各类文字的字符。字符型常量分为一般字符常量和转义字符常量。对于可输入字符,用单引号将字符括起来,如‘a’,‘A’,‘我’等。对于不可输入字符,采用转义字符表示。4.字符型常量15表2.2

转义字符16值常量字符串不是Java的基本数据类型,是Java提供的位于 java.lang包中的String类,字符串常量就是字符串类java.lang.String类的一个对象,故它可以使用类String

中的方法,所有字符串常量值都用双引号括起来。需要注意的是null可以简单视为一个引用类型的常量值, 表示不引用任何对象。在Java编码规范中,规定null是 所谓null类型的唯一值,且规定null可转换到任何引用类型。5.字符串常量172.3.2变量每个变量都要有个名字,变量名必须是合法的标识符, 并且最好具有一定的意义,有意义的变量名可以提高 程序的可读性。 如,要定义一个表示学生数量的变量,用student_num或

StudentNumber做变量名要比用k更合适。所有变量在使用之前必须被定义,格式如下:数据类型关键字变量名[=初始值];18变量例://x为基本整型intx;//y为浮点数(单精度),并且赋给初始值3.14floaty=3.14;//可以在一个语句中声明多个同一类型的变量longarea,width,length;192.4运算符与表达式对各种类型的数据进行加工的过程称为运算,表示各种不同运算 的符号称为运算符,参与运算的数据称为操作数。运算符的优先 级与结合性如下表所示。一个Java表达式是由操作数和运算符按一定的语法规则组成的 符号序列。20212.4.1赋值运算符和赋值表达式1.赋值运算符基本赋值运算符 “=”

它的作用是设置变量的值,即将一个数据赋给一个变量,实际上是将特定的值写到变量所对应的内存单元中。赋值运算符是双目运算符,因为“=”两边都要有操作数。“=”左边是待赋值的变量,右边是要赋的值。复合赋值运算符 +=、-=、*=、/=、%= <<=、>>=、&=、|=、^=22赋值运算符和赋值表达式2.赋值表达式我们可以用常量对变量赋值,也可以用变量对变量赋值,还可以用任何表达式对变量赋值。用赋值运算符连接起来的式子称为赋值表达式。赋值表达式的值就是被赋值的变量的值。赋值表达式加上分号就构成了赋值语句,是极为常用的Java语句。例:publicclassAssignExpression{ publicstaticvoidmain(String[]args) {

inta,b,c,d; a=4; b=a; a=5; c=d=6; c*=a; d%=a+b; System.out.println("a,b,c,d:"+a+""+b+""+c+""+d); }}232.4.2算术运算符和算术表达式1.算术运算符

算术运算符包括:+

-

*

/

%(取余) 算术运算符是双目运算符。 利用算术运算符连接起来的式子称为算术表达式。2.自增、自减运算符++、--

单目运算符。其功能是使变量的值增1或减1。 ++和--运算有以下四种情况:(1)i++:使用i之后,i的值加1,即先取值,后自加。等价于i=i+1。(2)++i:先使i加1,然后再使用i,即先自加,后取值。等价于i=i+1。(3)i--:使用i之后,i的值减1,即先取值,后自减。等价于i=i-1。(4)--i:先使i减1,然后再使用i,即先自减,后取值。等价于i=i-1。

注:++和--只能用于变量,不能用于常量和表达式。因为++和--蕴含着赋值操作。++和--运算符经常用于循环程序设计中。

242.4.3关系运算符和关系表达式1.关系运算符又称比较运算符。Java提供了6种关系运算符:>、>=、<、<=、==、!=。前4种优先级相同,且高于后面的两种。2.关系表达式用关系运算符连接的式子称为关系表达式。一般格式为:表达式1关系运算符表达式2关系表达式的值代表着某种关系的真假。比如,如果x的值是10,那么,x>5的值是“真”,而x<1的值是“假”。

252.4.4逻辑运算符和逻辑表达式1.逻辑运算符Java提供了3种逻辑运算符:&&(与)、||(或)、!(非)。a&&b:只有a与b都为true,结果才为true,否则为false。a||b:只有a与b都为false,结果才为false,否则为true。!a:与a的值相反。2.逻辑表达式用逻辑运算符连接起来的式子称为逻辑表达式,用于表示复杂的运算条件。

注:在逻辑表达式求值的过程中,并不是所有的逻辑运算都被执行,即在Java中要进行所谓的短路计算。26逻辑运算符和逻辑表达式短路计算例如:(1)在求解a&&b&&c的值时,只有a的值是真时,才会计算b的值;只有a和b均为真时,才会计算c的值。如果a为假,则不会继续计算b和c的值,因为整个表达式的值已经确定了。(2)在求解a||b||c的值时,只有a是假时,才会计算b的值;只有a和b均为假时,才会计算c的值。如果a是真,就不会计算b和c的值,因为整个表达式的值已经确定了。Java编译程序按照“短路”计算方式来生成目标代码。272.4.5条件运算符和条件表达式条件运算符是Java提供的唯一一个三目运算符。用条件运算符连接起来的式子称为条件表达式。格式: 表达式1?表达式2:表达式3运算规则: 如果表达式1的值为真,那么整个条件 表达式的值就是表达式2的值,否则整 个条件表达式的值是表达式3的值。例:4>6?3:9的值请判断一下。282.4.6位运算符和位表达式位运算符的作用在于对整数数值的二进制表示进行运算,像二进制的AND与OR等运算。(1)按位求反运算符~对操作数的二进制数据的每一个二进制位都取反,即1变成0,而0变成1。如~8的结果为-9。(2)位与运算符&参与运算的两个操作数,相应的二进制数位进行位与运算。如5&11结果为1。(3)位或运算符|参与运算的两个操作数,相应的二进制数位进行位或运算。如5|11结果为15。(4)位异或运算符^

参与运算的两个操作数,相应的二进制数位进行位异或运算。如5^11结果为14。29位运算符和位表达式(5)保留符号位的右移运算符>>将一个操作数的各个二进制位全部向右移若干位,这个位数由右操作数来决定,移到右端的低位被舍弃,左边空出的位全部用最高位的符号位来填充。如5>>1结果为?-9>>1,结果为?(6)不保留符号位的右移运算符>>>与>>不同的是,>>>右移后左边空出的位用0填充。如5>>>1结果为2。-9>>>1,结果为2147483643。(7)左移运算符<<将一个操作数的所有二进制位向左移若干位,右边空出的位填0。若高位左移后溢出,则舍弃溢出的数。如5<<1结果为10。302.5流程控制语句程序控制为对程序语句的执行顺序进行的规定。有三种结构:(1)顺序结构(2)分支结构(3)循环结构Java提供了如下的分支、循环语句:分支控制语句包括:if-else、switch-case。循环控制语句包括:while、do-while和for。跳转语句:break、return和continue。两类特殊语句:(1)异常处理语句:如try-catch-finally、throw等。参见第6章。(2)注释语句。31流程控制语句Java与C/C++之间的差别很细微,可归纳为两点:(1)在C语言中,条件表达式可以是数值型,而在Java条件语句中,条件表达式必须是布尔型,不能是数值。(2)Java取消了对goto语句的支持。322.5.1顺序结构顺序结构是最简单、最基本的结构,在顺序结构内,顺序执行各个语句。图2.1表示了一个顺序结构形式,从图中可以看出它有一个入口a点,一个出口b点,在结构内A框和B框都是顺序执行的处理框。33顺序结构空语句、表达式语句、复合语句是Java程序依次顺序执行的语句,故又称为顺序结构。空语句是仅由分号构成的语句,表示什么动作都不做。一个表达式加上一个分号就是一个表达式语句,只有少量的几种表达式才能构成表达式语句。它们是:由赋值运算符构成的表达式、由++或--构成的表达式、方法调用、new表达式。标号语句的格式为:标识符:<语句>其中:<语句>可为任何合法的Java语句。复合语句是指由一对花括号{}括起来的任意数量的语句,有时又称为块语句或组语句。34顺序结构示例:importjava.io.*;//引入java的输入输出包publicclassNiZhuan{ publicstaticvoidmain(Stringargs[]){

intn,i,j,k; Stringstr="";

BufferedReaderbuf;//参见第8章

buf=newBufferedReader(newInputStreamReader(System.in)); System.out.print("请输入一个三位数的整数:");

try{

str=buf.readLine();//从键盘输入数据 }catch(IOExceptionex){}//捕获异常

n=Integer.parseInt(str); //调用Integer类的parseInt方法将字符串转换为整型

i=n/100;//求百位数

n=n-i*100;j=n/10;//求十位数

n=n-j*10;k=n;//求个位数

System.out.println("逆转数:"+k+j+i);//反向显示}}352.5.2选择结构1.if语句(1)简单if语句if(布尔表达式){

语句(组);}publicclassMaxValue1{ publicstaticvoidmain(Stringargs[]){

inta,b,max; a=Integer.parseInt(args[0]); b=Integer.parseInt(args[1]); max=a; if(a<b) {max=b;} System.out.println("最大数为:"+max);}}

36选择结构(2)if-else语句if(布尔表达式){

语句(组)A;}else{

语句(组)B;}publicclassMaxValue12{ publicstaticvoidmain(Stringargs[]){

inta,b,max; a=Integer.parseInt(args[0]); b=Integer.parseInt(args[1]); if(a<b) max=b; else max=a; System.out.println("最大数为:"+max);}}37选择结构(3)if语句的嵌套if语句中的任何一个子句可以是任意可执行语句,当然也可以是一条if语句,这种情况称为if语句的嵌套。publicclassIfElse{ publicstaticvoidmain(Stringargs[]){

intscore; chargrade; score=Integer.parseInt(args[0]); System.out.println("score="+score); if(score>94)grade='A'; elseif(score>79)grade='B'; elseif(score>59)grade='C'; elsegrade='D'; System.out.println("grade="+grade);}}

382.switch语句switch语句是多分支选择语句,又称开关语句。

switch语句的一般形式如下:switch(表达式){case常量表达式1:

语句组1;break;case常量表达式2:

语句组2;break;…case常量表达式n:

语句组n;break;default: 语句组n+1;}392.5.3循环结构循环结构是指在一定条件下反复执行一个程序块的结构。循环结构也是只有一个入口,一个出口。分为 (1)当型循环结构

(2)直到型循环结构40循环结构Java语言中,实现循环结构的控制语句有while、do~while、for语句(三种等价)。1.while循环while语句用来实现“当型”循环结构,即先判断表达式,后执行语句。其一般形式如下:while(循环条件){

语句;//循环体}2.do-while循环do-while语句用来实现“直到型”循环结构,即先执行循环体,然后判断循环条件是否成立。其一般形式如下:do{

语句;//循环体}while(循环条件);41循环结构publicclassSumCycle1{ publicstaticvoidmain(Stringargs[]){

intsum,n;n=1;sum=0;while(n<=100){sum+=n;n++;}System.out.println("sum="+sum); }}

publicclassSumCycle2{ publicstaticvoidmain(Stringargs[]){

intsum,n;n=1;sum=0;do{sum+=n;n++;}while(n<=100);System.out.println("sum="+sum); }}

42循环结构3.for循环for语句是java语言中使用灵活方便的一种循环语句,它不仅用于循环次数已知的情况,还能用于循环次数预先不能确定只给出循环结束条件的情况。for语句的一般形式为:for(表达式1;表达式2;表达式3){

语句;//循环体}publicclassSumCycle3{ publicstaticvoidmain(Stringargs[]) {

intsum,i;for(sum=0,i=0;i<=100;i++)sum+=i;System.out.println("sum="+sum); }}

43循环结构4. break、continue、标号、return语句、 System.exit()方法break、continue、标号Java中可以用break和continue两个循环跳转语句进一步控制循环。可以用在三种循环语句中的任意一种。格式如下:break[label];//从所在的switch语句、循环语句中跳出。continue[label];//跳过循环体的剩余语句,开始执行下一次循环。标号是出现在一个语句之前的标识符,定义如下:label:statement;示例:参看例2.13与2.1444循环结构publicclassBreak{ publicstaticvoidmain(Stringargs[]) {

intnumber,i; number=Integer.parseInt(args[0]); for(i=2;i<number;i++) if(number%i==0)break;//如果number能被i整除则退出循环

if(i==number) System.out.print(number+"是素数");

else System.out.println(number+"不是素数"); }}

45循环结构publicclassContinue1{

publicstaticvoidmain(Stringargs[]){

inti,count=0; for(i=100;i<=150;++i){if(i%3==0)continue;System.out.print(i+"");count++; if(count%5==0) System.out.println();//一行输出5个数据 } System.out.println(); }}

46循环结构return语句和System.exit()方法return语句用来从当前方法中退出,返回到调用该方法的语句处,并从紧跟该语句的下一条语句继续执行。如果在main()方法中执行return语句,则使程序执行返回到Java运行系统,因为Java运行系统调用了main()方法。要想从程序的任意地方直接一步到位地退出程序,而不是返回到调用该方法的语句处,可以使用System.exit()方法。

47循环结构5.循环的嵌套一个循环体内包含另一个完整的循环结构称为循环的嵌套,内嵌的循环中还可以嵌套循环,这就是多重循环。(a)(b)(c)48循环结构publicclassContinue2{publicstaticvoidmain(Stringargs[]){

inti,j;

intcount=0;Label1:for(i=2;i<100;i++){for(j=2;j<i;j++){if(i%j==0)continueLabel1;//如果i能被j整除,进行外层循环}

if(i<10)System.out.print(i+"");else{System.out.print(i+"");count++;if(count%5==0)System.out.println();//一行输出5个数据}

System.out.println();}}492.6Java开发类库组成Java提供了丰富的标准类来帮助程序设计者更方便快捷地编写程序,这些标准类组成了类包,主要有:java.lang

java.awtjava.appletjava.awt.imagejava.awt.peerjava.iojava.util除了java.lang之外,其余类包都不是java语言所必须的。50Java开发类库组成包含了定义Java语言时必须的类,任何java程序都将自动引入这个包。其中的类包括:Object类:java中最原始、最重要的类,每个java类都是它的子类,它实现了每个类都必须具有的基本方法。基本类型包装器:Boolean,Character,Number,Double,Float,Integer,Long。String类:字符串类。Math类:数学函数的集合。执行线程:类Thread,ThreadGroup,接口Runable。System类和Runtime类:可以通过类Runtime和System访问外部系统环境。System类的两个常用功能就是访问标准输入/输出流和错误流、退出程序。异常和错误:类Exception,Error,接口Throwable。其它类:接口Cloneable、运行时的类等。1.java.lang51Java开发类库组成2.java.appletJavaApplet是Java编程的一个主要魅力,java.applet类包提供了Applet的运行机制以及一些编写Applet非常有用的方法。3.java.awt本类包是各种窗口环境的统一界面(AWT代表AbstractWindowsToolki

温馨提示

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

评论

0/150

提交评论