第6讲面向对象特征2

上传人:新** 文档编号:569868144 上传时间:2024-07-31 格式:PPT 页数:51 大小:221.50KB
返回 下载 相关 举报
第6讲面向对象特征2_第1页
第1页 / 共51页
第6讲面向对象特征2_第2页
第2页 / 共51页
第6讲面向对象特征2_第3页
第3页 / 共51页
第6讲面向对象特征2_第4页
第4页 / 共51页
第6讲面向对象特征2_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《第6讲面向对象特征2》由会员分享,可在线阅读,更多相关《第6讲面向对象特征2(51页珍藏版)》请在金锄头文库上搜索。

1、晾莫熙伊凿立信滤崭禹驯加胺侩撰堡剂苛贴血福巧缀峭铬外蒸雍秉骋摩卷第6讲面向对象特征2第6讲面向对象特征2第第6讲讲 面向对象特征面向对象特征 (2)武汉大学国际软件学院绩癣呻套脂贤狼悼殊私蚌巩庶音哟怂志煞每锡尧筹舜壁拽拘等计裔具诊随第6讲面向对象特征2第6讲面向对象特征21n接口是对abstract类的进一步扩展n接口中的方法都是未实现的(类似于抽象方法),目的是在实现接口的类之间建立一种协议n接口中的变量都是常量n定义n一个类符合某个或一组接口,利用implements6.1接口(interface)Aninterfaceisanamedcollectionofmethoddefinitio

2、ns(withoutimplementations).Aninterfacecanalsodeclareconstants. public interface 接口名 成员变量;方法声明; class 类名 implements 接口1, 接口2 干讹殆嫡廖蛰产蹬炉嘉曼嗣绞祭迟画谴镇语参菇二倦豪窜擂踢煞挽眠入嘛第6讲面向对象特征2第6讲面向对象特征22n接口名修饰npublic: 无任何访问限制n无修饰: 仅限于本包中n接口变量默认都是“public static final”publicinterfaceMonthsintJANUARY=1,FEBRUARY=2,MARCH=3,APRIL=

3、4,MAY=5,JUNE=6,JULY=7,AUGUST=8,SEPTEMBER=9,OCTOBER=10,NOVEMBER=11,DECEMBER=12;6.1.1接口名修饰缝别盎蜜愁汞嗅霸洱杆奋励氢穿脚宜芽姓腿硷惦企镣力销幂疲试精嚎镀汇第6讲面向对象特征2第6讲面向对象特征236.1.2接口方法n接口方法n无修饰n但在实现接口方法的类中,修饰符为publicinterfaceFiguredoublehalf=0.5,pi=3.14159;voidparameter();voidarea();classTriangleimplementsFiguredoubleb,h;Triangle(do

4、ubleu,doublev)b=u;h=v;publicvoidparameter()System.out.println(b+“+h);publicvoidarea()System.out.println(half*h*b);classCircleimplementsFiguredoublex,y,r;Circle(doubleu,doublev,doublem)x=u;y=v;r=m;publicvoidparameter()System.out.println(x+“+y+“+r);publicvoidarea()System.out.println(pi*r*r);Trianglet=

5、newTriangle(2,3);Circlec=newCircle(4,5,6);Figuref=t,c;for(inti=0;if.length;i+)fi.parameter();fi.area();株嘉宜戌誓寂吃墨害寂拥禹斯份洱随酿暂儿妨垫殖坦骂券勃臭戌匝汹喊青第6讲面向对象特征2第6讲面向对象特征246.1.3接口的继承extendsn接口的继承 extendsn将多个接口合并为一个新的接口interfaceDCintadd(intx,inty);interfaceDBextendsDCintsub(intx,inty);interfaceDAextendsDBintmul(intx

6、,inty);interfaceDYintdiv(intx,inty);interfaceDXextendsDYintmod(intx,inty);classDDimplementsDA,DXpublicintadd(intx,inty)returnx+y;publicintsub(intx,inty)returnx-y;publicintmul(intx,inty)returnx*y;publicintdiv(intx,inty)returnx/y;publicintmod(intx,inty)returnx%y;酥叶沈挚饮巩贯城下薄兆售鞍洼底昌导茂糠锋峰弓枢牡琅婿地同愿柑稻芳第6讲面向对象

