java-第2章Java语言基础.ppt

上传人:ni****g 文档编号:572339089 上传时间:2024-08-13 格式:PPT 页数:35 大小:279.46KB
返回 下载 相关 举报
java-第2章Java语言基础.ppt_第1页
第1页 / 共35页
java-第2章Java语言基础.ppt_第2页
第2页 / 共35页
java-第2章Java语言基础.ppt_第3页
第3页 / 共35页
java-第2章Java语言基础.ppt_第4页
第4页 / 共35页
java-第2章Java语言基础.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《java-第2章Java语言基础.ppt》由会员分享,可在线阅读,更多相关《java-第2章Java语言基础.ppt(35页珍藏版)》请在金锄头文库上搜索。

1、第第2章章Java语言基础语言基础n2.1标识符与关键字标识符与关键字n2.2基本数据类型基本数据类型n2.3变量与常量变量与常量n2.4运算符与表达式运算符与表达式n2.5流程控制流程控制n2.6数组和字符串数组和字符串序序:Java与与C+(语言基础比较语言基础比较)n对于变量声明、参数传递、操作符、流控制等使用和对于变量声明、参数传递、操作符、流控制等使用和C+相同的传统相同的传统n摒弃了摒弃了C和和C+中许多不合理的内容中许多不合理的内容n全局变量:全局变量:Java中没有全局变量。中没有全局变量。n指针:指针:Java不支持指针。不支持指针。n数据类型的支持:数据类型的支持:Java

2、在不同平台上数据类型都统在不同平台上数据类型都统一。一。n内存管理:内存管理:Java自动回收无用内存自动回收无用内存。2.1标识符与关键字标识符与关键字n标识符是赋予变量、类和方法等的名称标识符是赋予变量、类和方法等的名称n可从一个字母、下划线可从一个字母、下划线(_)或美元符号或美元符号($)开始。开始。n是是大小写区别对待的大小写区别对待的,且无最大长度。且无最大长度。n合法的标识符:合法的标识符:identifieruserNameUser_name_sys_varl$changen注意:注意:nJava技术源程序采用有效的技术源程序采用有效的16-bit双字节字符编码标准双字节字符编

3、码标准(Unicode),而不是而不是8-bitASCII文本。文本。( (见例题见例题2-1)2-1)n包含美元符号(包含美元符号($)的关键字通常用的较少,因为)的关键字通常用的较少,因为Java用它来表示内部用它来表示内部类,因而最好避免在标识符中使用它们。类,因而最好避免在标识符中使用它们。n检查哪些字符可以用作变量名可用检查哪些字符可以用作变量名可用Character类中的两个方法判断类中的两个方法判断 (java.lang.Character): boolean isJavaIdentifierStart()和boolean isJavaIdentifierPart()1.标识符标

4、识符例题:例题:(Unicode字符字符)publicclassExamplenpublicstaticvoidmain(Stringargs)nncharchinaWord=你你,japanWord=;nintp1=20328,p2=12358;nSystem.out.println(汉字汉字你你字在字在Unicode表中的顺序位置表中的顺序位置:+(int)chinaWord);nSystem.out.println(日语日语字在字在unicode表中的顺序位置表中的顺序位置:+(int)japanWord);nSystem.out.println(unicode表中第表中第20328位置

5、上的字符是位置上的字符是:+(char)p1);nSystem.out.println(unicode表中第表中第12358位置上的字符是位置上的字符是:+(char)p2);nnn注:关于注:关于Unicode信息可以查看信息可以查看http:/www.unicode.orgnhttp:/unicode.org/standard/translations/s-chinese.html(中文)(中文)2.Java关键字(见书关键字(见书13页)页)n数据成分:数据成分:nboolean,int,byte,short,long,char,float,double,void,null,nclass

