1、第五章第五章 JAVA JAVA中常用类中常用类本章学习要点本章学习要点 掌握各种常用类的常用方法;理解自动拆箱和自动装箱的概念;掌握正则表达式的使用;掌握random方法的使用;理解异常的概念;了解几种常见的异常;掌握trycatch、throws和throw的使用。5.1 5.1 始祖类始祖类OBJECTOBJECT Object类之所以被称为“始祖类”,是因为Object类是所有类的父类,Java中的所有类都是由 Object 类派生出来的。因此在 Object 类中定义的方法,在其他类中都可以使用。方法方法说明说明public boolean equals(Object obj)pub
2、lic boolean equals(Object obj)比较两个引用变量是否指向同一对象,如果指向同一对象,则返回true;否则,返回false,和“=”等价(注意:=还可以比较两个基本数据类型变量的值是否相等,相等返回true;否则,返回false。)public String toString()public String toString()返回该对象的字符串表示:全类名哈希码(哈希码是用十六进制表示的)。public int hashCode()public int hashCode()返回该对象的散列码值:将内存地址转换成一个整数。5.2 STRING5.2 STRING类和类和
3、STRINGBUFFERSTRINGBUFFER类类 5.2.1 String类的初始化 5.2.2 String类的常用方法 5.2.3 StringBuffer类 5.2.4 Java中的正则表达式5.2.1 STRING类的初始化 String类的初始化是指可以通过字符串常量和构造方法,给String类型的引用变量赋初值。所谓的字符串常量是用一对双引号引起来的,比如“Java”、“student”等都是字符串常量。因为字符串的使用率很高,为了减少内存开销,避免字符串的重复创建,JVM为其维护了一块特殊的内存空间,称为“字符串池(String pool)”。值得注意的是,字符串常量也是一个
4、String类的对象,故可以将字符串常量直接赋值给一个String类的引用变量。5.2.1 STRING类的初始化 String类的构造方法给String类的引用变量赋值。String类常用的构造方法如表所示方法方法说明说明String()String()创建内容为空的字符串String(String value)String(String value)根据字符串常量创建对象String(char arr)String(char arr)根据指定的字符数组创建对象String(byte arr)String(byte arr)根据指定的字节数组创建对象5.2.2 STRING类的常用方法 St
5、ring类的常用方法有很多,我们只列举常用的方法,如表所示方法声明方法声明功能描述功能描述public int length()public int length()返回字符串中字符的个数,即字符串的长度public boolean equals(Object obj)public boolean equals(Object obj)字符串与指定对象obj有相同的字符序列时,返回true;否则,返回falsepublic boolean equalsIgnoreCase(String str)public boolean equalsIgnoreCase(String str)如果两个字符串的
6、长度相同,并且其中的字符都相等(忽略字符大小写),则返回true;否则,返回falseint indexOf(int ch)int indexOf(int ch)返回参数ch字符在字符串中首次出现的索引位置,索引值从0开始,如果找不到,则返回-1int lastIndexOf(int ch)int lastIndexOf(int ch)返回参数ch字符在字符串中最后出现的索引位置,索引值从0开始,如果找不到,则返回-1char charAt(int index)char charAt(int index)返回字符串中index位置上的字符,其中,index的取值范围:0字符串长度-15.2.2
7、 STRING类的常用方法boolean endsWith(String str)boolean endsWith(String str)判断字符串是否以指定的字符串结尾判断字符串是否以指定的字符串结尾boolean startWith(String str)boolean startWith(String str)判断字符串是否以指定的字符串开始boolean contains(String str)boolean contains(String str)判断字符串是否包含指定的字符串boolean isEmpty()boolean isEmpty()当且仅当字符串长度为0时,返回truec
8、har toCharArray()char toCharArray()将字符串转换为一个字符数组String subString(int index)String subString(int index)返回一个子串,该子串从index位置开始直到此字符串结束String subString(int beginIndex,String subString(int beginIndex,int endIndex)int endIndex)返回一个子串,该子串从beginIndex开始直到endIndex-1结束String trim()String trim()返回一个新的字符串,去掉了原字符串
9、的首尾空格String concat(String str)String concat(String str)返回一个新的字符串,该字符串是在原来的字符串末尾加str5.2.3 STRINGBUFFER类 String类型的对象一旦创建,其长度和内容是不可以改变的。为了便于对字符串进行修改,Java 8 提供了StringBuffer类。构造方法如下表方法方法说明说明StringBuffer()StringBuffer()创建不带字符的StringBuffer对象。StringBufferStringBuffer(int length)(int length)创建一个不带字符的StringBu
10、ffer对象,但具有指定初始容量长度为length的字符串缓冲区。StringBuffer(String str)StringBuffer(String str)创建一个内容初始化为指定的字符串str的StringBuffer对象。5.2.3 STRINGBUFFER类常用方法方法方法说明说明StringBuffer append(char c)StringBuffer append(char c)添加参数c到StringBuffer对象中StringBuffer insert(int offset,String str)StringBuffer insert(int offset,Strin
11、g str)在StringBuffer对象的offset位置添加strStringBufferStringBuffer deleteCharAtdeleteCharAt(int index)(int index)删除StringBuffer对象index位置的字符StringBuffer delete(int start,int end)StringBuffer delete(int start,int end)删除StringBuffer对象从start到end-1之间的字符串StringBuffer replace(int start,int end,String s)StringBuff
12、er replace(int start,int end,String s)用s替换到StringBuffer对象中start到end-1之间的字符串void setCharAt(int index,char ch)void setCharAt(int index,char ch)用ch代替StringBuffer对象index位置的字符String toString()String toString()返回StringBuffer缓冲区的字符串StringBuffer reverse()StringBuffer reverse()反转StringBuffer对象中的字符串序列5.2.4 JA
13、VA中的正则表达式 正则表达式是一种可以用于模式匹配和替换的规范。一个正则表达式就是由普通的字符(如字符 az)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式涉及元字符和限定符两个概念。1.元字符,是指一些具有特殊意义的字符。2.限定符,是用来限定元字符出现的次数。5.3 包装类 Java中的数据类型分为基本的数据类型和引用的数据类型两种。Java 是一种面向对象的编程语言,Java 中的类把方法与数据类型连接在一起。但是Java 中却不能定义基本类型对象,如int a=8;该语句中的a为基本类型数据,不能被视为对象处理,也就不能连接相关方
14、法,这给编程开发带来了一定的不便。从Java5开始,Java 为每个基本类型都提供了包装类,如 int 型数值的包装类 Integer,boolean 型数值的包装类 Boolean 等。有了包装类,可以很方便的将基本类型的数据转换为对应的类对象,这叫做“自动装箱”。也可以很方便的将包装类对象转换为对应的基本数据类型的数据,这叫做“自动拆箱”。5.3 包装类数据类型数据类型包装类包装类常用方法常用方法方法说明方法说明intintIntegerint parseInt(String s)返回数值型字符串s对应的int数值Integer valueOf(String s)返回保存指定的String
15、值的Integer对象。String toString()返回一个表示该Integer值的字符串floatfloatFloatfloat parseFloat(String s)返回数值型字符串s对应的float数值Float valueOf(String s)返回保存指定的String值的Float对象。String toString()返回一个表示该Float值的String对象。5.3 包装类doubledoubleDoubleDoubledouble parseDouble(String s)double parseDouble(String s)返回数值型字符串返回数值型字符串s s
16、对应的对应的doubledouble数值。数值。Double valueOf(String s)返回保存指定的String值的Double对象。String toString()返回一个表示该Double值的String对象。booleanbooleanBooleanboolean parseBoolean(String s)返回字符串s对应的boolean值。Boolean valueOf(String s)返回一个用指定的字符串表示的boolean值。String toString()返回表示该boolean值的String对象。5.4 MATH和RANDOM类 Math类是数学操作类,提
17、供了一系列用于数学运算的静态方法。常用方法常用方法方法说明方法说明double Round(double d)double Round(double d)对d进行四舍五入double random()double random()返回大于等于0.0小于1.0的随机值5.4 MATH和RANDOM类 Random类提供了更多的方法来生成各种伪随机数,不仅可以生成整数类型的随机数,还可以生成浮点类型的随机数。常用方法常用方法方法说明方法说明boolean boolean nextBooleannextBoolean()()随机生成boolean类型的随机数doubel nextDouble()do
18、ubel nextDouble()随机生成double 类型的随机数float nextFloat()float nextFloat()随机生成float类型的随机数int nextInt()int nextInt()随机生成int类型的随机数int nextInt(n)int nextInt(n)随机生成0n之间int类型的随机数long nextLong()long nextLong()随机生成long类型的随机数5.5 时间和日期类 5.5.1 Date类和SimpleDateFormat类 5.5.2 Calendar 5.5.2 Calendar类类 5.5.1 DATE类和SIMP
19、LEDATEFORMAT类 Java中获取时间经常会用到Date类,而对时间进行格式化,经常会用到Simple Date Format类,有关Date类和SimpleDateFormat类的构造方法和常用方法,读者可以自行阅读API文档。5.5.2 CALENDAR 5.5.2 CALENDAR类类 Calendar类主要用来处理与日历有关的日期。Calendar类是一个抽象类,不能创建对象,但是它提供了一个getInstance()方法来获得Calendar类的对象。getInstance()方法返回一个Calendar对象,其日历字段已由当前日期和时间初始化。5.6 5.6 异常类异常类
20、5.6.1 异常概述 5.6.2 异常处理5.6.1 异常概述 人人都希望身体健康,但是人吃五谷杂粮,难免感冒发烧、头疼脑热。这就叫身体出现异常。程序也如此,在运行的过程中,会发生各种不可预期的事情,这就叫程序的异常。异常说明ArithmeticException算术错误,如除以0IllegalArgumenntException方法收到非法参数ArrayIndexOutOfBoundsException数组下标出界NullPointerException试图访问null对象引用ClassNotFoundException不能加载请求的类5.6.2 异常处理 当程序在运行过程中发生异常时,程序
21、会被终止,这会给用户带来非常不好的体验。比如说,用户在登陆时,由于用户名输入错误了,程序就突然终止了,这时用户就会懵懵的,能不能在用书输入错误,程序发生异常时,程序还可以继续运行呢?这就是异常处理。1.捕获异常 健壮的程序应该在异常发生时捕获(catch)异常对象,并执行相应的异常代码处理,使程序不会因为异常的发生而非正常终止或产生不可预见的结果。5.6.2 异常处理 在Java中,捕获异常是通过try-catch-finally语句实现的,其语法格式如下:try 可能发生异常的代码 catch(ExceptionName1 e)异常处理代码 finally 一定会运行的代码 5.6.2 异常处理 2.抛出异常 除了上述讲到的用trycatchfinally捕获异常外,还可以使用throws关键字抛出异常,将异常抛给方法的调用者,调用者需要用trycatchfinally来捕获异常,或者调用者继续抛异常,如果没有方法来捕获异常,最后异常会被抛给虚拟机来捕获 除了throws方法抛出异常外,还可以显示地创建一个异常对象,并使用关键字throw把异常对象抛给上一层,即程序的调用者,此时与throws不同,调用者不用捕获或抛出异常。5.7 本章小结 本章主要介绍Java中常用的类,读者可以通过阅读API文档,查阅常用类的构造方法和常用方法,并且能够独立完成本章中所有的例题。