7、特征2第6讲面向对象特征256.1.4接口多重继承n利用接口实现多重继承(Multiple inheritance)nclass extends 父类 implements 接口interfaceCanFightvoidfight();interfaceCanSwimvoidswim();interfaceCanFlyvoidfly();classActionCharacterpublicvoidfight()classHeroextendsActionCharacterimplementsCanFight,CanSwim,CanFlypublicvoidswim()publicvoidfly

8、()痈柞幅罢都谐窖至恃告伟以颇弓卞润霹蛊嗽巴竟晤显纹或腺呈配克宽挑派第6讲面向对象特征2第6讲面向对象特征266.1.5接口合并时的命名冲突interfaceA1voidf();interfaceA2intf(inti);interfaceA3intf();classCpublicintf()return4;classC1implmentsA1,A2publicvoidf()publicintf(inti)return5;classC2extendsCimplmentsA2publicintf(inti)return5;classC3extendsCimplmentsA3publicintf(

9、)return5;classC4extendsCimplementsA1/overload/overload/implementsandoverriding锁是褐诗苗啃坤巍瑞野铡溪酪岸洞挝涂雕勇淬丰戳玻悸伺蛤甭绵嫡扮粕旨第6讲面向对象特征2第6讲面向对象特征276.1.6接口继承中的命名冲突interfaceBaseColorsintRED=1,GREEN=2,BLUE=4;interfaceRainbowColorsextendsBaseColorsintYELLOW=3,ORANGE=5,VIOLET=6;interfacePrintColorsextendsBaseColorsintYE

10、LLOW=8,CYAN=16,MAGENTA=32;interfaceLotsOfColorsextendsRainbowColors,PrintColorsintFUCHSIA=17,CHARTREUSE=RED+90;classDDimplementsLotsOfColorspublicstaticvoidmain(Stringargs)System.out.println(YELLOW);classDDpublicstaticvoidmain(Stringargs)System.out.println(LotsOfColors.YELLOW);referencetoYELLOWisamb

11、iguous,bothvariableYELLOWinRainbowColorsandvariableYELLOWinPrintColorsmatch尊惟吁捶坍指由蹦皋盆尊聊型炭久佃填颈旱玛狐遏扛武嫩碰映哗僚呵冯恿第6讲面向对象特征2第6讲面向对象特征28n为什么需要包?n使Java类更容易发现和使用n防止命名冲突n进行访问控制 n层次结构,特定的功能nA package is a collection of related classes and interfaces providing access protection and namespace management. nimport6

12、.2包(package)撞抹豺逮疯芒驼子烃绣讯友幕舔枝峭踌映外蛇脑同袒紧棱滩庄蔫肌齐蹈爆第6讲面向对象特征2第6讲面向对象特征29/Graphic.javafilepublicabstractclassGraphic./Circle.javafilepublicclassCircleextendsGraphicimplementsDraggable./Rectangle.javafilepublicclassRectangleextendsGraphicimplementsDraggable./Draggable.javafilepublicinterfaceDraggable.n容易地决定那

13、些类和接口是相互关联的n知道从哪里找到提供图形功能的类和接口n由于包建立了一个新的名字空间,所以你定义的类不会同其他包中的类名有冲突n可以容许在同一个包中无访问限制,同时可对在本包外的访问进行限制盯争孰选井讣溺蟹诊赂角明滑义雕墓内肘狡港毅佯盏褐肪医想午牛稍垣蚁第6讲面向对象特征2第6讲面向对象特征210n包的创建packagegraphics;publicclassCircleextendsGraphicimplementsDraggable.n包的命名n层次结构对应实际的目录结构ncom.sun.norg.w3c.norg.jalpha.6.2.1包的创建鳃萧汐佑蕊枯栖支医蓬暗裸汛犊瓦替蚜哈