6、,extends,abstract,interface,implements,nprivate,protected,public,super,this,nconst,final,static,transient,volatile,native,synchronized, n运算加工成分:运算加工成分:nnew,=,n+,-,*,/,%,+,-,?:,&,|,n=,=,!=,instanceof, n控制成分控制成分: nfor,while,do,if,else,switch,case,default,break,continue,goto,return,nthrow,throws,try,ca

7、tch,finally, n程序结构成分:程序结构成分:nimport,package,(,),;,“,/,/*,*/ntruetrue、falsefalse和和nullnull为小写,而不是象在为小写,而不是象在C+C+语言语言中那样为大写。中那样为大写。 n无无sizeofsizeof运算符,所有类型的长度和表示是固定运算符,所有类型的长度和表示是固定的。的。ngotogoto和和constconst在在JavaJava中是关键字,但没有实际语中是关键字,但没有实际语义。义。注意注意:2.2数据类型数据类型简单简单数据数据类型类型布尔数据类型布尔数据类型(boolean) 1位位(1bit

8、)字符类型字符类型(char)2字节字节(16bit)整数类型整数类型(int)byte1字节字节(8bit)short2字节字节(16bit)int4字节字节(32bit)long8字节字节(64bit)浮点类型浮点类型(float)float4字节字节(32bit)double8字节字节(64bit)复合数据类复合数据类型型类类(class)接口接口(interface)数组数组(array)JavaCcharcharchar(16bit)char(signedchar)(8bit)(-128-127)unsignedchar(8bit)(0-255)intbyte(8bit)(-128-

9、127)int(32bit)int(signedint)与机器有关与机器有关unsignedintshort(16bit)shortint(signedshortint)16bitunsignedshortint16bitlong(64bit)longint(signedlongint)32bitunsignedint32bit浮点数浮点数float(32bit)float32bitdouble64bitdouble(64bit)longdouble80bit2.Java与与C+基本数据类型比较基本数据类型比较3.基本数据类型的封装类基本数据类型的封装类基本数据类型基本数据类型封装类封装类bo

10、oleanBooleancharCharacterbyteByteshortShortintIntegerlongLongfloatFloatdoubleDouble注:所有的封装类都提供了静态的注:所有的封装类都提供了静态的valueOf(Strings)方法,把给定的方法,把给定的String类型转换类型转换成对应的简单类型成对应的简单类型2.3常量与变量常量与变量n常量:常量:-使用关键字使用关键字final进行修饰进行修饰例如:例如:finalintMAX=10;finalfloatPI=3.14f;n变量变量:1.变量的声明变量的声明:=,=.2.变量的初始化:变量的初始化:例如:例

11、如:inti=0;booleantruth=true;charc=A;floatx=3.14f;2.4运算符与表达式运算符与表达式n算术运算符:算术运算符:+,-,*,/,%n递增递减运算符:递增递减运算符:+,-(!建议不要和其他表达式混建议不要和其他表达式混用。用。)n关系运算符:关系运算符:=,=,数学函数和常量:数学函数和常量:Math类中提供类中提供sqrt,random,sin,cos,tan,atan,atan2,exp,log,PI,E。(java.lang)若要保证平台无关性,应使用若要保证平台无关性,应使用StrictMath类。类。n1.常用运算符常用运算符举例:举例:(

12、运算符运算符)nclassExample2_3npublicstaticvoidmain(Stringargs)nchara1=十十,a2=点点,a3=进进,a4=攻攻;n/好的命名习惯是一行只定义一个变量好的命名习惯是一行只定义一个变量ncharsecret=8;na1=(char)(a1secret);a2=(char)(a2secret);na3=(char)(a3secret);a4=(char)(a4secret);nSystem.out.println(密文密文:+a1+a2+a3+a4);na1=(char)(a1secret);a2=(char)(a2secret);na3=(

13、char)(a3secret);a4=(char)(a4secret);nSystem.out.println(原文原文:+a1+a2+a3+a4);nn2.常用运算符的优先级常用运算符的优先级n优先级由高到低为:优先级由高到低为:.();,+-+(正号正号)-(负号负号)(造型造型)new*/%+-=instanceof=!=&|&|?:=+=-=*=/=%=&=|=n明白优先级顺序可以省略括号,如明白优先级顺序可以省略括号,如语句语句if(x+y3)利用了利用了+优先级比优先级比高。高。2.5流程控制流程控制n程序的控制结构分为顺序结构、程序的控制结构分为顺序结构、分支分支结构和结构和循环

