JAVA编程高级-工具类.doc
JAVA编程高级 工具类3 Sept. 2008© Neusoft Confidential工具类目标:Object类的介绍。包装类的功用。简介String类中的常用方法。StringBuffer类中的常用方法。StringBuilder类中的常用方法。String、StringBuffer、StringBuilder类的区别。介绍Math类的使用。介绍日期类的使用教学方法:讲授ppt上机练习本章要点······Java API理解API的概念Object类包装类String类与StringBuffer类String类的常用方法StringBuffer类的常用方法StringBuilder类的常用方法String与StringBuffer的区别StringBuffer与StringBuilder的区别Math类日期类型Contents123456Java APIObject类包装类字符串类Math类日期类型JAVA API简介·API的概念API (Application Programming Interface) 应用程序接口Java中的API,就是JDK提供的各种功能的Java类JDK帮助文档JAVA_API_CN.chmJAVA API简介·JDK中常用的包java.langJava语言包(包含String、Math、System等类),任何类中,该包中的类都会被自动导入。java.util包含一些实用的工具类( 包含list, calendar, date等类)java.awt图形用户界面包。java.io提供多种输入/输出功能的类。Contents123456Java APIObject类包装类字符串类Math类日期类型Object介绍及方法··Object类Object类是所有类的超类, Object是Java语言中唯一一个没有父类的类。如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类。在Object类中定义的方法,在所有类中都可以使用。Object类常用方法public boolean equals(Object obj)比较两个对象引用的值是否相等(比较哈希地址)public int hashCode()返回十进制整数,唯一标识一个对象public String toString()返回 类名hashcodeequals() 与 =的区别···equals()只能比较引用类型,=既能比较引用类型又能比较基本类型。equals()方法从Object类继承 原意:比较对象引用的值 一般都被子类方法覆盖,不再比较引用的值=运算符 比较基本数据类型:相当于算术等号 比较引用数据类型:比较对象引用的值。Contents123456Java APIObject类包装类字符串类Math类日期类型包装类简介·包装类基本数据类型不是对象层次结构的组成部分。有时需要像处理对象一样处理这些基本数据类型,可通过相应的“包装类”来将其“包装”。数据类型封装类booleanBooleanbyteBytecharCharacterdoubleDoublefloatFloatintIntegerlongLongshortShort基本数据类型转换为包装类·基本数据类型通过构造器转换为包装类int pInt = 500;Integer wInt = new Integer(pInt);包装类转换为基本数据类型·包装类通过xxxValue()方法转换为基本数据类型Integer wInt = new Integer(500);int pInt = wInt.intValue();字符串转换为包装类··字符串通过构造方法转换为包装类String sInt = “500”;Integer wInt = new Integer(sInt);字符串通过包装类的valueOf(String s)转换为包装类String sInt = “500”;Integer wInt = Integer.valueOf(sInt);注意:字符串不能通过以上两种方式转换为Character包装类转换为字符串·包装类通过toString()方法转换为字符串Integer wInt = new Integer(500);String sInt = wInt.toString();字符串转换为基本数据类型·字符串通过parseXXX(String s)方法转换为基本数据类型String sInt = "500"int pInt = Integer.parseInt(sInt);自动装箱和自动拆箱· 自动的装箱和自动拆箱在进行基本数据类型和对应的包装类转换时,系统将自动进行JDK自从5.0版本后引入方便程序的编写int pInt = 500;Integer wInt = pInt;int n = wInt;包装类的equals()和toString()方法··包装类里的equals方法覆盖了object类中的equals方法,不再比较引用的值,而是比较基本数据类型的值是否相等。包装类里的toString方法覆盖了object类中的toString方法,返回包装类的String值。Contents123456Java APIObject类包装类字符串类Math类日期类型Stringg类·String类是一种引用类型代表不可改变的字符序列,对它的任何修改实际上又产生一个新的字符串。Stringg的创建···静态创建String s = “Java”;动态创建String s = new String(“java”);两种创建方式的区别: 使用静态方式创建的字符串,在数据区中只会产生唯一的一个字符串对象,当使用该方式产生同样一个字符串时,两个引用变量指向同一个字符串对象。 采用动态方式创建的字符串,在堆内存中会产生不同的对象。21Stringg类·“ + ”字符串连接运算符连接操作符“+”,可以将其它各种类型的数据转换成字符串,并前后连接成新的字符串String str1 = “hello ”;String str2 = “world”;String str = str1 + str2; /str为“hello world” 练习System.out.println(5+6+A);System.out.println(5+6+”A”);System.out.println(5+”A”+6);7611A5A6Stringg类·String类的性质任何一个String对象在创建之后都不能对它的内容作出任何改变连接、获得子串和改变大小写等操作,实际上是产生了一个新的String对象String类重置了equals方法,用于比较两个字符串的内容String str1 = “hello ”;String str2 = new String(“hello”);System.out.println(str1=str2); falseSystem.out.println(str1.equals(str2);trueStringg类·String类的常用方法方法含义boolean equals(String)判断两个字符串对象的内容是否相等boolean equalsIgnoreCase(String)比较两个字符串的内容是否相等,忽略大小写Stringg toUpperCase(pp ( )将SStringg对象中的所有字符都转换为大写String toLowerCase( )将String对象中的所有字符都转换为小写char charAt(int)返回指定索引处的 char 值String subString(int begin)返回一个新字符串,该字符串是从begin开始的字符串的内容StringSt g subString(intsubSt g( t begin,intbeg , t end)e d)返回一个新字符串,该字符串是从begin开始到end结束的字符串的内容Stringg类·String类的常用方法方法含义int indexOf/lastIndexOf(char)返回指定字符在此字符串中第一次/最后一次出现处的索引。int indexOf/lastIndexOf(char,int)从指定的索引开始搜索,返回在此字符串中第一次/最后一次出现指定字符处的索引int indexOf/lastIndexOf(String)返回第一次出现的指定子字符串在此字符串中的索引int indexOf/lastIndexOf(String,int)从指定的索引开始搜索,返回在此字符串中第一次/最后一次出现指定字符串处的索引String trim( )返回新的字符串,忽略前导空白和尾部空白int length( )返回此字符串的长度StringBuffer类·StringBuffer类StringBuffer类用于内容可以改变的字符串可以使用StringBuffer来对字符串的内容进行动态操作,不会产生额外的对象StringBuffer类·StringBuffer对象的创建构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符StringBuffer 变量名 = new StringBuffer () ;构造一个不带字符,但具有指定初始容量的字符串缓冲区。StringBuffer 变量名 = new StringBuffer (int capacity ) ;构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。StringBuffer 变量名 = new StringBuffer (String value) ;示例:TestStr.javaStringBuffer类·StringBuffer类的常用方法示例 StringBuf.java方法含义int capacity( )返回当前容量int length( )返回长度(字符数)StringBuffer reverse( )将此字符序列用其反转形式取代void setCharAt(int,char)将给定索引处的字符设置为指定字符void delete(int begin,int end)移除此序列的子字符串中的字符char charAt(int)返回此序列中指定索引处的 char 值String toString( )将StringBuffer对象转换成相应的StringStringBuffer类·StringBuffer类的常用方法方法含义StringBuffer append(String str)将指定的字符串追加到此字符序列StringBuffer insert(int index,String str)将字符串插入此字符序列中StringBuffer insert(int index,char ch)将字符插入此字符序列中StringBuilder类·StringBuilder类StringBuilder类是一个可变的字符序列。JDK自从5.0版本后引入。StringBuilder类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候 。StringBuilder类·StringBuilder对象的创建构造一个不带任何字符的字符串生成器,其初始容量为 16 个字符。StringBuilder 变量名 = new StringBuilder () ;构造一个不带任何字符的字符串生成器,其初始容量由 capacity参数指定。StringBuilder 变量名 = new StringBuilder (int capacity ) ;构造一个字符串生成器,并初始化为指定的字符串内容StringBuilder 变量名 = new StringBuilder(String str) ;StringBuilder类·StringBuilder类的常用方法方法含义int capacity( )返回当前容量int length( )返回长度(字符数)StringBuilder reverse( )将此字符序列用其反转形式取代void setCharAt(int index,char ch)将给定索引index处的字符设置为 chvoid delete(int begin,int end)移除此序列的子字符串中的字符char charAt(int index)返回此序列中指定索引处的 char 值String toString( )将StringBuilder对象转换成相应的StringStringBuilder类·StringBuilder类的常用方法方法含义StringBuilder append(String str)将指定的字符串追加到此字符序列StringBuilder insert(int index,String str)将字符串插入此字符序列中StringBuilder insert(int index,char ch)将字符插入此字符序列中String类 与 StringBuffer类的比较·String类与StringBuilder类的异同Java中定义了String与StringBuffer两个类来封装对字符串的各种操作String类与StringBuffer类都被放到了java.lang包中两者的主要区别在于String类对象中的内容初始化不可以改变StringBuffer类对象中的内容可以改变StringBuffer类 与 StringBuilder类的比较·StringBuffer类与StringBuilder类的异同StringBuffer和StringBuilder都是长度可变的字符串。两者的操作基本相同。两者的主要区别在于StringBuffer类是线程安全的;StringBuilder类是线程不安全的。StringBuffer在JDK1.0中就有,而StringBuilder是在JDK5.0后才出现的。StringBuilder的一些方法实现要比StringBuffer快些。Contents123456Java APIObject类包装类字符串类Math类日期类型Math类··Math类Math类提供了大量用于数学运算的方法Math类是final类,因此不能从Math类继承Math类中的方法都是static方法,因此不必创建Math类的对象就可以直接使用该类的方法Math类中的常量public static final double PIpublic static final double EMath类·Math类中的常用方法方法含义static int abs(int)返回参数的绝对值,返回值类型与参数类型相同static double abs(double)返回参数的绝对值static double ceil(double)返回大于所给参数的最小的整数值static double floor(double)返回不大于所给参数的最大的整数值static int max(int a,int b)返回两个int值中较大的一个static double max(double,double)返回两个double值中较大的一个static int min(int a,int b)返回两个int值中较小的一个static double min(double,double)min(double double)返回两个double值中较小的一个Math类·Math类中的常用方法方法含义static double random( )返回在0.01.0之间的随机的double值static int round(double)返回同所给值最接近的整数,采用4舍5入法static double sin/cos/tan(double)返回给定的弧度值对应的三角函数值static double sqrt(double)返回所给值的平方根,若所给值为负数则返回NaNContents123456Java APIObject类包装类字符串类Math类日期类型Date类·Date 类java.util.Date。Date 类表示指定的时间信息,可以精确到毫秒。获取当前系统时间:new Date();Date类·Date类中的常用方法示例:TestDate.java方法含义boolean after(Date when)测试此日期是否在指定日期之后boolean before(Date when)测试此日期是否在指定日期之前int compareTo(Date anotherDate)比较两个日期。如果参数 Date 等于此Date,则返回值 0;如果此 Date 在 Date参数之前,则返回小于 0 的值;如果此Date 在 Date 参数之后,则返回大于 0 的值。boolean equals(Object obj)比较两个日期的相等性。Calendar类·Calendar 类示例: TestCalendar.javajava.util.Calendar常用的日期处理的对象。是一个抽象类。Calendar 抽象类定义了足够的方法,让我们能够表述日历的规则 。·Calendar 类的使用:获取Calendar对象的实例Calendar c = Calendar.getInstance();Calendar类·Calendar 类的使用:获取Calendar对象的实例:Calendar c = Calendar.getInstance();设置Calendar实例所表示的时间:c.set(2011,6,16);获取指定的时间属性c.get(Calendar.YEAR);Calendar类·Calendar类中的常用属性属性含义static int HOUR小时时间static int MINUTE分时间static int SECOND秒时间static int DATE日期的Date部分static int MONTH日期的Month部分static int YEAR日期的年部分本章小结······JAVA APIObject类hashcode()、equals()、toString()方法包装类包装类、基本数据类型、字符串间的相互转换字符串类String、StringBuffer、StringBuilder的常用方法String与StringBuffer的异同、 StringBuffer与StringBuilder的异同Math类Math类的常用方法日期类型Date类的使用Calendar类的使用