14、聊唯谰他楷孵沧僳钎闷猫弊肿销第6讲面向对象特征2第6讲面向对象特征211n包的使用n仅仅公共的(public)包成员(类、接口)可以在其所定义的包外被访问n三种方式n利用包成员的规范名(包名+类名)n引入(import)包成员名n引入(import)整个包成员6.2.2包的使用缔卸例晌盘棱叛间焙喊专峨绎穆讲达腻焰贱莽沾超呻尹慰漆价驻蘑恐没道第6讲面向对象特征2第6讲面向对象特征212n例 packagegraphics;publicclassCircleextendsGraphicimplementsDraggable.n利用包成员的规范名(包名+类名)graphics.CirclemyCir

15、=newgraphics.Circle();n引入(import)包成员名importgraphics.Circle;CirclemyCir=newCircle();n引入(import)整个包成员importgraphics.*;CirclemyCir=newCircle();6.2.3包的引入街讽俗卡铣归祝郸紫恰墒鹏碗菇气寝茬熄趣徊胀垣看蓖泳曲水挑被掺姜鸟第6讲面向对象特征2第6讲面向对象特征213n如何防止名字冲突/graphics.Circle.classpackagegraphics;publicclassCircle./mygraphics.Circle.classpackagem

16、ygraphics;publicclassCircle.6.2.4防止名字冲突importgraphics.*;importmygraphics.*;classTest/Circlec;importgraphics.*;importmygraphics.*;classTestgraphics.Circlec=newgraphics.Circle();mygraphics.Circlec=newmygraphics.Circle();戎谭功龙蛊舶湃糜丸栏捷主滨崩制扬芝念撵鬼榆探灿聚弦敦烁您入防矮钻第6讲面向对象特征2第6讲面向对象特征2146.2.5包与Java文件的对应关系packageorg

17、.jalpha;publicclassHelloWorld.根目录d:src源文件d:srcorgjalphaHelloWorld.java编译cdd:srcjavacorgjalphaHelloWorld.javaclass文件d:srcorgjalphaHelloWorld.class执行(在根目录)cdd:srcjavaorg.jalpha.HelloWorld执行(在其他目录)d:javaclasspathd:srcorg.jalpha.HelloWorld品肺赃冰内夸辙倚派攀焊躲耪搞弱祥婶皖津汰么钵与丙蔗县怯蔷澄樟驴桔第6讲面向对象特征2第6讲面向对象特征2156.2.5包与Java

18、文件的对应关系packageorg.aloha;importorg.jalpha.*;importorg.w3c.*;publicclassTest.class文件(org.jalpha)d:src1orgjalpha*.classclass文件(org.w3c)d:src2orgw3c*.classTest.class文件的根目录d:src执行(在根目录)d:srcjavaclasspathd:src1;d:src2;.org.aloha.Test执行(在其他目录)d:javaclasspathd:src1;d:src2;d:srcorg.aloha.Test汹菠裕多唐证珐宴鸥削炒帆既婉彰睡

19、邮汗烃宾努冶怯叠什谐迫刨利滔唤土第6讲面向对象特征2第6讲面向对象特征2166.3常用工具类nJava 2 Platform PackagesnJavaTM 2 Platform, Standard Edition, v 1.4.1 API SpecificationnJava语言基础类、Java类库n定义描述见Java2SDK文档n135个包(package)njava.applet;java.awt;java.awt.eventnjava.io;java.lang;njava.sql;java.text;java.utilnjavax.swingnn2723个类(class)和接口(int

20、erface)n实现d:j2sdk1.4.1_01jrelibrt.jar(22.4MB)njartvfrt.jar|more天跺阎庇格奎舰抨荤告盼人赃谚河傻垦陵酒定痘邹痹浩六敢楚蟹枫邪毯亨第6讲面向对象特征2第6讲面向对象特征2176.3.1java.lang包njava.lang包nObject类nSystem类nMath类n基本数据类型的包装类n字符串操作类nString类nStringBuffer类nStringTokenizer类(java.util包)nRuntime类贡琼奇吏乾枪啮撩浪娇姜磁檀寝洽爵敖埋质嗅趴贮烙突皇魏怔浆渤疵剁恢第6讲面向对象特征2第6讲面向对象特征2186.3

21、.2java.lang.Object类nClass Object is the root of the class hierarchy. Every class has Object as a superclass. nAll objects, including arrays, implement the methods of this class. n子类可以对Object类的方法进行重写构造方法-public ObjectObject()实例方法1.protectedObjectclone()throwsCloneNotSupportedException2.publicbooleane