14、循环结构结构n1.分支结构:分支结构:If语句语句(二路分支二路分支):格式:格式if(布尔表达式布尔表达式)/或者是或者是语句序列语句序列;else/或者是或者是语句序列语句序列;注注:if(布尔表达式布尔表达式)可以由多个条件经过逻可以由多个条件经过逻辑运算而得到,称为复合条件。复合条件辑运算而得到,称为复合条件。复合条件的布尔运算符是的布尔运算符是&,|,!,&,|.if语句可以嵌套语句可以嵌套Switch语句语句(多路分支多路分支):格式:格式 switch(表达式表达式)case:;break;case:;break;.default:;注注:switch和和case常量表达式中的类

15、常量表达式中的类型可以是型可以是byte、short、int、long和和char。而不能为。而不能为boolean,且类型一致。且类型一致。举例举例:(分支语句分支语句)npublicclassExample2_4/if语句举例语句举例npublicstaticvoidmain(Stringargs)nintmath=65;nintenglish=85;nif(math60)nSystem.out.println(数学及格了数学及格了);nnelsenSystem.out.println(数学不及格数学不及格);nnif(english90)nSystem.out.println(英语是优英

16、语是优);nnelsenSystem.out.println(英语不是优英语不是优);nnif(math60&english90)nSystem.out.println(英语是优英语是优,数学也及格了数学也及格了);nnSystem.out.println(我在学习控制语句我在学习控制语句);nnnimportjava.applet.*;nimportjava.awt.*;npublicclassExample2_5extendsApplet/switch语句语句npublicvoidpaint(Graphicsg)nintx=2;ninty=1;nswitch(x+y)ncase1:ng.s

17、etColor(Color.red);g.drawString(iam1,5,10);nbreak;ncase2:ng.setColor(Color.blue);g.drawString(iam2,5,10);nbreak;ncase3:ng.setColor(Color.green);g.drawString(iam3,5,10);nbreak;ndefault:g.drawString(没有般配的没有般配的,5,10);nnn2.循环结构循环结构for语句:格式语句:格式 for(;)/语句序列语句序列while语句:格式语句:格式while();/语句序列语句序列-确认循环控制变量正确初

18、始化,控制变量必须被正确更新以防止死循环确认循环控制变量正确初始化,控制变量必须被正确更新以防止死循环。 dowhile语句:格式语句:格式do/语句序列语句序列while()举例:举例:(循环结构循环结构)nimportjava.applet.*;nimportjava.awt.*;npublicclassExample2_5extendsAppletnpublicvoidpaint(Graphicsg)nlongjiecheng=1;nfor(inti=10;i=1;i-)njiecheng=jiecheng*i;nng.drawString(10的阶乘是的阶乘是+jiecheng,10,

19、20);nn(1)求求10的阶乘的阶乘(for语句语句)npublicclassExample2_6npublicstaticvoidmain(Stringargs)nintsum=0;nintI;nintj;nfor(i=1;i=10;i+)/计算计算1+3+5+7+9。nif(i%2=0)ncontinue;nsum=sum+i;nnSystem.out.println(sum=+sum);nfor(j=2;j=50;j+)/求求50以内的素数以内的素数(见书中例题见书中例题2.15)nfor(i=2;ij/2)nSystem.out.println(+j+是素数是素数);nn/endof

