java初级及高级讲解ppt - 9.精通常用的java类_第1页
java初级及高级讲解ppt - 9.精通常用的java类_第2页
java初级及高级讲解ppt - 9.精通常用的java类_第3页
java初级及高级讲解ppt - 9.精通常用的java类_第4页
java初级及高级讲解ppt - 9.精通常用的java类_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

第九章精通常用java类本章目标java.lang.Object类字符串相关类型封装类日期/时间相关类型数学相关类型2Object类java.lang.Object类是所有Java类的最高层次父类,该类提供了面向对象编程技术的基本机制。重要方法列表:hashCode()方法toString()方法equals()方法finalize()方法clone()方法wait()方法notify()/notifyAll()方法3hashCode()方法4publicclassQQ{privateintaccount;publicQQ(intaccount){ this.account=account;}//…}publicclassTestHashCode{publicstaticvoidmain(String[]args){QQq1=newQQ(3715500);QQq2=newQQ(10086000);inthandle1=q1.hashCode();System.out.println(handle1);System.out.println(Integer.toHexString(handle1));System.out.println(q1);System.out.println("----------------");System.out.println(q2.hashCode());}}toString()方法方法格式:publicStringtoString(){…}方法功能:以字符串形式返回当前对象的有关信息,在Object类的原始定义中,所返回的是对象所属的类型名称及其哈希码。当使用System.out.println()方法直接打印输出引用类型变量时,println()方法中会先自动调用其toString()方法,再将所返回的字符串信息输出。在进行String与其它类型数据的连接操作时,自动调用toString()方法,基本类型数据转换为String类型时,调用了对应封装类的toString()方法。可以根据需要在用户定义类型中重写toString()方法。5重写toString()方法6publicclassQQ{privateintaccount;publicQQ(intaccount){ this.account=account;}publicvoidsetAccount(intaccount){ this.account=account;}publicintgetAccount(){ returnaccount;}publicStringtoString(){ return"ThisisaninstanceofQQ,account="+account;}}publicclassTestOverride{publicstaticvoidmain(String[]args){QQq1=newQQ(1888);System.out.println(q1.hashCode());System.out.println(q1);//等价于System.out.println(q1.toString());}}equals()方法方法格式:publicbooleanequals(Objectobj){…}功能:比较引用类型数据的等价性等价标准:引用类型比较引用,基本类型比较值。equals()方法与==操作符的区别:equals()方法只能比较引用类型数据,而"=="可以比较引用类型及基本类型数据;可以根据需要,在用户定义类中重写其equals()7使用equals()方法对比使用"=="和equals()方法重写equals()方法,实现用户定制等价性标

准8 QQq1=newQQ(18); QQq2=newQQ(18); System.out.println(q1==q2); System.out.println(q1.equals(q2)); finalize()方法方法格式:方法功能:Java运行时环境中的垃圾收集器在销毁一个对象之前,会自动调用该对象的finalize()方法,然后才释放对象的内存空间。方法用途:是在子类中重写,以加入所需的逻辑代码来配置系统资源或执行其他清除操作。9使用举例10publicclassQQ{ privateStringname; publicQQ(Stringname){ =name; System.out.println("创建QQ对象,name:"+name); } //--- publicvoidfinalize(){ System.out.println("销毁QQ对象,name:"+name); }}publicclassTestFinalize{ publicstaticvoidmain(Stringargs[]){ for(inti=0;i<10;i++){ QQp=newQQ("Tom"+i); for(intj=0;j<1000;j++){ String[]test={newString("Asdf"),newString("Billy"),newString("Kessy")}; } } }}clone()方法方法格式:

protectednativeObjectclone()throwsCloneNotSupportedException;方法功能:对象拷贝。要进行“克隆”的对象所属的类必须实现 java.lang.Cloneable接口。浅度拷贝和深度拷贝11QQq1=newQQ("Tom",18);QQq2=(QQ)q1.clone();System.out.println(q1==q2);q2.setAge(34);q2.display();q1.display();字符串相关类型1.String类2.StringBuffer类3.StringBuilder类4.StringTokenizer类12String类java.lang.String

类对象表示不可修改的 Unicode编码字符串。方法说明:构造方法字符串连接、转换和截断concat()replace()substring()toLowerCase()//小写

toUpperCase()//大写trim()//去掉头尾空格检索和查找功能charAt()startsWith()indexOf()lastIndexOf()length()内容比较equals()equalsIgnoreCase()//忽略大小写比较

compareTo()13StringBuffer类StringBuffer类对象保存可修改的Unicode字符序列。构造方法:StringBuffer()StringBuffer(intcapacity)StringBuffer(StringinitialString)主要功能方法:append()insert()reverse()setCharAt()14StringBuilder类JDK5.0以后引入,该类能够提供与StringBuffer

相同的功能,二者区别:StringBuffer类是线程安全的,而StringBuilder则不是,即不保证其对象的同步性,在多线程环境中是不安全的。StringBuilder在性能上要比StirngBuffer

好一些。15StringTokenizer类java.util.StringTokenizer类的功能是将当前字符串按照默认或指定的分隔符分解为多个片段。构造方法:publicStringTokenizer(Stringstr)publicStringTokenizer(Stringstr,Stringdelim)publicStringTokenizer(Stringstr,Stringdelim,booleanreturnDelims)主要功能方法:publicboolean

hasMoreTokens()publicStringnextToken()16分解字符串的新方法从JDK1.4开始,Sun公司推荐开发者使用一种新的字符串分解方式——String类的Split17封装类针对八种基本定义相应的引用类型—封装类。18publicclassTestWrapper{publicstaticvoidmain(Stringargs[]){Integert1=newInteger(314);Integert2=newInteger("314");inti=Value();System.out.println(i);System.out.println(t1==t2);System.out.println(t1.equals(t2));System.out.println(t1.toString());System.out.println(Integer.toBinaryString(27));System.out.println(Integer.toOctalString(27));System.out.println(Integer.toHexString(27));i=Integer.parseInt("500");System.out.println(i);}}自动封装/拆封19publicclassTestAutoBoxing{publicstaticvoidmain(Stringargs[]){Integert1=newInteger(3);inti=t1;intj=4;Integert2=j;System.out.println(i);System.out.println(t2.toString());m1(20);}publicstaticvoidm1(Integerit){intk=it+5;//等价于k=Value()+5;System.out.println(k);}}日期相关类型1.Date类2.Calendar类3.Locale类4.TimeZone类5.GregorianCalendar类6.DateFormat类//日期格式化7.SimpleDateFormat类20Date类java.util.Date类用于表示特定的时间点,精确到毫秒,但不支持日期的国际化和分时区显示。构造方法:publicDate()publicDate(longdate)主要功能方法:publicint

compareTo(DateanotherDate)publicbooleanequals(Objectobj)publiclonggetTime()publicStringtoString()21Calendar类抽象类java.util.Calendar类提供了常规的日期修改功能和国际化支持。主要方法:publicstaticCalendargetInstance()publicintget(intfield)publicvoidset(intfield,intvalue)publicfinalvoidset(intyear,intmonth,intdate)publicfinalvoidset(int

year,int

month,int

date,int

hourOfDay,intminute,intsecond)publicabstractvoidadd(intfield,intamount)22Locale类java.util.Locale类描述特定的地理、政治/文化上的地区,Locale对象主要封“地区”和“语言种类”两方面的信息。通常用于在国际化/本地化程序中以地区/语言相关的方式显示日期、数字或文本信息等。主要方法:publicLocale(Stringlanguage)publicLocale(Stringlanguage,Stringcountry)publicstaticLocalegetDefault()publicStringgetCountry()publicStringgetLanguage()publicfinalStringgetDisplayName()publicstaticLocale[]getAvailableLocales()23TimeZone类java.util.TimeZone类描述时区信息。TimeZone被定义为抽象类,可以调用其静态方法getDefault()以获得该类的实例。publicstaticTimeZone

getDefault()publicstaticTimeZone

getTimeZone(StringID)其它方法:publicstaticString[]getAvailableIDs()24GregorianCalendar类java.util.GregorianCalendar

是Calendar的子类,该类提供了世界上大多数国家/地区使用的标准日历系统,并添加判断闰年的功能。主要方法:publicGregorianCalendar()publicGregorianCalendar(TimeZonezone)publicGregorianCalendar(LocaleaLocale)publicGregorianCalendar(TimeZonezone,LocaleaLocale)publicGregorianCalendar(intyear,intmonth,int

dayOfMonth)publicGregorianCalendar(intyear,intmonth,int

dayOfMonth,int

hourOfDay,intminute,intsecond)publicboolean

isLeapYear(intyear)25DateFormat类java.text.DateFormat类提供了将日期/时间信息进行格式化处理的功能主要方法:publicstaticfinalDateFormat

getDateInstance()publicstaticfinalDateFormat

getTimeInstance()publicstaticfinalDateFormat

getDateTimeInstance()publicfinalStringformat(Datedate)26SimpleDateFormat类java.text.SimpleDateFormat类是DateFormat类的子类,它允许用户自己定义日期/时间信息的表现格式,并提供更灵活的Date<=>String信息转换和解析的功能。在创建SimpleDateFormat实例时应指定所转换的字符串格式(模式串),否则系统会缺省采用与所在语言环境相关的默认格式。27数学相关类型1.Math类2.Random类3.BigInteger/BigDecimal类4.NumberFormat/DecimalFormat类28Math类java.lang.Math类提供常用数学功能和数学常量:数据截断操作:ceil(),floor(),round()取最大、最小及绝对值操作:max(),min(),abs()三角函数:sin(),cos(),tan(),asin(),acos(),atan(),toDegrees(),toRadians()幂运算和对数运算:pow(),exp(),sqrt(),log(),log10()其他操作:random()29Random类java.util.Random类是基于“线性同余”算法的一种伪随机数序列生成器。其主要功能方法包括:publicRandom()publicRandom(longseed)publicint

nextInt()publicint

nextInt(intn)publicdoublenextDouble()publicboolean

nextBoolean()30importjava.util.Random;publicclassTestRandom{publicstaticvoidmain(Stringargs[]){Randomrand=newRandom();System.out.println(rand.nextInt());System.out.println(rand.nextInt(10));System.out.println(rand.nextBoolean());System.out.println(rand.nextDouble());System.out.println(rand.nextFloat());}}BigInteger/BigDecimaljava.math包中定义的BigIntegeBigDecimal类型可以分别提供任意长度/精度的整数和浮点数运算功能。BigInteger类主要方法:31publicBigIntege

温馨提示

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

评论

0/150

提交评论