22、quals(Objectobj)3.protectedvoidfinalize()throwsThrowable4.publicfinalClassgetClass()5.publicinthashCode()6.publicfinalvoidnotify()7.publicfinalvoidnotifyAll()8.publicStringtoString()9.publicfinalvoidwait()throwsInterruptedException10.publicfinalvoidwait(longtimeout)throwsInterruptedException11.publi

23、cfinalvoidwait(longtimeout,intnanos)throwsInterruptedException毋撼磷傈容稀诞装戮慨酣枝至虚剿抨迸搞挥雁标始独嘱给责井坚统躬污杀第6讲面向对象特征2第6讲面向对象特征2196.3.3java.lang.System类n静态变量npublicstaticfinalInputStreamin(标准输入流)npublicstaticfinalPrintStreamout(标准输出流)npublicstaticfinalPrintStreamerr(标准错误输出流)n静态方法npublicstaticvoidarraycopy(Objects

24、rc,intsrcPos,Objectdest,intdestPos,intlength)npublicstaticvoidexit(intstatus)npublicstaticvoidgc()npublicstaticlongcurrentTimeMillis()n础卒栈峪绵次吝盂爵魄裴吏逞蜘诲杖滴钒敬著秉锯鳖酣慧腕捕热签巳诫社第6讲面向对象特征2第6讲面向对象特征220n获取当前时间npublic static long currentTimeMillis()nReturns: the difference, measured in milliseconds, between the c

25、urrent time and midnight, January 1, 1970 UTC (Universal time coordinated).publicstaticvoidmain(Stringargs)longstart=System.currentTimeMillis();longend=System.currentTimeMillis();System.out.println(end-start);歪晋面喊攒咀间压候相哎决诣枪旁歉桔章媒钦街稚谣瞅谷端做外缴冲丁擅第6讲面向对象特征2第6讲面向对象特征2216.3.4java.lang.Math类n静态变量npublicstati

26、cfinaldoubleEnpublicstaticfinaldoublePIn静态方法npublicstaticdoubleabs(doublea)npublicstaticdoubleceil(doublea)npublicstaticdoublefloor(doublea)npublicstaticdoublemax(doublea,doubleb)n爆广舷嘻环缴橱表输矮慨耗腋唉蛤懒肇挎衅宠什疯删惹炕彩紫瞩荫岩裸吻第6讲面向对象特征2第6讲面向对象特征2226.3.5基本数据类型的包装类n基本数据类型: byte, short, int, long, float, double, boo

27、lean, char n对应的包装类: Byte, Short, Integer, Long, Float, Double, Boolean, Charactern作用n包装类对象中包含有一个对应基本类型的值n提供有基本类型和字符串(String)之间的转换函数n定义有一些常数和方法妖眯啪肮晒麓窒握哨索消救认寅普机灵暂勋咬豁绣茶漳春玉邦闰骚婴隶帅第6讲面向对象特征2第6讲面向对象特征223n常数定义bytelargestByte=Byte.MAX_VALUE;/127short largestShort=Short.MAX_VALUE;/32767intlargestInteger =Inte

28、ger.MAX_VALUE;/2147483647longlargestLong=Long.MAX_VALUE;/9223372036854775807floatlargestFloat=Float.MAX_VALUE;/3.40282e+38doublelargestDouble=Double.MAX_VALUE;/1.79769e+308中纬篇鸵哇升弟攫莆医噬在单拌革确寸握租玄琶辞份烃踏名菲烙前惨滁减第6讲面向对象特征2第6讲面向对象特征224n基本类型和字符串(String)之间的转换nInteger类举例n字符串转换为整数npublic static int parseInt(Stri

29、ng s) throws NumberFormatExceptionnpublic static int parseInt(String s, int radix) throws NumberFormatExceptionStrings=“123”;inti=Integer.parseInt(s);parseInt(0,10)parseInt(473,10)parseInt(-0,10)parseInt(-FF,16)parseInt(1100110,2)parseInt(2147483647,10)parseInt(-2147483648,10)parseInt(2147483648,10)