20、theouterfornn(2)for语句语句npublicclassExample2_7publicstaticvoidmain(Stringargs)finalintMAX=20;inti=0;/-F0intj=1;/-F1intk=0;while(kMAX)System.out.println(“+i+”“+j);i=i+j;/-F2=F0+F1j=i+j;/-F3=F2+F1k=k+2;System.out.println();(3)求求Fibonacci序列序列(while语句语句)npublicclassExample2_8nnpublicstaticvoidmain(String

21、args)inta=12;intb=18;intk=0;System.out.print(“gcd(“+a+”,”+b+”)=“);dok=a%b;a=b;b=k;while(k!=0);System.out.println(a);(4)用辗转相除法求两个整数的最大公因数用辗转相除法求两个整数的最大公因数(do.while语句语句)nbreak;n用来从用来从switch语句、语句、循环循环语句语句中退出。中退出。一般与一般与ifif一起使用一起使用ncontinue;n用来结束本次用来结束本次循环循环。一般与一般与ifif一起使用一起使用nreturn返回值;返回值;n用来使程序从方法中返回

22、,并为方法返回一个值。用来使程序从方法中返回,并为方法返回一个值。nlabel:语句语句;n标识控制需要转换到的任何有效语句,它被用来标识循环构造的复合标识控制需要转换到的任何有效语句,它被用来标识循环构造的复合语句。语句。n!不提倡用标号不提倡用标号!3.特殊流程控制特殊流程控制importjava.awt.Graphics;importjava.awt.Graphics;importjava.applet.Applet;importjava.applet.Applet;publicclassBreakTestextendsAppletpublicclassBreakTestextendsA

23、pplet publicvoidpaint(Graphicsg)publicvoidpaint(Graphicsg)intcount,square,xPos=25;intcount,square,xPos=25;for(count=1;count=10;count+)for(count=1;count=70)break;if(square=70)break;g.drawString(Integer.toString(square),xPos,25);g.drawString(Integer.toString(square),xPos,25);xPos+=20;xPos+=20;g.drawSt

24、ring(Brokeoutofloopatcount=+count,25,40);g.drawString(Brokeoutofloopatcount=+count,25,40); 举例:举例:break举例举例举例:举例:continue举例举例importjava.awt.Graphics;importjava.applet.Applet;publicclassContinueTestextendsAppletpublicvoidpaint(Graphicsg)intxPos=25;for(intcount=1;count=10;count+)if(count=5)continue;g.d

25、rawString(Integer.toString(count),xPos,25);xPos+=15;g.drawString(skipprinting5,25,40);2.6数组和字符串数组和字符串nA:数组:数组nJava中创建一个一维数组步骤:中创建一个一维数组步骤:1.声明一维数组变量:声明一维数组变量:;2.使用使用new为数组分配空间为数组分配空间:=new长度长度n可以声明时为数组赋初值可以声明时为数组赋初值例:例:inta=1,2,3,4,5;n数组的长度数组的长度lengthjava提供了提供了length属性属性返回数组的长度,即数组元素的个返回数组的长度,即数组元素的个

26、数数n注:注:n方括号在变量名之后表示该变量为数组。方括号在变量名之后表示该变量为数组。n方括号在类型之后表示方括号在类型之后表示后面的变量全部后面的变量全部为数组,为数组,推荐使用这种形式推荐使用这种形式,因为便于阅读和初始化。因为便于阅读和初始化。 例:例:student mystudent,herstudent/student mystudent,herstudent/说明都是数组说明都是数组n声明声明数组时,声明的是一个引用,而并没有实际分配内存空间。数组时,声明的是一个引用,而并没有实际分配内存空间。举例:数组举例:数组/求一组数中的最大和最小值求一组数中的最大和最小值publicc

27、lassExample3_3publicstaticvoidmain(Stringargs)finalintSIZE=10;/ 常量常量inttable=newintSIZE;inti,max,min;for(i=0;itable.length;i+)tablei=(int)(Math.random()*100);/产生随机产生随机数数System.out.print(“table:“);for(inti=0;itable.length;i+)System.out.print(“+tablei);/ 输出一维数输出一维数组组System.out.println();max=table0;min

