《Java语法基础》PPT课件.ppt

《Java语法基础》PPT课件.ppt

ID:52065609

大小:1.06 MB

页数:97页

时间:2020-03-31

上传者:U-25935
《Java语法基础》PPT课件.ppt_第1页
《Java语法基础》PPT课件.ppt_第2页
《Java语法基础》PPT课件.ppt_第3页
《Java语法基础》PPT课件.ppt_第4页
《Java语法基础》PPT课件.ppt_第5页
资源描述:

《《Java语法基础》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

WenJiabao,CollegeofInformationScienceandEngineeringinHunanUniversity.第2讲Java语法基础 OUTLINE了解Java的语法基础Java数据类型Java的运算符、表达式、语句、程序对象包装类Java编程的基本技巧Java流程控制语句(分支、循环、跳转)Java数组编程实践 OUTLINE了解Java的语法基础1.1标识符的命名约定和惯例1.2关键字1.3Java注释Java数据类型Java的运算符、表达式、语句、程序对象包装类Java编程的基本技巧Java流程控制语句(分支、循环、跳转)Java数组编程实践 1了解Java的语法基础与所有的程序设计语言一样,Java语言也是由Java语言规范和Java开发包(API)组成的。学习任何语言都要从这两个方面入手。Java语言主要由以下六种元素组成:标识符、关键字、分隔符、数据类型、运算符、表达式组成。如何运用这些语言构成自己的程序呢?importjava.io.*;publicclassHelloworldApp{publicstaticvoidmain(String[]args){inti=100;System.out.println(i/8):}}找出上面程序中的语法要素: 1了解Java的语法基础IdentifierKeywordvsReservedword分隔符空格tab:分隔符.:用于包与包、包与类、类和方法、对象与方法之间分隔符;:每条Java语句以;结束,Java允许将一个长语句写到多行中去,但是不以断开Keyword、String。一般不将多个语句写到一行中。分隔符{…}:类体;方法体;复合语句分隔符[]:数组分隔符():方法的定义或方法的调用分隔符“”:字符串String分隔符‘’:字符三种注释//…/*…*//**…*/运算符 1.1Java标识符的命名约定和惯例标识符的命名规则:标识package,class,method,variable,parameter,interface等成份的名字,是字母、下划线、$、数字组成的字符混合序列,不能以数字开头,区别大小写,不能使用Java的关键字或保留字。命名时应尽量体现各自描述的事物或属性、功能等。一般性命名约定:尽量使用完整的英文单词或确有通用性的英文缩写或专业术语。词组中采用大小写混合,使之更易于识别。避免使用过长的标识符,一般控制在15个字符以内。避免使用类似的标识符,或者仅仅是大小写不同。 1.1Java标识符的命名约定和惯例具体命名惯例如下:包名就为名词或名词性短语,全部小写。类名、接口名应为名词或名词性短语,各单词首字母大写。方法名应为动词或动宾短语,首字母小写,其余各单词首字母大写。变量名应为名词或名词性短语,首字母小写,其余各单词首字母大写。常量名应全部大写。举例:packagecn.edu.hdc;importjava.util.StringTokenizer;privatestaticfinalintMAX_AVAILABLE=100;publicclassPrintStreamextendsFilterOutputStreamimplementsAppendable,CloseablepublicbooleanequalsIgnoreCase(StringanotherString) 1.2KeywordandReservedWords关键字KeyWord或保留字ReservedWord全部小写是Java语言本身使用的系统标识符,有特定的语法含义,不能用作标识符使用。Java所有数据类型的长度都固定,并与平台无关,因此没有sizeof保留字。KeywordsarespecialreservedwordsinJavathatyoucannotuseasidentifiers(names)forclasses,methods,orvariables.Theyhavemeaningtothecompiler;itusesthemtofigureoutwhatyoursourcecodeistryingtodo.Table1-1containsall49ofthereservedkeywords. 1.2KeywordandReservedWords 1.2KeywordandReservedWordsThefollowingareaccessmodifiers:privateMakesamethodoravariableaccessibleonlyfromwithinitsownclass.(私有:类内可访问)friendlyprotectedMakesamethodoravariableaccessibleonlytoclassesinthesamepackageorsubclassesoftheclass.(受保护:包内或子类内可访问)publicMakesaclass,method,orvariableaccessiblefromanyotherclass.(公开:任何类均可访问)资源<->方法和属性人<->类class家庭<->包Package门牌号码>手机号码>电视>日记本 1.2KeywordandReservedWordsThefollowingareclass,method,and/orvariablemodifiers:abstractUsedtodeclareaclassthatcannotbeinstantiated,oramethodthatmustbeimplementedbyanonabstractsubclass.(抽象类:不可建立实例;抽象方法:必由非抽象子类予以实现)finalMakesitimpossibletoextendaclass,overrideamethod,orreinitializeavariable.(最终类:不可继承;最终方法:不可重载;最终变量:不能再次初始化)classKeywordusedtospecifyaclass.interfaceKeywordusedtospecifyaninterface.(接口类)extendsUsedtoindicatethesuperclassthatasubclassisextending.(扩展:指定被继承的超类)implementsUsedtoindicatetheinterfacesthataclasswillimplement.(实现:指定被实现的接口类)newUsedtoinstantiateanobjectbyinvokingtheconstructor.(激活构造方法,实例出一个对象) 1.2KeywordandReservedWordsstaticMakesamethodoravariablebelongtoaclassasopposedtoaninstance.(静态方法或变量:属于类而非方法)synchronizedIndicatesthatamethodcanbeaccessedbyonlyonethreadatatime.(同步方法:线程独占访问)transientPreventsfieldsfromeverbeingserialized.Transientfieldsarealwaysskippedwhenobjectsareserialized.(暂态域:不可序列化)volatileIndicatesavariablemaychangeoutofsyncbecauseitisusedinthreads.(易失变量:线程同步可能改变其值)nativeIndicatesamethodiswritteninaplatform-dependentlanguage,suchasC.(本地方法:用平台相关的语言编写的方法) 1.2KeywordandReservedWordsThefollowingarekeywordsusedtocontroltheflowthroughablockofcode:ifUsedtoperformalogicaltestfortrueorfalse.elseExecutesanalternateblockofcodeifaniftestisfalse.switchIndicatesthevariabletobecomparedwiththecasestatements.caseExecutesablockofcode,dependentonwhattheswitchtestsfor.defaultExecutesthisblockofcodeifnoneoftheswitch-casestatementsmatch.forUsedtoperformaconditionalloopforablockofcode.whileExecutesablockofcoderepeatedlywhileacertainconditionistrue.doExecutesablockofcodeonetime,then,inconjunctionwiththewhilestatement,itperformsatesttodeterminewhethertheblockshouldbeexecutedagain. 1.2KeywordandReservedWordsbreakExitsfromtheblockofcodeinwhichitresides.continueStopstherestofthecodefollowingthisstatementfromexecutinginaloopandthenbeginsthenextiterationoftheloop.instanceofDetermineswhetheranobjectisaninstanceofaclass,superclass,orinterface.(是否是某个类/超类/接口类的实例?)returnReturnsfromamethodwithoutexecutinganycodethatfollowsthestatement(canoptionallyreturnavariable). 1.2KeywordandReservedWordsThefollowingarekeywordsusedinerrorhandling:tryBlockofcodethatwillbetried,butwhichmaycauseanexception.(可能产生异常的代码块)catchDeclarestheblockofcodeusedtohandleanexception.(处理异常的代码块)finallyBlockofcode,usuallyfollowingatry-catchstatement,whichisexecutednomatterwhatprogramflowoccurswhendealingwithanexception.(当异常出现时,最终必须执行的代码块)throwUsedtopassanexceptionuptothemethodthatcalledthismethod.(抛出异常给调用方法)throwsIndicatesthemethodwillpassanexceptiontothemethodthatcalledit.(指定会抛出异常的方法)assertEvaluatesaconditionalexpressiontoverifytheprogrammer’sassumption.(计算条件表达式,以检验程序员的假设) 1.2KeywordandReservedWordsThefollowingarekeywordsusedforpackagecontrol:importStatementtoimportpackagesorclassesintocode.(输入包或类)packageSpecifiestowhichpackageallclassesinasourcefilebelong.(指定源文件的所属包) 1.2KeywordandReservedWordsThefollowingkeywordsareprimitives:byteAn8-bitinteger(signed).doubleA64-bitfloating-pointnumber(signed).floatA32-bitfloating-pointnumber(signed).intA32-bitinteger(signed).longA64-bitinteger(signed).shortA16-bitinteger(signed).charAsingleUnicodecharacter(16-bitunsigned)(Unicode字符,16位无符号)booleanAvalueindicatingtrueorfalse. 1.2KeywordandReservedWordsThefollowingkeywordsareaspecialtypeofreferencevariable:superReferencevariablereferringtotheimmediatesuperclass.(引用父类的变量)thisReferencevariablereferringtothecurrentinstanceofanobject.(引用一个对象的当前实例的变量)Thevoidkeywordisusedonlyinthereturnvalueplaceholderofamethoddeclaration.voidIndicatesnoreturntypeforamethod. 1.2KeywordandReservedWordsTherearetwokeywordsthatarereservedinJavabutwhicharenotused.Ifyoutrytouseoneofthese,theJavacompilerwillscoldyouwiththefollowing:constDonotusetodeclareaconstant;usepublicstaticfinal.gotoNotimplementedintheJavalanguage.It’sconsideredharmful. 1.2KeywordandReservedWordsWhichtwoarereservedwordsintheJavaprogramminglanguage?(Choosetwo.)A:runB:importC:defaultD:implementCorrectAnswers:B,CWhichisakeyword?A:goB:NULLC:BreakD:ClassE:transientCorrectAnswers:E 1.3Java注释注释(Comment):程序中的说明性文字(程序的功能、结构、版权等信息),增强程序的可读性和易维护性,有三种形式。//...单行注释,注释到行尾。/*...*/单行或多行注释。/**...*/文档注释。可以用Javadoc.exe自动加入生成帮助文档的单行或多行注释。 OUTLINE了解Java的语法基础Java数据类型2.1整型2.2字符型2.3浮点型2.4逻辑型2.5String类型2.6变量2.7数据类型的转换Java的运算符、表达式、语句、程序对象包装类Java编程的基本技巧Java流程控制语句(分支、循环、跳转)Java数组 2Java数据类型Java的数据类型(数据的集合以及在这个集合上能进行的运算)包括:八种基本数据类型和引用类型: 2.1整型整型:指不带小数的带符号数值,Java语言中没有无符号数。注意:在表达式中整数类型默认为int类型,长整型必须以L做结尾。inti=0xff;(十六进制以0x开头)inti=126;(十进制数不能以0开头,0除外)inti=067;(八进制以0开头)计算结果超过计算机可表示的数据范围,称为溢出(Overflow)。我们要防止数据溢出现象。 2.1整型在Java语言中,为byte、short、int、long分别提供了对应的对象包装类:Byte、Short、Integer、Long,以对象的方式提供了很多实用方法和常量,方便在基本数据类型和引用类型之间进行转换,详细请查阅JavaAPI文档。Integer类中提供了4个常量(查帮助文档)Integer.MAX_VALUE:整型最大值(2147483647)。Integer.MIN_VALUE:整型最小值(-2147483648)。将String转换为byte,short,int,long的方法:Strings=“127”;byteb=Byte.parseByte(s);shortt=Short.parseShort(s);inti=Integer.parseInt(s);longl=Long.parseLong(s); 2.2浮点型浮点型(FloatPointNumber):可以带小数点的带符号数值。Java有单精度float(32bits),双精度double(64bits)两种类型。浮点型默认为double,如果要指定类型请在常数后加F(f)或D(d)。浮点型有两种表示形式:小数形式:12.37F,-0.5234D指数形式:2.5E4,2.1E-7不要使用float,double来执行精确的货币计算,因为会出现一些误差。Java推荐使用java.math.BigDecimal类用于任意精度的浮点值计算。 2.2浮点型在Java语言中,为float、double分别提供了对应的对象包装类:Float、Double,以对象的方式提供了很多实用方法和常量,方便在基本数据类型和引用类型之间进行转换,详细请查阅JavaAPI文档。Float.MAX_VALUE,Float.MIN_VALUEFloat.POSITIVE_INFINITY,Float.NEGATIVE_INFINITYFloat.NaN(NotaNumber,divbyzero)将String转换为float、double的方法:Strings=”127”;floatf=Float.parseFloat(s);doubled=Double.parseDouble(s); 2.3字符型Java中采取双字节Unicode编码,而我们熟悉的ASCII码(AmericanStandardCodeforInformationInterchange)是单字节的英文字符编码。char类型可与short类型相互转换。字符型的四种表示形式:用单引号括起来的单个字符。’A’‘中’转义字符以开头的表示控制字符:如’r’:表示回车(CarriageReturn)如’123’:表示编码为123(8进制)的Unicode字符,可表示部分Unicode字符。如’u2af3’:表示编码为2af3(16进制)Unicode字符,可表示全部Unicode字符。 2.3字符型关于字符集编码问题:标准ASCII:七位编码,高位为0,取值范围0-127扩展ASCII:八位编码。取值范围0-255GB2312-80:GBK:即汉字内码扩展规范(ChineseInternalCodeSpecification)。1995年12月发布,向下与GB2312编码兼容,向上支持ISO10646.1国际标准,是前者向后者过渡过程中的一个承上启下的标准。ISO10646是国际标准化组织ISO公布的一个编码标准,即UniversalMultilpe-OctetCodedCharacterSet(简称UCS),它与Unicode组织的Unicode编码完全兼容。ISO10646是一个包括世界上各种语言的书面形式以及附加符号的编码体系。其中的汉字部分称为“CJK统一汉字”(China,Japan,Korea)。BIG5:中文繁体字编码,为港、台地区广泛使用。UNICODE:将全世界所有的字符进行了统一编码,实现国际化、可移植性。ASCII是UNICODE的子集。 2.4逻辑型逻辑型数据只有两种取值:true和false,长度为1Byte。不能与其它七类基本数据类型相互转换。含关系运算符和逻辑运算符的表达式的结果为boolean。Java语言没有无符号整数、指针、结构体struct、联合union、枚举等数据类型,这使得Java简单易学,但功能并没有丝毫减弱。 2.5字符串StringString类型不属于八种基本类型,而属于引用类型。String常量是用双引号括起来的Unicode字符序列。以下两种写法基本上等价:Strings=newString(“abc”);Strings=“abc”;详见后面String和StringBuffer部分的讲解。 2.6变量和常量变量是程序中数据的基本存储单元之一,由变量名、数据类型、修饰符、初值组成。我们遵循“先定义,后使用”的原则。[modifier][=]可用在成员变量前的修饰符:static、final、public、protected、private、transient等。可用在局部变量前的修饰符:final常量只能赋一次值,不能改变。数据类型:8种基本类型Primitivetype和引用类型Referencetype。变量的命名规则与标识符的命名规则相同。声明一个变量,内存中分配一块空间,大小由变量的数据类型决定。在Java程序中声明变量后,可以用赋值语句来初始化变量,任何变量都不能没有初始值,否则无法通过编译。 2.6变量和常量根据变量的作用域的不同,变量可分为:局部变量方法的形式参数:在整个方法内有效。方法体中定义的变量:在整个方法内有效。复合语句{}中定义:在{}内有效。成员变量:在类内、方法外定义的变量,在整个类中有效。类变量:有static修饰的成员变量,只能在static方法中直接使用,在non-static方法中使用需要先new一个对象,然后通过对象名.变量名来访问。对象变量:无static修饰的成员变量,先new一个对象,然后通过对象名.变量名来访问。异常处理参数:try{…}catch(Exceptione){…}finally{…} 2.7数据类型的转换规则基本数据类型的转换:八种基本数据类型与String之间的转换八种基本数据类型与WrappedClass之间的转换八种基本数据类型之间的转换引用类型的转换:上溯造型(子类->父类)下溯造型(父类->子类):没有经过上溯造型,就不能进行下溯造型。 2.7数据类型的转换规则自动隐含的类型转换(要求类型兼容,数据类型长度从小向大转)字符串转换成为数值类型:要转换的字符串对应的数字不能超过相应的数字类型所能表示的最大范围。表达式类型转换:Java整型、浮点型、字符型数据可以混合运算,在运算中,不同类型的数据先转化为同一种类型然后再进行计算。强制转换:指从在机器中占位多的类型向占位少的类型方向转换,这种转换可能导致计算精度的下降和数据的丢失(溢出).一般用在对象之间的转换。语法格式:(低级数据类型)高级类型数据inti=125;byteb=(byte)i;byteshortintlongfloatdoublechar 2.7数据类型的转换规则String和基本数据类型之间的转换:WrappedClassStrings=“127”;byteb=Byte.parseByte(s);shortt=Short.parseShort(s);inti=Integer.parseInt(s);longl=Long.parseLong(s);数字类型转换成为字符串类型:Stringstr=String.valueOf(number);其中number为任何数字类型。 OUTLINE了解Java的语法基础Java数据类型Java的运算符、表达式、语句、程序3.1运算符3.2运算符的优先级3.3语句和程序对象包装类Java编程的基本技巧Java流程控制语句(分支、循环、跳转)Java数组编程实践 3.1运算符运算符按照操作数的数目可分为:单目运算符(++,--.~)双目运算符三目运算符(?:)运算符又可以划分为:赋值运算符、算术运算符、关系运算符、逻辑运算符、位运算符、条件运算符等。2.1.1赋值运算符:先计算后赋值,注意等号==和赋值号=不要混淆。变量名=表达式;等号左右的数据类型相容,否则需要强制转换。补充:赋值表达式的值:System.out.println(a=5);System.out.println(a=false); 3.1运算符3.1.2算术运算符包括:二元运算符(+、-、*、/、%),一元运算符(++、――、+、-)./对整数和浮点数的运算结果不同。System.out.println(8.0/5);System.out.println(8/5);if(i%2==0){}i++选取i的值,再使i的值加1。++i:先使i的值加/减1,再取i的值。例如:inti=5,j=6;System.out.println(i++*j++);i=5;j=6;System.out.println(++i*++j); 3.1运算符3.1.3关系运算符:>>=<<===!=Java中基本数据类型和引用类型数据的相等关系有不同的含义:基本数据类型的相等直接指两个操作数的值是否相等用==操作符;引用数据类型的相等则有两个含义:比较引用类型变量的指针地址是否相等:用==操作符。比较引用类型变量的地址中的内容时,请覆盖Object类的equals()方法来实现,String类、StringBuffer类已覆盖了equals()方法例:inti=5,j=7;System.out.println(i==j);Strings1=“China”,s3;Strings2=“中国”;System.out.println(s1==s2);System.out.println(s1.equals(s2)); 3.1运算符基本类型数据的排序和引用类型数据的排序也不相同。实现Compared接口。 3.1运算符3.1.4逻辑运算符:用在bolean类型数据之间。&与、|或、!非、^异或、&&短路与、||短路或。&(|)用在整数(byte,short,char,int,long)之间时是按位与(按位或);&(|)用在逻辑类型数据之间时是逻辑与(逻辑或);^异或:相同为0,不同为1。与或和短路与、短路或的区别:前者是将运算到底,后者有结果时结束。 3.1运算符3.1.5位运算符:对byte,short,char,int,long(低于int型的操作数自动转换为int,结果为int)进行按位操作:~:按位取反&:按位与|:按位或^:按位异或<<:左移一位(带符号)a<>:右移一位(带符号)a>>b:将二进制形式的a右移b位,高位补符号位。>>>:右移一位(不带符号)a>>>b:将二进制形式的a右移b位,高位补0。 3.1运算符a=10011101,b=00111001;则有如下结果:a<<3,a>>3,a>>>的值各为什么?a&b,a|b,~a,a^b的值各为什么?例程:bitop.java功能:演示位运算。 3.1运算符3.1.6扩展赋值运算符:+=-=*=/=%=&=|=^=>>=<<=<<<=3.1.7其它运算符:条件运算符?:可简化if...else语句语法格式:boolean表达式1?表达式2:表达式3功能:先判断boolean表达式1的值,若为true,则结果为表达式2的值,否则取表达式3值。例如:result=(sum==0?1:num/sum);分量运算符.:用在包名之间、包名与类名之间、类名与静态方法之间、类名与静态成员变量之间、对象名和成员方法之间、对象名和成员变量之间。下标运算符[] 3.1运算符实例运算符instanceof左面是一个对象,右面是一个类。当左面的对象是右面的类创建的对象时返回true,否则返回false,多用在对象的上溯造型和下溯造型比较多时。内存分配运算符new:<类名>对象名=new构造方法(实参数);强制类型转换运算符(类型) 3.1运算符publicclassBlank{publicstaticvoidmain(String[]args){Blankb=newBlank();if(binstanceofBlank){System.out.println("is");}else{System.out.println("isnot");}}//endofmain()}//endofclassBlank 3.2运算符的优先级优先级决定表达式中不同运算的执行顺序。运算符的结合性分为左结合和右结合:左结合就是按照从左向右的顺序计算表达式。右结合就是按照从右向左的顺序计算表达式。例:4*7%3:*%均是左结合性a=b=c:赋值运算符是右结合性,a=(b=c) 3.3Java程序、语句、表达式、运算符Java程序的层次:package包、class类、语句块、方法、语句、表达式、常量/变量/运算符。方法由一条一条语句构成,语句是构成程序的基本单元。语句可对计算机发出操作指令。Java语句要求以;结束,包括:方法调用语句;表达式语句;复合语句;{…;…;}控制语句;package,import语句。语句中可能包含表达式。表达式中包含运算符和操作数。表达式用运算符将操作数(常量、变量和方法等)连接起来有确定值的式子。运算符:包括算术运算符、关系运算符、逻辑运算符、赋值运算符等。 为了兼容非面向对象语言,Java保留了基本数据类型(不携带属性,没有方法可调用),沿用它们只是为了迎合人类根深蒂固的习惯,并能简单、有效地进行常规数据处理。与此同时Java也为各种基本数据类型提供了相应的包装类(WrapperClass),完成简单数据类型到引用类型Object的转换。八种基本数据类型都对应的包装类:4基本数据类型的对象包装类 4基本数据类型的对象包装类要将字符串s转换成基本数据类型,几乎都用“对应包装类.parseXxx(s)”方式实现:Strings=“127”;byteb=Byte.parseByte(s);shortt=Short.parseShort(s);inti=Integer.parseInt(s);longl=Long.parseLong(s);floatf=Float.parseFloat(s);doubled=Double.parseDouble(s);基本类型转换为String,设number为任何数字类型:Stringstr=String.valueOf(number);Stringstr=number+””;利用+的自动转换功能 4基本数据类型的对象包装类包装类和对应的基本数据之间可以进行转换:inti=100;Integerii=Integer.ValueOf(i);inti=ii.intValue();包装类 ByteShortIntegerLongFloatDoubleCharBooleanbyteshortintlongfloatdoublecharboolean构造方法()xxxValue()String 4基本数据类型的对象包装类封装类Integer的一些有用的static方法:publicstaticintparseInt(Strings){…}功能:将字符串转换为十进制整数并返回publicstaticStringtoString(inti){…}功能:返回整数i的String对象。publicstaticStringtoBinaryString(inti){…}功能:返回整数i的二进制表示的String对象。publicstaticStringtoHexString(inti){…}功能:返回整数i的十六进制表示的String对象。作业:编程实现输入一个整数,将其转换为二进制,十六进制数并输出。要求CUI形式、使用swing的InputDialog()、showMessageDialog()方法输入输出信息。 publicclassToBiHex{publicstaticvoidmain(String[]args){Strings1="111";System.out.println("111(2)="+Integer.valueOf(s1,2).intValue());System.out.println("111(16)="+Integer.valueOf(s1,16).intValue());System.out.println("111(10)="+Integer.valueOf(s1,10).intValue());intk=20;System.out.println("20(10)的二进制表示:"+Integer.toString(k,2));System.out.println("20(10)的十六进制表示:"+Integer.toString(k,16));}} OUTLINE了解Java的语法基础Java数据类型Java的运算符、表达式、语句、程序对象包装类Java编程的基本技巧5.1Java的标准输入和输出5.2JDK1.5增加的Scanner()和Printf()5.3图形界面的标准对话框5.4Java程序运行时间计算Java流程控制语句(分支、循环、跳转)Java数组编程实践 5.1Java的标准输入和输出Java.lang.System类提供了3种标准输入和输出流:System→classpublicstaticfinalPrintStreamout→attributeprintln→method标准输入流(System.in)用于读取用户从标准输入设备或用户定义的输入设备数据的输入。InputStreamReaderiin=newInputStreamReader(System.in);BufferedReaderbin=newBufferedReader(iin);System.out.print("请输入一个字符串:");Strings=bin.readLine(); 5.1Java的标准输入和输出标准输出流(System.out):用于在标准输出设备或用户指定的输出设置上输出数据。System.out.print(表达式1+表达式2+……);System.out.println(表达式1+表达式2+……);System.out.println();标准出错流(System.err)用于显示出错信息System.err.print(表达式1+表达式2+……);System.err.println(表达式1+表达式2+……); 5.1Java的标准输入和输出+的三种含义算术运算的加String的连接操作concat()只要+两侧的操作数中有一个为字符串类型,则先将另一个操作数转换为字符串,然后进行连接操作。a=10;b=20System.out.println(a+””+b);System.out.println(a+b+””);System.out.println(””+a+b); 5.2JDK1.5增加的Scanner()和printf()JDK1.5增加的java.util.Scanner类和System.out.printf()方法,来简化用户数据输入和输出。Scanner类一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。1.从键盘上输入数据:importjava.util.Scanner;Scannerreader=newScanner(System.in);System.out.print("请输入一个字符串:");inti=reader.nextInt();用reader对象调用haveNext()来循环判断是否还有用户输入,可以调用nextByte(),nextShort(),nextInt(),nextLong(),nextDouble(),nextFloat(),nextLine()来读取用户在命令行输入的各种数据类型。 5.2JDK1.5增加的Scanner()和printf()2.printf(格式控制部分,表达式1,表达式2,…);类PrintStream,java.io.PrintWriter和java.lang.String都增加了四个新的格式化方法。printf()和format()方法具有相同的功能.System→classpublicstaticfinalPrintStreamout→out是类System的属性。println→methodSystem.out.printf("Piisapproximately%5.2f",Math.Pi);printf(格式控制部分,表达式1,表达式2,…); 5.2JDK1.5增加的Scanner()和Printf()格式控制部分:%[argument_index$][flags][width][.precision]conversionargument_index是1-n之间的正整数,说明了对应后面参数的序号,一般省略。System.out.printf("%2$d++++++%1$d ",100,200);width表示输出的场宽,默认右对齐,指定场宽小于实际长度时自动向右扩展,场宽前[flags]加负号左对齐。precision代表数值的小数位数conversion代表被格式化的参数的类型:%ddecimal,%ooctal,%xhexadecimal,%ffloat/double%caUnicodecharacters%sString逗号格式化标志:%,20.2f 5.3图形界面的标准对话框1.javax.swing.JoptionPane.showConfirmDialog():询问用户是否确定的对话框。2.javax.swing.JoptionPane.showInputDialog():提示用户输入数据的对话框importjavax.swing.JOptionPane;str=JOptionPane.showInputDialog(“请输入:");i=Integer.parseInt(str);(将String转换为需要的数据类型)语法格式:publicstaticStringshowInputDialog(ComponentparentComponent,Objectmessage,Stringtitle,intmessageType) 5.3图形界面的标准对话框3.javax.swing.JoptionPane.showMessageDialog():显示数据的对话框importjavax.swing.JOptionPane;str=JOptionPane.showMessageDialog(null,“123456”,“标题栏”,1);publicstaticvoidshowMessageDialog(ComponentparentComponent,Objectmessage,Stringtitle,intmessageType)javax.swing.JoptionPane.showOptionDialog():可以实现以上3种方法的综合功能。 5.4Java程序运行时间计算Java程序运行时间的计算,以ms为单位。importjava.util.*;longstart=Calendar.getInstance().getTime();//longstart=newDate().getTime();…………longend=Calendar.getInstance().getTime();//longend=newDate().getTime();Sytem.out.println(s2-s1);注:publiclonggetTime():ReturnsthenumberofmillisecondssinceJanuary1,1970,00:00:00GMT(历元即格林威治标准时间1970年1月1日的00:00:00.000)representedbythisDateobject. OUTLINE了解Java的语法基础Java数据类型Java的运算符、表达式、语句、程序对象包装类Java编程的基本技巧Java流程控制语句(分支、循环、跳转)6.1if语句6.2switch语句6.3for语句6.4while语句6.5do…while语句6.6continue语句和break语句Java数组编程实践 UML:ActivitydiagramsBohmandJacopini'sworkdemonstratedthatallprogramscouldbewrittenintermsofonlythreecontrolstructuresthesequencestructure,theselectionstructureandtherepetitionstructure.ActivitydiagramsarepartoftheUML.Anactivitydiagrammodelstheworkflow(alsocalledtheactivity)ofaportionofasoftwaresystem.Suchworkflowsmayincludeaportionofanalgorithm,suchasthesequencestructureinFig.2.1.Activitydiagramsarecomposedofspecial-purposesymbols,suchasaction-statesymbols(rectangleswiththeirleftandrightsidesreplacedwitharcscurvingoutward),diamondsandsmallcircles.Thesesymbolsareconnectedbytransitionarrows,whichrepresenttheflowoftheactivity,thatis,theorderinwhichtheactionsshouldoccur 6.1顺序结构结构化程序设计的三种结构:顺序、分支、循环。Figure2.1.Sequencestructureactivitydiagram. 6.2if语句if语句多用于二中择一,利用if的嵌套也能实现多中择一。语法格式:if(exp){statement1;}[else{statement2;}]注意:表达式exp的值应为boolean.statement1,statement2即使只有一句也应用{}括起。 6.2if语句Figure2.2if...elsedouble-selectionstatementUMLactivitydiagram.if(grade>=60){System.out.println("Passed");}else{System.out.println("Failed");} 6.2if语句A:Ifaistrueandbistruethentheoutputis"A&&B."B:Ifaistrueandbisfalsethentheoutputis"notB."C:Ifaisfalseandbistruethentheoutputis"ELSE."D:Ifaisfalseandbisfalsethentheoutputis"ELSE."CorrectAnswers:C 6.3switch语句switch语句:switch语句多用于多中择一。语法格式:switch(exp){caseconst1:statement1;break;caseconst2:statement2;break;..............caseconstn:statementn;break;[default:statement_default;break;]}注意:exp必须是下述四种类型之一:int,byte,char,short.在case子句中给出的匹配值consti必须是一个常量,且各case子句中的consti值各不相同。例程:输入年year月month,输出该月的天数days。注:闰年能被4整除不能被100整除;或者能被400整除。 6.3switch语句 6.3switch语句A:value=3B:value=4C:value=5D:value=6E:value=7F:value=8CorrectAnswers:F 6.4for语句for语句:一般用于已知循环次数的情况下,语法格式:for(init_statement;test_exp;alter_statement){body_statement}例:intresult=0;for(inti=0;i<10;i++){result+=i;}无限循环(在循环体中一定要有break跳出语句)for(;;){…}Whiletrue{…} 6.4for语句Figure5.3.forstatementheadercomponents. 6.4for语句JDK1.5中For语句的增强:这个新的语法结构减少了因为iterator和索引变量在遍历集合与数组时所带来的繁琐和出错几率。importjava.util.*; publicclassEnhancedForLab{    publicstaticvoidmain(String[]args){       Vectorv=newVector();v.add(newString("HelloWorld"));v.add(newInteger(10));v.add(newDouble(11.0));v.add(newLong(12));for(Iteratori=v.iterator();i.hasNext();){System.out.println("Vectorelementis:"+i.next());       }for(Objecto:v){System.out.println("Vectorelementis:"+o);       }} 6.4for语句importjava.util.*; publicclassEnhancedForLab2{ publicstaticvoidmain(String[]args){String[]s={"Java2","Platform","Standard","Edition","1.5","is","the","latest","release","of","the","Java","Platform"};for(inti=0;i=0;j--){if(((1<=0;当条件为真时执行。while:先判断,后执行;执行次数>=0;当条件为真时执行。do...while:先执行,后判断;执行次数>=1;当条件为真停止执行。 6.7continue语句和break语句1break语句:语法格式:break[label]功能:终止某个语句块的执行,跳转到该语句块后的第一个语句开始执行。switch语句中break语句出现在多层嵌套的语句块中时,可以通过为各层语句块加标签,并在break带相应标签的方式,指明要终止的是哪一层语句块。2标签语句:由Java标识符加冒号组成。 6.6continue语句和break语句3continue语句:语法格式:continue[label]功能:用于跳过某个循环语句块的一次执行,直接执行下一次循环。 importjavax.swing.JOptionPane;publicclassGuessNumber{publicstaticvoidmain(Stringargs[]){inti=0;Stringstr=null;intnum=(int)(Math.random()*100)+1;while(i!=num){str=JOptionPane.showInputDialog("请输入你所猜的数(1-100):");i=Integer.parseInt(str);if(i>num){JOptionPane.showMessageDialog(null,"你猜的数太大了!","提示",1);}if(i>2*4&48<<8/4+2 (3)"abc"+123||8<<2(4)2*4&&0<2||4%2任意准备一份学生成绩表,其中包括至少3门课程、每门课程至少10名同学的成绩。请编写程序完成以下功能:(1)统计并输出各门课程的平均成绩。(2)输出等级表:优、良、中、及格与不及格。(3)输出各门课程各个等级的分布情况表(百分占比)。编写程序,用数组存储并输出乘法九九表。 QuestionAndAnswer

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