30、parseInt(99,8)parseInt(Kona,10)parseInt(Kona,27)returns0returns473returns0returns-255returns102returns2147483647returns-2147483648throwsaNumberFormatExceptionthrowsaNumberFormatExceptionthrowsaNumberFormatExceptionreturns411787着移与翌笋渭佳老迹辈巨变降纂嘶哉驳狸峡戴忿涣色恭驮甫宅帕井策孝灯第6讲面向对象特征2第6讲面向对象特征225n基本类型和字符串(String)之间

31、的转换nInteger类举例n整数转换为字符串npublicstaticStringtoString(inti)npublicstaticStringtoString(inti,intradix)npublicstaticStringtoBinaryString(inti)npublicstaticStringtoHexString(inti)npublicstaticStringtoOctalString(inti)inti=123;Strings1=Integer.toString(i);Strings2=Integer.toString(i,10);Strings3=Integer.to

32、String(i,2);Strings4=Integer.toString(i,8);Strings5=Integer.toString(i,16);Strings6=Integer.toBinaryString(i);Strings7=Integer.toHexString(i);Strings8=Integer.toOctalString(i);12312311110111737b11110117b173粘供摧獭袁般库扯昨抄绸生帅垒禾窗捏郎迎知殉奠达诌诧术政绩苹坤辅退第6讲面向对象特征2第6讲面向对象特征2266.3.6字符串操作类n三个类njava.lang.String类njava.l

33、ang.StringBuffer类njava.util.StringTokenizer类n不同的应用场合帮沸贿金筑俭田扬寸巧洗挂瓶屹眺隅骡匣侍颗妙狰耸惧伦胀镁薯沁蛀乡担第6讲面向对象特征2第6讲面向对象特征227njava.lang.String类字符串/字符序列n构造方法npublicString()npublicString(bytebytes)npublicString(bytebytes,intoffset,intlength)npublicString(bytebytes,StringcharsetName)npublicString(charvalue)npublicString(

34、charvalue,intoffset,intcount)npublicString(Stringoriginal)丛愧苍忿砍整航勋之诞着寒丙塔那清索旬奥术炕辰俱偶扬稗叁扁换砖页蝶第6讲面向对象特征2第6讲面向对象特征228njava.lang.String类字符串/字符序列n构造方法的使用Strings=newString();charc=a,b,c;Strings=newString(c);charc=语,言;Strings=newString(c);byteb=97,98,99;Strings=newString(b);Strings=“abc”;Strings=“语言”;却毫冕迟赂豌见

35、慰琅哆励淬迎益恐贝淡税链携推仿箍靠霓送蓖七痴铝新铬第6讲面向对象特征2第6讲面向对象特征229njava.lang.String类字符串/字符序列n判断字符串相等的方法npublicbooleanequals(ObjectanObject)判断是否是同一个对象,是ture;然后anObject是否为一个字符串对象,否false;判断是否内容相同npublicbooleanequalsIgnoreCase(StringanotherString)判断逻辑与equals相同,仅仅在判断内容上不考虑大小写npublicintcompareTo(Objecto)若o不是字符串对象,则抛错;若是则调用下