28、=table0;for(i=1;imax)max=tablei;if(tableimin)min=tablei;System.out.println(“Max=“+max);System.out.println(“Min=“+min);(1)创建一个字符串创建一个字符串Stringstr=“abc”;或者:或者:Stringstr=newString(“thisisastring”);Stringstr=null;str=“thisisastring”;注:注:String类有若干个不同的构造函数类有若干个不同的构造函数 String()String(bytebytes)String(byte

29、bytes,intoffset,intlength)String(bytebytes,intoffset,intlength,StringcharsetName)String(bytebytes,StringcharsetName)String(charvalue)String(charvalue,intoffset,intcount)String(Stringoriginal)String(StringBufferbuffer)例:例:chardata=a,b,c;Stringstr=newString(data);B:字符串:字符串(java用用String标记字符串,是标记字符串,是ja

30、va的一个类的一个类)(2)String类的常用方法:类的常用方法:方法方法说明说明intlength()返回字符串的长度返回字符串的长度booleanequals(Objectobj)比较字符串是否相等比较字符串是否相等intcompareTo(Stringstr)比较字符串,返回两者之间的差值比较字符串,返回两者之间的差值Stringconcat(Stringstr)连接字符串连接字符串Stringsubstring(intbeginIndex)返回字符串从返回字符串从beginIndex开始的字符串开始的字符串Stringsubstring(intbeginIndex,intendInd

31、ex)返回字符串从返回字符串从beginIndex开始到开始到endIndex结束的字符串结束的字符串charcharAt(intindex)返回返回index指定位置的字符指定位置的字符intindexOf(Stringstr)返回返回str在字符串中第一次出现的位置在字符串中第一次出现的位置Stringreplace(charoldc,charnewc)以以newc字符替换串中所有的字符字符替换串中所有的字符举例:字符串举例:字符串n1.indexOf()举例举例-一个查找子串的应用程序一个查找子串的应用程序publicclassExample3_4publicExample3_4()su

32、per();publicintdoSearch(Stringstr,Stringsubstr)returnstr.indexOf(substr);publicstaticvoidmain(Stringargs)if(args.length!=2)System.out.println(Usage:javaIndexOfExample);System.exit(0);Example3_4example=newExample3_4();Stringstr=args0;Stringsubstr=args1; System.out.println(searchingstring:+str+for:+su

33、bstr);intindex=example.doSearch(str,substr);if(index!=-1)System.out.println(Foundthesubstringposition+index);elseSystem.out.println(Didnotfindthesubstring);JavaExample3_4“anappleaday”dayn2.字符串比较字符串比较调用调用equals();调用调用equalsIgnoreCase()使用标准比较运算符使用标准比较运算符=compareTo()-一个比较两个字符串的应用程序一个比较两个字符串的应用程序publicc

34、lassExample3_5publicExample3_5()super();publicintcompareStrings(Stringstr1,Stringstr2)pareTo(str2);publicstaticvoidmain(Stringargs)if(args.length!=2)System.out.println(“Usage:javastringCompareExample);System.exit(0);Example3_5example=newExample_5();Stringstr1=args0;Stringstr2=args1;System.out.printl

35、n(“comparestring:”+str1+”with:”+str2+”);Intresult=pareStrings(str1,str2);If(result0)System.out.println(“String1isgreaterthanString2”);ElseSystem.out.println(“String1andString2areequal”);JavaStringCompareExample”Allgoodthings”Allgoodpeople”-与与String类的区别类的区别StringBuffer类创建的类创建的String对象可以通过很多方式进行对象可以通过

