《Java程序设计教程》课件第六章:Java常用类.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《Java程序设计教程》课件第六章:Java常用类.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java程序设计教程 Java 程序设计 教程 课件 第六 常用
- 资源描述:
-
1、本章学习目标:掌握基本类型的封装类的使用 掌握Object类的使用 掌握字符串类的使用 掌握Scanner、Math和日期类的使用 理解格式化处理的应用第六章第六章 JavaJava常用类常用类 本章主要介绍Java系统提供的一些程序员在项目开发中经常用到的类和方法。掌握了这些基本类与常用方法的应用,为以后项目开发和深入学习打好基础。第第1 1节节part基本类型的封装类 Java为其8个基本数据类型提供了对应的封装类,通过这些封装类可以把8个基本类型的值封装成对象进行使用。从JDK1.5开始,Java允许将基本类型的值直接赋值给对应的封装类对象。8个基本数据类型对应的封装类如表6-1所示。基
2、本类型的封装类基本类型的封装类 基本类型的封装类除了Integer和Character写法有点特殊例外,其他的基本类型对应的封装类都是将首字母大写即可。从JDK1.5之后,Java提供了自动装箱(Autoboxing)和自动拆箱(AutoUnboxing)功能,因此,基本类型变量和封装类之间可以直接赋值,例如:Integer obj=10;int b=obj;自动装箱和自动拆箱大大简化了基本数据类型和封装类之间的转换过程,但进行自动装箱和拆箱操作时,必须注意类型匹配,例如Integer只能和int匹配,不能跟boolean或char等其他类型匹配基本类型的封装类 除此之外,封装类还可以实现基本
3、类型变量和字符串之间的转换:基本类型的封装类2、将基本类型的值转换成字符串有三种方式:直接使用一个空字符串来连接数值即可。调用封装类提供的toString()静态方法。调用String类提供的valueOf()静态方法。例如,将基本类型的值转换为字符串String s1=+23;String s2=Integer.toString(100);String s3=String.valueOf(66);1、将字符串的值转换为基本类型的值有两种方式:直接利用封装类的构造方法,即Xxx(String s)构造方法 调用封装类提供的parseXxx(String s)静态方法例如:将字符串的值转换为基本
4、类型int num1=new Integer(10);int num2=Integer.parseInt(123);如图6.1所示演示了基本类型变量和字符串之间的转换。基本类型的封装类下述案例示例了Java基本数据类型变量和封装类之间转换的使用,代码如下所示。【代码6.1】FengZhangExample.javapackage com;public class FengZhangExample public static void main(String args)/直接把一个整数值赋给Integer对象 Integer intObj=5;/直接把一个boolean值赋给一个Boolean对
5、象 Boolean boolObj=true;/Integer对象与整数进行算数运算 int a=intObj+10;System.out.println(a);System.out.println(boolObj);/字符串与基本类型变量之间的转换 String intStr=123;/把一个特定字符串转换成int变量 int it1=Integer.parseInt(intStr);int it2=new Integer(intStr);System.out.println(it1+,+it2);基本类型的封装类 String floatStr=4.56f;/把一个特定字符串转换成floa
6、t变量 float ft1=Float.parseFloat(floatStr);float ft2=new Float(floatStr);System.out.println(ft1+,+ft2);/将一个double类型变量转换为字符串 String ds1=+3.14;String ds2=Double.toString(3.15D);String ds3=String.valueOf(3.16d);System.out.println(ds1+,+ds2+,+ds3);/将一个boolean类型变量转换为字符串 String bs1=+true;String bs2=Boolean.
7、toString(true);String bs3=String.valueOf(true);System.out.println(bs1+,+bs2+,+bs3);基本类型的封装类程序运行结果如下:15true123,1234.56,4.563.14,3.15,3.16true,true,true第第2 2节节partObject类 Java基础类库提供了一些常用的核心类,包括Object、String、Math等。其中,Object对象类定义在java.lang包中,是所有类的顶级父类。在Java体系中,所有类都直接或间接地继承了Object类。因此,任何Java对象都可以调用Object
8、类中的方法,而且任何类型的对象都可以赋给Object类型的变量。Object类提供了所有类都需要的一些方法,常用的方法及描述如表6-2所示。Object类本节概述6.2.1equals()方法 两个基本类型的变量比较是否相等时直接使用“=”运算符即可,但两个引用类型的对象比较是否相等时则有两种方式:使用“=”运算符或使用equals()方法。在比较两个对象是否相等时,“=”运算符和equals()方法是有区别的:“=”运算符比较的是两个对象地址是否相同,即引用的是同一个对象。equals()方法通常可以用于比较两个对象的内容是否相同。下述案例分别使用“=”运算符和equals()方法来判断两个
9、对象是否相等,代码如下所示。equal()方法6.2.1equals方法【代码6.2】ObjectEqualsExample.javapackage com;public class ObjectEqualsExample public static void main(String args)/定义4个整型类对象 Integer num1=new Integer(8);Integer num2=new Integer(10);Integer num3=new Integer(8);/将num1对象赋值给num4 Integer num4=num1;System.out.println(num
10、1和自身进行比较:);/分别使用=和equals()方法对num1进行自身比较 System.out.println(num1=num1是 +(num1=num1);System.out.println(num1.equals(num1)是+num1.equals(num1);System.out.println();System.out.println(num1和num2两个不同值的对象进行比较:);/num1和num2两个不同值的对象进行比较 System.out.println(num1=num2是 +(num1=num2);System.out.println(num1.equals(
11、num2)是+num1.equals(num2);System.out.println();6.2.1equals方法 System.out.println(num1和num3两个相同值的对象进行比较:);/num1和num3两个相同值的对象进行比较 /num1和num3引用指向的对象的值一样,但对象空间不一样 System.out.println(num1=num3是+(num1=num3);System.out.println(“num1.equals(num3)是”+num1.equals(num3);System.out.println();System.out.println(num
12、1和num4两个同一引用的对象进行比较:);/num2和num4引用指向同一个对象空间 System.out.println(num2=num4是 +(num1=num4);System.out.println(num2.equals(num4)是 +num1.equals(num4);6.2.1equals方法 上述代码中num1对象分别跟自身num1、不同值num2、相同值num3以及同一引用num4这几个对象进行比较,通过分析运行结果可以得出:使用“=”运算符将严格比较这两个变量引用是否相同,即地址是否相同,是否指向内存同一空间,只有当两个变量指向同一个内存地址即同一个对象时才返回tru
13、e,否则返回false;Integer的equals()方法则比较两个对象的内容是否相同,只要两个对象的内容值相等,哪怕是两个不同的对象(引用地址不同),依然会返回true。程序运行结果如下:num1和自身进行比较:num1=num1是 truenum1.equals(num1)是truenum1和num2两个不同值的对象进行比较:num1=num2是 falsenum1.equals(num2)是false num1和num3两个相同值的对象进行比较:num1=num3是falsenum1.equals(num3)是 true num1和num4两个同一引用的对象进行比较:num2=num4
14、是 truenum2.equals(num4)是 true6.2.2toString()方法 Object类的toString()方法是一个非常特殊的方法,它是一个“自我描述”的方法,该方法返回当前对象的字符串表示。当使用System.out.println(obj)输出语句直接打印对象时,或字符串与对象进行连接操作时,例如:info+obj,系统都会自动调用对象的toString()方法。Object类中的toString()方法返回包含类名和散列码的字符串,具体格式如下:类名哈希代码值 下述案例定义了一个Book.java类,并重写了toString()方法,代码如下所示。toString
15、()方法6.2.2toString()方法package com;public class Book /属性 private String bookName;/书名 private double price;/价格 private String publisher;/出版社 /默认构造方法 public Book()/重载构造方法 public Book(String bookName,double price,String publisher)this.bookName=bookName;this.price=price;this.publisher=publisher;public Str
16、ing getBookName()return bookName;public void setBookName(String bookName)this.bookName=bookName;6.2.2toString()方法public double getPrice()return price;public void setPrice(double price)this.price=price;public String getPublisher()return publisher;public void setPublisher(String publisher)this.publish
17、er=publisher;/重写toString()方法 public String toString()return this.bookName+,¥+this.price+,+this.publisher;上述代码重写了toString()方法,该方法将3个属性值连成一个字符串并返回。6.2.2toString()方法 下述案例编写了一个测试类,示例了toString()方法的功能,代码如下所示。【代码6.4】BookExample.javapackage com;public class BookExample public static void main(String args)Bo
18、ok b1=new Book(Java面向对象程序设计,38,重庆大学出版社);System.out.println(b1);Book b2=new Book(MySql数据库程序设计,26,清华大学出版社);String s=b1+n+b2;System.out.println(s);上述代码使用System.out.println()直接输出对象b1的信息,以及将b1和b2进行字符串连接,运行出来结果如下所示:Java面向对象程序设计,¥38.0,重庆大学出版社Java面向对象程序设计,¥38.0,重庆大学出版社MySql数据库程序设计,¥26.0,清华大学出版社6.2.2toString
19、()方法 将Book类中重写的toString()方法注释掉,使用Object原来默认的toString()方法,则运行结果如下所示:com.Book6fd46259 com.Book6fd46259 com.Book6084fa6a 当类没有重写toString()方法时,系统会自动调用Object默认的toString()方法,显示的字符串格式是“类名哈希代码值”。第第3 3节节part字符串类 字符串就是用双引号引起来的一连串的字符序列,Java提供了String、StringBuffer和StringBuilder三个类来封装字符串,并提供了一系列方法来操作字符串对象。String、S
20、tringBuffer和StringBuilder三者之间区别如下:String创建的字符串是不可变的,即当使用String创建一个字符串后,该字符串在内存中是一个不可改变的字符序列。如果改变字符串变量的值,其实际是在内存中创建一个新的字符串,字符串变量将引用新创建的字符串地址,而原来的字符串在内存中依然存在且内容不变,直至Java的垃圾回收系统对其进行销毁。StringBuffer创建的字符串是可变的,当使用StringBuffer创建一个字符串后,该字符串的内容可以通过append()、insert()、setCharAt()等方法进行改变,而字符串变量所引用的地址一直不变,如果想获得St
21、ringBuffer的最终内容,可以通过调用它的toString()方法转换成一个String对象。StringBuilder是JDK1.5新增的一个类。与StringBuffer类似,也是创建一个可变的字符串,不同的是StringBuffer是线程安全的,而StringBuilder没有实现线程安全,因此性能较好。通常,如果只需要创建一个内容可变的字符串对象,不涉及线程安全、同步方面的问题,应优先考虑使用StringBuilder类。字符串类本节概述6.3.1String类String类6.3.1String类6.3.1String类下述案例示例了String类常用方法的应用,代码如下所示。
22、【代码6.5】StringExample.javapackage com;public class StringExample public static void main(String args)String str=“Im WangFeng,welcome to ChongQing!”;System.out.println(字符串内容:+str);System.out.println(字符串长度:+str.length();System.out.println(截取从下标5开始的子字符串:“+str.substring(5);System.out.println(截取从下标5开始到10结
23、束的子字符串:”+str.substring(5,10);System.out.println(转换成小写:+str.toLowerCase();System.out.println(转换成大写:+str.toUpperCase();/验证字符串是否全是数字 String numStr=1234567a890;boolean flag=false;6.3.1String类 for(int i=0;i 9|numStr.charAt(i)0)flag=true;break;if(flag)System.out.println(该字符串有非数字存在!);else System.out.printl
24、n(该字符串全是数字!);6.3.1String类程序运行结果如下:字符串内容:Im WangFeng,welcome to ChongQing!字符串长度:34截取从下标5开始的子字符串:angFeng,welcome to ChongQing!截取从下标5开始到10结束的子字符串:angFe转换成小写:im wangfeng,welcome to chongqing!转换成大写:IM WANGFENG,WELCOME TO CHONGQING!该字符串有非数字存在!在Java程序中,经常会使用“+”运算符连接字符串,但不同情况下字符串连接的结果也是不同的。使用“+”运算符连接字符串时注意以
25、下三点:字符串与字符串进行“+”连接时:第二个字符串会连接到第一个字符串之后。字符串与其他类型进行“+”连接时:因字符串在前面,所以其他类型的数据都将转换成字符串与前面的字符串进行连接。其他类型与字符串进行“+”连接时:因字符串在后面,其他类型按照从左向右进行运算,最后再与字符串进行连接。6.3.2StringBuffer类StringBuffer类StringBuffer字符缓冲区类是一种线程安全的可变字符序列,其常用的方法如表6-4所示。6.3.2StringBuffer类6.3.2StringBuffer类下述案例示例了StringBuffer类常用方法的应用,代码如下所示。【代码6.6
展开阅读全文