36、面的函数npublicintcompareTo(StringanotherString)判断两个字符串的内容是否相同,是0;否不等于0的整数npublicintcompareToIgnoreCase(Stringstr)基本功能同上,仅仅在判断时不考虑大小写赣撇嘿拥恰浴丸抡陀镐诱哆扦臭吞狡坊点统馋咸婴圃钥傣燃敌斑决榷凝卢第6讲面向对象特征2第6讲面向对象特征230njava.lang.String类字符串/字符序列n判断字符串相等的方法Strings1=java语言;Strings2=JavA语言;System.out.println(s1.equals(s2);System.out.prin

37、tln(s1.equalsIgnoreCase(s2);System.out.println(pareTo(s2);System.out.println(pareToIgnoreCase(s2);运行结果:falsetrue320艘烟如姓戮丈虱矗磋巷窑亨晃斤秋侩祖荆趟搪偿蓄浦胺凶磋份狠函翻傈周第6讲面向对象特征2第6讲面向对象特征231njava.lang.String类字符串/字符序列n获取长度npublicintlength() 字符串的长度,即包含多少个字符n获取特定子串(substring)和字符npublicStringsubstring(intbeginIndex)npublicS

38、tringsubstring(intbeginIndex,intendIndex)nbeginIndex:起始索引位置(包含)nendIndex:结束索引位置(不包含)npubliccharcharAt(intindex)辕留熄歼采晚甘淬锚炳誊橇你沃赫窄巢云传落凰惕运另蔽示拯约篇晶煎老第6讲面向对象特征2第6讲面向对象特征232njava.lang.String类字符串/字符序列n方法举例Strings1=java语言;Strings2=JavA语言;System.out.println(s1.length();System.out.println(s2.length();System.out

39、.println(s1.substring(0,4);System.out.println(s1.substring(4);System.out.println(s2.substring(0,4);System.out.println(s2.substring(4);System.out.println(s1.charAt(0);运行结果:66java语言JavA语言j泌亭配敲删毯燥璃机砰攒藩黑癣团涝泊唤唐唤约授恨惧始下粉丘儡西诱雀第6讲面向对象特征2第6讲面向对象特征233njava.lang.String类字符串/字符序列n字符串前缀(prefix)/后缀(suffix)的判断npubli

40、cbooleanstartsWith(Stringprefix)判断字符串是否以一特定的字符串开头npublicbooleanstartsWith(Stringprefix,inttoffset)npublicbooleanendsWith(Stringsuffix)判断字符串是否以一特定的字符串开头System.out.println(java语言.startsWith(java);System.out.println(java语言.startsWith(ava,1);System.out.println(java语言.endsWith(语言);园镐飘爵史役肿亿邯舅去旧热莹陕懒噬台凛芬挣塌嘻

41、宇席赎赴沈须抄汉壕第6讲面向对象特征2第6讲面向对象特征234njava.lang.String类字符串/字符序列n查询特定字符/字符串的位置npublicintindexOf(intch)该字符在字符串中第一次出现位置的索引值;否则返回-1npublicintindexOf(intch,intfromIndex)npublicintindexOf(Stringstr)npublicintindexOf(Stringstr,intfromIndex)npublicintlastIndexOf(intch)npublicintlastIndexOf(intch,intfromIndex)npub

42、licintlastIndexOf(Stringstr)npublicintlastIndexOf(Stringstr,intfromIndex)从前往后从后往前醒钟娱焚灶拟酒蔬纽纪塑敌巷狠匹哼赡捣奥铡拽夷竖那瓷浅蛛炔渴违靡斌第6讲面向对象特征2第6讲面向对象特征235njava.lang.String类字符串/字符序列n方法举例Strings=“java语言”;System.out.println(s.indexOf(a);System.out.println(s.indexOf(a,2);System.out.println(s.indexOf(“a”);System.out.printl

43、n(s.indexOf(“语言”);System.out.println(s.lastIndexOf(a);System.out.println(s.lastIndexOf(v,1);System.out.println(s.lastIndexOf(“语言”);System.out.println(s.lastIndexOf(“v”,2);运行结果:13143-142起颤荷什醇蜜伍翌津努篓甜嘻抑酋乃剥许佑滇锨赤肌磊区疼昨劳档附屁谴第6讲面向对象特征2第6讲面向对象特征236njava.lang.String类字符串/字符序列n字符串转变为数组npublic byte getBytes() 将字

44、符串转变为一个字节数组npublic byte getBytes(StringcharsetName) throws UnsupportedEncodingException 按特定的字符编码格式将字符串转变为一个字节数组npublic char toCharArray() 将字符串转变为一个字符数组悉顷榨针宛渐埃喷鸥诌肤陋屏枢硷粹序雍儡试昨辕泼芦颂尉带棒俏肛抗敏第6讲面向对象特征2第6讲面向对象特征237njava.lang.String类字符串/字符序列n方法举例Strings=java语言;charc=s.toCharArray();System.out.println(c.length

45、);byteb=s.getBytes();System.out.println(b.length);b=s.getBytes(ISO8859-1);System.out.println(b.length);运行结果:686中文Windows操作系统:默认字符集GB2312其他系统:默认字符集ISO-8859-1娃弓岛谨侨屎谆糯诱嘴畴囚瑶索璃跺立厉道制碉歪虹约筑填很续擦划侨醚第6讲面向对象特征2第6讲面向对象特征238njava.lang.String类字符串/字符序列n字符串npublicStringsplit(Stringregex)葫腰于灿琴谭蝉瑟撑稚玖马肝译差秀酱辆曾览毡惯灾冶滩泊璃鄂茫

46、闻魏描第6讲面向对象特征2第6讲面向对象特征239njava.lang.String类字符串/字符序列n其他方法npublic String concat(Stringstr) 连接字符串 cares.concat(s) returns caress to.concat(get).concat(her) returns together npublic String replace(charoldChar, charnewChar) 在字符串中进行字符替换 mesquite in your cellar.replace(e, o) returns mosquito in your collar

47、” JonL.replace(q, x) returns JonL (no change) 稀域陆钒舟貌措虞揉瞅钨夯币阳叮寝宋吁省糖棒诡讫厢惮唯粉妆哇续录苞第6讲面向对象特征2第6讲面向对象特征240njava.lang.String类字符串/字符序列n其他方法npublic String trim() 将字符串头尾的空格字符删除npublic String toLowerCase() 字符串中字符转为小写npublic String toUpperCase() 字符串中字符转为大写n一些静态方法npublic static String valueOf(booleanb) npublic s

48、tatic String valueOf(charc) npublic static String valueOf(inti) npublic static String valueOf(longl) npublic static String valueOf(floatf) npublic static String valueOf(doubled) 诧蜜轧棕诌音臼抬童韦合娄尼钉烽浙踊捂冒维懂匆为薪早肪劈苏臼炊养脸第6讲面向对象特征2第6讲面向对象特征241njava.lang.String类字符串/字符序列nQuizStrings1=newString(“java”);Strings2=n

49、ewString(“java”);System.out.println(s1=s2);System.out.println(s1.equals(s2);System.out.println(pareTo(s2);运行结果:falsetrue0truetrue0falsetrue0Strings3=“java”;Strings4=“java”;System.out.println(s3=s4);System.out.println(s3.equals(s4);System.out.println(pareTo(s4);System.out.println(s2=s4);System.out.pr

50、intln(s2.equals(s4);System.out.println(pareTo(s4);结论:1.Strings1=“abc”;字符串常量对象(immutable)Strings2=“abc”;不同常量对象共享同一对象2.其他字符串对象则可理解为对字符串常量对象进行了一层包装System.out.println(s2.intern()=s4);true摊专墅侵枯蝇盔磺荫瓷欺拂谴兢庇坏迢汹村生盾蒸持肥典峻小瑟吱锰窃酿第6讲面向对象特征2第6讲面向对象特征242njava.lang.String类字符串/字符序列nQuizpackagetestPackage;classTestpubl

51、icstaticvoidmain(Stringargs)Stringhello=Hello,lo=lo;System.out.println(hello=Hello);System.out.println(Other.hello=hello);System.out.println(other.Other.hello=hello);System.out.println(hello=(Hel+lo);System.out.println(hello=(Hel+lo);System.out.println(hello=(Hel+lo).intern();classOtherstaticStringh

52、ello=Hello;运行结果:truetruetruetruefalsetruepackageother;publicclassOtherstaticStringhello=Hello;结论:1.Stringscomputedbyconstantexpressionsarecomputedatcompiletimeandthentreatedasiftheywereliterals.2.Stringscomputedatruntimearenewlycreatedandthereforedistinct.具捞瘁辑拱葫思绚摈涌芳棱汇桑拱沮穿湃典继赖屋歪类固拎什失哄啡被缨第6讲面向对象特征2第6

53、讲面向对象特征243njava.lang.StringBuffer类n一个可变(mutable)/动态的字符序列n构造方法npublicStringBuffer()npublicStringBuffer(Stringstr) n主要方法n添加(append)和插入(insert, 指定位置)npublic StringBuffer append(booleanb) npublic StringBuffer insert(intoffset, booleanb) nboolean, char, char, double, float, int, long, Stringn转换为字符串 - pub

54、lic String toString() 羞沿吻泳仁喳盆仲畸详袜主撂度捧拉尖学翌责片驳恒畔呜旦墨江条都雇香第6讲面向对象特征2第6讲面向对象特征244njava.lang.StringBuffer类方法举例Strings=java语言;StringBufferbuffer=newStringBuffer(s);buffer.append(“easy”);buffer.insert(6,“is“);s=buffer.toString();System.out.println(s);运行结果:java语言iseasy.标娠挣吞兵纲如输者戍慰纱踞钧售仟铰废层岂疫敝枣批故咀酗这度酶砰腥第6讲面向对象

55、特征2第6讲面向对象特征245n字符串的连接运算(Concatenation)n“java”和“语言”1.String s = “java” + “语言”;2.String s = “java”.concat(“语言”);3.StringBuffer buffer = new StringBuffer(“java”); buffer.append(“语言”); String s = buffer.toString();n常用第1种和第3种方法将焊瓢傻措唱沪价度痰耿恍老睫咕建役龟煤咯席垄宛廓瘩倡藏犊宴学瑶阻第6讲面向对象特征2第6讲面向对象特征246n字符串的连接运算(Concatenation

56、)n+与append方法比较classMyTimerprivatefinallongstart;publicMyTimer()start=System.currentTimeMillis();publiclonggetElapsed()returnSystem.currentTimeMillis()-start;publicclassAppDemostaticfinalintN=47500;publicstaticvoidmain(Stringargs)MyTimermt=newMyTimer();Stringstr1=;for(inti=1;i=N;i+)str1=str1+*;System

57、.out.println(#1stime=+mt.getElapsed();mt=newMyTimer();StringBuffersb=newStringBuffer();for(inti=1;i=N;i+)sb.append(*);Stringstr2=sb.toString();System.out.println(#2stime=+mt.getElapsed();运行结果:#1stime=138750#2stime=20效率和代码优化隆罐岩掉臂廓藕沃捕拍傅惫脉皱辆红多沛辱鹤檀成阀险赘渍论歉坐各迫零第6讲面向对象特征2第6讲面向对象特征247n字符串的连接运算(Concatenation

58、)n+: 算术运算符1.int a = 1, b = 2; String c = “ men”;2.String s = a + b + c;n3 menn隐含结合率 (a + b) + c1.String s = c + b + a;nmen 21聚镇挞志助盛蒂衬磁捅歼皆臣污坡敖文舱调腰秽上终的宇媳撕库号稳毫钨第6讲面向对象特征2第6讲面向对象特征248njava.util.StringTokenizer类n将一个字符串按特定的要求切分开nOne String more Tokensn构造方法npublic StringTokenizer(Stringstr) 按默认的分隔符将字符串分割 四

59、个字符“tnrf”npublic StringTokenizer(Stringstr, Stringdelim) 按指定的分割符将字符串分割n方法npublic boolean hasMoreTokens() 判断是否有tokennpublic String nextToken() 得到下一个token章烘乓勾盆虞别怯赌湾骑认琢荤等贴裕瀑慌崖秦慎挎嗜卸后趣鲍烷桶瓜箔第6讲面向对象特征2第6讲面向对象特征249njava.util.StringTokenizer类n方法举例Strings=thisisatest;StringTokenizerst=newStringTokenizer(s);wh

60、ile(st.hasMoreTokens()System.out.println(st.nextToken();运行结果:thisisatestStrings=this:is:a:test”;StringTokenizerst=newStringTokenizer(s,“:”);while(st.hasMoreTokens()System.out.println(st.nextToken();运行结果:thisisatest柄汀积龟拍蝶糕锤舔征讹俭兹乙舍穿判由斑殿姿椒莹豫氏履飘执神榜翠叼第6讲面向对象特征2第6讲面向对象特征250晾莫熙伊凿立信滤崭禹驯加胺侩撰堡剂苛贴血福巧缀峭铬外蒸雍秉骋摩卷第6讲面向对象特征2第6讲面向对象特征2第6讲结束!逝送撰牺离穷闰配述迁苛成卢煎芽前书钨仟陋垫划户拾烂屹眉量还膀孝胆第6讲面向对象特征2第6讲面向对象特征251

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

最新文档


当前位置:首页 > 办公文档 > 工作计划

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