36、很多方式进行变化变化String类不能改变类不能改变-创建一个创建一个StringBuffer对象对象StringBuffer();-生成空的生成空的StringBufferStringBuffer(intlength);-生成一个给定长度的空生成一个给定长度的空StringBufferStringBuffer(Stringstr);-通过一个通过一个String对象或对象或String文字生成一个文字生成一个StringBuffer(3)StringBuffer类:类:-StringBuffer的操作的操作(1)在在StringBuffer后附加内容后附加内容例:例:StringBuffer

37、buf=newStringBuffer();buf.append(“thisis”);buf.append(“anotherway”);buf.append(5);或者:或者:buf.append(“thisis“).append(“StringbufferObject”);(2)转换一个转换一个StringBuffer对象为字符串对象为字符串例:例:StringBufferbuf=newStringBuffer();buf.append(“thisis”);buf.append(“anotherway”);returnbuf.toString();(3)提取字符串提取字符串(charAt()

38、和和getChars(),subString()例:例:StringBufferbuf=newStringBuffer(“StringBuffer”);charch=buf.charAt(5);或者:或者:StringBufferbuf=newStringBuffer(“StringBuffer”);charch=newchar20;buf.getChars(7,10,ch,0);(4)使用使用set系列的方法对系列的方法对StringBuffer对象进行操作对象进行操作例:例:buf.setLength();buf.ensureCapacity(512);buf.setCharAt(inde

39、x,char);补充:补充:java基本的输入输出语句基本的输入输出语句n控制台输出:控制台输出:直接输出字符串,非字符串类型会直接输出字符串,非字符串类型会自动转化为字符串。自动转化为字符串。 System.out.println(y);n控制台键盘输入:控制台键盘输入:从键盘输入流读入字符串,再从键盘输入流读入字符串,再转化为相应的类型。转化为相应的类型。importjava.io.*;publicstaticvoidmain(Stringargs)throwsIOExceptionInputStreamReaderins=newInputStreamReader(System.in);B

40、ufferedReaderbr=newBufferedReader(ins);Stringstr=br.readLine();作业作业n1:创建一个阶乘应用程序:创建一个阶乘应用程序n一个数一个数X的阶乘(通常记作的阶乘(通常记作X!)等于)等于X*(X-1)*(X-2)*1。例如。例如4!等于等于4321=24。n创建一个称作创建一个称作Factor的应用程序,运行时从键盘输入一的应用程序,运行时从键盘输入一个正整数,输出其阶乘个正整数,输出其阶乘n考虑你的程序能计算的最大数是多少。考虑你的程序能计算的最大数是多少。n2:求解一个几何题程序:求解一个几何题程序n已知一个直角三角形,其弦(最长

41、边)的长度由下列公已知一个直角三角形,其弦(最长边)的长度由下列公式给出:式给出:n编写一个称作编写一个称作hypotenuse的的Java程序,从键盘输入直程序,从键盘输入直角三角形的两条直角边长度,输出最长边长度。角三角形的两条直角边长度,输出最长边长度。n提示:提示:使用使用java.lang.Math类的类的sqrt方法。方法。n3数组作业:数组作业:n一维数组一维数组n创建一个数组,它有创建一个数组,它有10个个int值,范围从值,范围从1至至10,将引用赋给变量,将引用赋给变量thisArray; ;n用随便的值初始化这个数组,打印出数组所有值;用随便的值初始化这个数组,打印出数组所有值;n编写程序将这个数组中的值从小到大排列,再打印出所有值。编写程序将这个数组中的值从小到大排列,再打印出所有值。n多维数组多维数组n创建一个创建一个5行的倒三角形二维整形数组,将引用给变量行的倒三角形二维整形数组,将引用给变量array2D;n为第一行随便赋一些初值;为第一行随便赋一些初值;n编写程序计算下面几行的值,算法为编写程序计算下面几行的值,算法为:元素的值元素的值=上一行中元素上一行中元素+上一行中右边元素上一行中右边元素n如:如:123453579n思考思考:如何创建三维和三维以上数组?使用数组的缺点是什么?:如何创建三维和三维以上数组?使用数组的缺点是什么?

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号