您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > Java > JavaSE09_精通常用的Java类
本章学习目标1java.lang.Object类2字符串相关类型3封装类4日期/时间相关类型5数学相关类型3JavaSEJavaSE应用程序设计应用程序设计新科海学校新科海学校类java.lang.Object类是所有Java类的最高层次父类,该类提供了面向对象编程技术的基本机制。重要方法列表:¾hashCode()方法¾toString()方法¾equals()方法¾finalize()方法¾clone()方法¾wait()方法¾notify()/notifyAll()方法4JavaSEJavaSE应用程序设计应用程序设计新科海学校新科海学校()方法publicclassPerson{privateintage;publicPerson(intage){this.age=age;}//…}publicclassTestHashCode{publicstaticvoidmain(String[]args){Personp1=newPerson(18);Personp2=newPerson(18);inthandle1=p1.hashCode();System.out.println(handle1);System.out.println(Integer.toHexString(handle1));System.out.println(p1);System.out.println(----------------);System.out.println(p2.hashCode());}}输出结果:11077203a90653Person@a90653----------------145768775JavaSEJavaSE应用程序设计应用程序设计新科海学校新科海学校()方法方法格式:方法功能:以字符串形式返回当前对象的有关信息,在Object类的原始定义中,所返回的是对象所属的类型名称及其哈希码。当使用System.out.println()方法直接打印输出引用类型变量时,println()方法中会先自动调用其toString()方法,再将所返回的字符串信息输出。在进行String与其它类型数据的连接操作时,自动调用toString()方法,基本类型数据转换为String类型时,调用了对应封装类的toString()方法。可以根据需要在用户定义类型中重写toString()方法。publicStringtoString(){…}6JavaSEJavaSE应用程序设计应用程序设计新科海学校新科海学校()方法publicclassPerson{privateintage;publicPerson(intage){this.age=age;}publicvoidsetAge(intage){this.age=age;}publicintgetAge(){returnage;}publicStringtoString(){returnThisisaninstanceofPerson,age=+age;}}publicclassTestOverride{publicstaticvoidmain(String[]args){Personp1=newPerson(18);System.out.println(p1.hashCode());System.out.println(p1);//等价于System.out.println(p1.toString());}}输出结果:11077203ThisisaninstanceofPerson,age=18ThisisaninstanceofPerson,age=187JavaSEJavaSE应用程序设计应用程序设计新科海学校新科海学校()方法方法格式:功能:比较引用类型数据的等价性等价标准:引用类型比较引用,基本类型比较值。equals()方法与==操作符的区别:¾equals()方法只能比较引用类型数据,而==可以比较引用类型及基本类型数据;¾equals()方法存在特例:对File(第10.4.1节)、String、Date(第9.4.1节)及封装类(第9.3节)等类型来说,是比较类型及对象的内容而不考虑引用的是否为同一实例。¾可以根据需要,在用户定义类中重写其equals()方法,以改变其等价性评价标准。publicbooleanequals(Objectobj){…}8JavaSEJavaSE应用程序设计应用程序设计新科海学校新科海学校()方法对比使用==和equals()方法¾例9-3:Person.javaTestEquals.java¾例9-4:TestEquals2.java重写equals()方法,实现用户定制等价性标准¾例9-5Person.javaTestEquals3.java9JavaSEJavaSE应用程序设计应用程序设计新科海学校新科海学校()方法方法格式:方法功能:Java运行时环境中的垃圾收集器在销毁一个对象之前,会自动调用该对象的finalize()方法,然后才释放对象的内存空间。方法用途:是在子类中重写,以加入所需的逻辑代码来配置系统资源或执行其他清除操作。使用举例:¾例9-6finalize()方法效果演示Person.javaTestFinalize.javaprotectedvoidfinalize()throwsThrowable{…}10JavaSEJavaSE应用程序设计应用程序设计新科海学校新科海学校()方法方法格式:方法功能:对象拷贝。要进行“克隆”的对象所属的类必须实现java.lang.Cloneable接口。使用举例:¾例9-7实现简单的克隆操作Person.javaTestClone.java浅度拷贝和深度拷贝protectednativeObjectclone()throwsCloneNotSupportedException;11JavaSEJavaSE应用程序设计应用程序设计新科海学校新科海学校类java.lang.String类对象表示不可修改的Unicode编码字符串。方法说明:¾构造方法¾字符串连接、转换和截断concat()replace()substring()toLowerCase()toUpperCase()trim()¾检索和查找功能charAt()startsWith()indexOf()lastIndexOf()length()¾内容比较equals()equalsIgnoreCase()compareTo()13JavaSEJavaSE应用程序设计应用程序设计新科海学校新科海学校类StringBuffer类对象保存可修改的Unicode字符序列。构造方法:¾StringBuffer()¾StringBuffer(intcapacity)¾StringBuffer(StringinitialString)主要功能方法:¾append()¾insert()¾reverse()¾setCharAt()用法举例¾例9-11TestStringBuffer.java14JavaSEJavaSE应用程序设计应用程序设计新科海学校新科海学校类JDK5.0以后引入,该类能够提供与StringBuffer相同的功能,二者区别:¾StringBuffer类是线程安全的,而StringBuilder则不是,即不保证其对象的同步性,在多线程环境中是不安全的。¾StringBuilder在性能上要比StirngBuffer好一些。练习¾将例9-11代码中的StringBuffer类直接换成StringBuilder,自行测试其用法。15JavaSEJavaSE应用程序设计应用程序设计新科海学校新科海学校类java.util.StringTokenizer类的功能是将当前字符串按照默认或指定的分隔符分解为多个片段。构造方法:¾publicStringTokenizer(Stringstr)¾publicStringTokenizer(Stringstr,Stringdelim)¾publicStringTokenizer(Stringstr,Stringdelim,booleanreturnDelims)主要功能方法:¾publicbooleanhasMoreTokens()¾publicStringnextToken()用法举例:¾例9-12TestStringTokenizer.java16JavaSEJavaSE应用程序设计应用程序设计新科海学校新科海学校分解字符串的新方法从JDK1.4开始,Sun公司推荐开发者使用一种新的字符串分解方式——String类的split()方法:publicclassTestStringSplit{publicstaticvoidmain(Stringargs[]){Strings=阳光:沙滩:海浪:仙人掌;rings=阳光:沙滩:海浪:仙人掌;results=s.split(:);(Stringeach:results){ystem.out.println(each);t.println(each);println(each);输出结果:阳光沙滩海浪仙人掌17JavaSEJavaSE应用程序设计应用程序设计新科海学校新科海学校封装类针对八种基本定义相应的引用类型—封装类。基本数据类型封装类booleanBooleanbyteByteshortShortintIntegerlongLongcharCharacterfloatFloatdoubleDouble18JavaSEJavaSE应用程序设计应用程序设计新科海学校新科海学校{publicstaticvoidmain(Stringargs[]){Integert1=newInteger(314);Integert2=newInteger(314);inti=t1.intValue();System.out.println(i);System.out.println(t1==t2);System.out.println(t1.equals(t2));System.out.print
本文标题:JavaSE09_精通常用的Java类
链接地址:https://www.777doc.com/doc-6133931 .html