《常用类和接口》PPT课件.ppt

上传人:牧羊曲112 文档编号:5583008 上传时间:2023-07-30 格式:PPT 页数:52 大小:341KB
返回 下载 相关 举报
《常用类和接口》PPT课件.ppt_第1页
第1页 / 共52页
《常用类和接口》PPT课件.ppt_第2页
第2页 / 共52页
《常用类和接口》PPT课件.ppt_第3页
第3页 / 共52页
《常用类和接口》PPT课件.ppt_第4页
第4页 / 共52页
《常用类和接口》PPT课件.ppt_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《《常用类和接口》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《常用类和接口》PPT课件.ppt(52页珍藏版)》请在三一办公上搜索。

1、第5章 Java常用类和接口,5.1字符串处理类,在Java中,字符串是作为内置对象进行处理的,在java.lang包中,有两个专门的类用来处理字符串,分别是String和StringBuffer,本节重点介绍这两个类的用法。,5.1.1 String类,String类表示了定长、不可变的字符序列,Java程序中所有的字符串常量(如“abc”)都作为此类的实例来实现。它的特点是一旦赋值,便不能改变其指向的字符串对象,如果更改,则会指向一个新的字符串对象。下面介绍String中常用的一些方法。,5.1.1 String类,1、构造方法String()String(bytebytes)String

2、(byte ascii,int hibyte)String(byte bytes,int offset,int length)String(byte ascii,int hibyte,int offset,int count)String(bytebytes,int offset,int length,String charsetName)String(byte bytes,String charsetName)String(char value)String(char value,int offset,int count)String(int codePoints,int offset,in

3、t count)String(String original)String(StringBuffer buffer)String(StringBuilder builder),5.1.1 String类,2、length()方法字符串的长度是指其所包含的字符的个数,调用String的length()方法可以得到这个值。,5.1.1 String类,3、字符串连接“+”运算符可以连接两个字符串,产生一个String对象。也允许使用一连串的“+”运算符,把多个字符串对象连接成一个字符串对象。,5.1.1 String类,4、charAt()方法 此方法的形式:char charAt(int whe

4、re)其中,where是想要得到的字符的下标,并且其值必须为非负的,它指定了在字符串中的位置。,5.1.1 String类,5、getChars()方法此方法的形式:Void getChars(int sourceStart,int sourceEnd,char targte,int targetStart)其中,sourceStart表示子字符串的开始位置,sourceEnd是子字符串结束的下一个字符的位置,因此截取的子字符串包含了从sourceStart到sourceEnd-1的字符,字符串存放在字符数组target中从targetStart开始的位置,在此必须确保target应该足够大能

5、容纳所截取的子串。,5.1.1 String类,6、getBytes()方法此方法使用平台的默认字符集将此字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。也可以使用指定的字符集对字符串进行编码,把结果存到字节数组中,String类中提供了getBytes()的多个重载方法。,5.1.1 String类,7、字符串的比较(1)equals()和equalsIgnoreCase()方法前者比较两个字符串的时候对字母大小写是敏感的,而后者不区分字母大小写。(2)startsWith()和endsWith()方法startsWith()方法判断一个给定的字符串是否从一个指定的字

6、符串开始,而endsWith()方法判断字符串是否以一个指定的字符串结尾。(3)equals()与=的区别equals()方法比较字符串对象中的字符是否相等,而=运算符则比较两个对象引用是否指向同一个对象(4)compareTo()方法比较两个字符串的大小关系(按字母在字典中出现的先后顺序)。,5.1.1 String类,8、字符串的搜索(1)indexOf()方法indexOf方法有4种形式,分别如下:int indexOf(int ch)int indexOf(int ch,int fromIndex)int indexOf(String str)int indexOf(String st

7、r,int fromlndex)(2 lastlndexOf()方法lastlndexOf方法也有4种形式,分别如下。int lastIndexOf(int ch)int lastIndexOf(int ch,int fromIndex)int lastIndexOf(String str)int lastlndexOf(String str,int fromlndex),5.1.1 String类,9、字符串修改字符串的修改包括取字符串中的子串、字符串之间的连接、替换字符串中的某字符、消除字符串的空格等功能。在String类中有相应的方法来提供这些功能:String substring(in

8、t startIndex)String substring(int startIndex,int endlndex)String concat(String str)String replace(char original,char replacement)String replace(CharSequence target,CharSequence reDlacenString trim(),5.1.1 String类,10、ValueOf()方法valueOf()方法是定义在String类内部的静态方法,利用这个方法,可以将几乎所有的Java简单数据类型转换为String类型。这个方法是S

9、tring类型和其他Java简单类型之间的一座转换桥梁。除了把Java中的简单类型转换为字符串之外,valueOf方法还可以把Object类和字符数组转换为字符串。valueOf()的通用形式如下,总共有9种形式。static String valueOf(boolean b)static String valueOf(char c)static String valueOf(chardata)static String valueOf(chardata,int offset,int count)static String valueOf(double d)static String valu

10、eOf(float f)static String valueOf(int i)static String valueOf(1ong 1)static String valueOf(Object obj),5.1.1 String类,11、toString()方法toString()方法是在Object中定义,所以任何类都具有这个方法。然而toString()方法的默认实现是不够的,对于用户所创建的大多数类,通常都希望用自己提供的字符串表达式重载toString()方法。toString()方法的一般形式:String toString()。实现toString()方法,仅仅返回一个Strin

11、g对象,该对象包含描述类中对象的可读的字符串。通过对所创建类的toString()方法的覆盖,允许得到的字符串完全继承到Java的程序设计环境中。例如它们可以被用于print()和println()语句以及连接表达式中。,5.1.2 StringBuffer类,在实际应用中,经常会遇到对字符串进行动态修改,这时String类的功能就受到了限制,而StringBuffer类可以完成字符串的动态添加、插入和替换等操作。StringBuffer表示变长的和可写的字符序列。StringBuffer类可有插入其中或追加其后的字符或子字符串,还可以针对这些添加自动地增加空间,同时它通常还有比实际需要更多的

12、预留字符,从而允许增加空间。,5.1.2 StringBuffer类,1StringBuffer的构造方法StringBuffer定义了四个构造方法:StringBuffer()StringBuffer(int capacity)StringBuffer(String str)StringBuffer(CharSequence seq),5.1.2 StringBuffer类,2append()方法可以向已经存在的StringBuffer对象追加任何类型的数据,StringBuffer类提供了相应append()方法,如下所示:StringBuffer append(boolean b)Str

13、ingBuffer append(char c)StringBuffer append(charstr)StringBuffer append(charstr,int offset,int fen)StringBuffer append(CharSequence s)StringBuffer append(CharSequence s,int start,int end)StringBuffer append(double d)StringBuffer append(float f)StringBuffer append(int i)StringBuffer append(10ng lng)S

14、tringBuffer append(Object obj)StringBuffer append(String str)StringBuffer append(StringBuffer sb),5.1.2 StringBuffer类,3length()和capacity()方法对于每一个StringBuffer对象来说,有两个很重要的属性,分别是长度和容量。通过调用length()方法可以得到当前StringBuffer的长度,而通过调用capacity()方法可以得到总的分配容量。它们的一般形式如下:int length()int capacity(),5.1.2 StringBuffer

15、类,4ensureCapacity()和setLength()方法如果想在构造StringBuffer之后为某些字符预分配空间,可以使用ensureCapacity方法设置追加缓冲区的大小,即在默认16个字符缓冲区大小的基础上,再追加若干个字符的缓冲区。这个方法是在事先已知要在StringBuffer上追加大量字符串的情况下是使用的。ensureCapacity方法的一般形式如下:void ensureCapacity(int minimumCapacity)参数minimumCapacity就是要在原来缓冲区的基础上追加的缓冲区大小。使用setLength方法可以设置字符序列的长度。其一般形

16、式如下:void setLength(int len)这里len指定了新字符序列的长度,这个值必须是非负的。当增加缓冲区的大小时空字符将被加在现存缓冲区的后面。如果用小于length方法返回的当前值的值调用setLength方法,那么在新长度之后存储的字符将被丢失。,5.1.2 StringBuffer类,5insert()方法它是先调用String类的valueOf方法得到相应的字符串表达式。随后这个字符串被插入所调用的StringBuffer对象中。insert方法有如下几种形式:StringBuffer insert(int offset,boo1ean b)StringBuffer i

17、nsert(int offset,cbar c)StringBuffer insert(int offset,charstr)StringBuffer insert(int index,charstr,int offset,int len)StringBuffer insert(int dstOffset,CharSequence s)StringBuffer insert(int dstOffset,CharSequence s,int start,int end)StringBuffer insert(int offset,double d)StringBuffer insert(int

18、offset,float f)StringBuffer insert(int offset,int i)StringBuffer insert(int offset,long l)StringBuffer insert(int offset,Object obj)StringBuffer insert(int offset,String str),5.1.2 StringBuffer类,6reverse()方法可以使用reverse()方法将StringBuffer对象内的字符串进行翻转,它的一般形式如下:StringBuffer reverse(),5.2 集合类,学习Java语言,就必须学

19、习如何Java的集合类,本节主要介绍Java.util包中的一些集合类以及接口的使用,掌握这些类和接口的应用会为实际的编程带提供诸多便利。,5.2.1 集合的概念,集合是存放一组数据的容器,能够实现对数据的存储、检索和操纵。集合的最大特点就是长度不固定,相对长度固定的数组来说集合的应用就比较广泛了。集合的另一个特点就是是集合中必须存放对象。Java平台提供了一个集合框架来表示和操纵集合的统一体系结构,Java中的集合框架图如下图所示。,5.2.1 集合的概念,5.2.2 Collection接口,Collection是集合类的基本接口,它用来说明作为一个集合类应有的结构特征属性和带有共性的操作

20、方法。它的子接口有List、Set。List接口规定实现其的集合类元素,具有可以控制的顺序,但并没有定义或限制按什么排序,实现List接口的类有AbstractList、ArrayList、LinkList和Vector;Ser不能包含重复的元素,它的实现类有AbstractSet、HashSet、LinkedHashTable和TreeSet。,5.2.2 Collection接口,Collection提供的主要方法有:(1)单元素添加、删除操作boolean add(E e):将对象添加给集合。boolean remove(Object o):如果集合中有与o相匹配的对象,则删除对象o。(

21、2)查询操作int size():返回当前集合中元素的个数。boolean isEmpty():判断集合中是否有任何元素,如果没有则返回true,否则返回false。boolean contains(Object o):查找集合中是否含有指定的对象。Iterator iterator():返回一个迭代器,用来访问集合中的各个元素。,5.2.2 Collection接口,Collection提供的主要方法有:(3)组操作:作用于元素组或整个集合boolean containsAll(Collectionc):查找集合中是否含有集合c 中的所有元素。boolean addAll(Collectio

22、nc):将集合c 中全部元素添加到该集合中。void clear():删除集合中所有元素。void removeAll(Collection c):从集合中删除集合c 中的所有元素。void retainAll(Collectionc):从集合中删除集合c 中不包含的元素。(4)Collection转换为Object数组 Object toArray():返回一个内含集合所有元素的数组。T toArray(Ta):返回一个内含集合所有元素的array。运行期返回的array和参数a的类型相同。,5.2.3 对集合类遍历的接口,遍历接口主要有枚举接口Enueration和迭代器接口Iterato

23、r。它们的共同点是:先检索有没有相应的指向对象,为true的情况,再返回相应的对象引用。对集合类对象中的元素进行遍历常用Iterator,Enumeration仅限于特定类,如Vector、HashTable等。,5.2.3 对集合类遍历的接口,1Enumeration接口,5.2.3 对集合类遍历的接口,2Iterator接口,5.2.4 Map接口,Map接口没有继承Collection接口,所以它们的特性有所不同。Map接口用于将一个键(key)映射到一个值(value),且不允许有重复的键。关键字是以后用于检索值的对象,给定一个关键字和一个值,可以存储这一对映射到一个Map对象中,然后

24、就可以根据这个映射中的关键字来检索对应的值。,5.2.4 Map接口,Map接口常用的方法:,5.2.4 Map接口,使用Map遍历访问所有元素的一般方法如下:Set entries=map.entrySet();If(entries!=null)Iterator iterator=entry.iterator();While(iterator.hasNext()Map.Entry entry=interator.next();K key=entry.getKey();V value=entry.getValue();,5.2.5 常用集合类,5.3 时间日期类,Java语言没有提供时间日期的

25、简单数据类型,它采用类对象来处理时间和日期。本节主要介绍几个常用的时间日期类,熟悉它们的使用方法,对我们进行程序开发会有很大的帮助。,5.3.1 Date类,1 Date常用的构造方法public Date():分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。public Date(longdate):分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。,5.3.1 Date类,Date常用的方法,5.3.2 Calendar,Calendar是一个抽象类,它

26、提供了一组方法允许将以毫秒为单位的时间转换成一组有用的分量。Calendar没有公共的构造方法,要得到其引用,不能使用new,而要调用其静态方法getInstance得到一个Calendar对象,然后调用相应的对象方法。,5.3.2 Calendar,Calendar的常见方法如表所示。,5.3.3 DateFormat类,DateFormat是对日期/时间进行格式化的抽象类,它以独立于local的方式,格式化分析日期或时间,该类位于java.text包中。DateFormat提供了很多方法,利用它们可以获得基于默认或者给定语言环境和多种格式化风格的默认日期/时间Formater。,5.3.4

27、 SimpleDateFormat类,它是DateFormat的子类,如果希望定制日期数据的格式,比如:星期三 22:01:10。SimpleDateFormat类以对local敏感的方式对日期和时间进行格式化和解析。它的format方法可将Date转为指定日期格式的String,而parse方法将String转换为Date。,5.4 Math类,Math类也是java.1ang中的一个类,它保留了一些常用的数学函数,是Java中的数学工具包。,5.4 Math类,Math类常用方法见下表,5.5 随机数处理类Random,随机数是一个非常有用的工具,上面介绍的Math中的random方法只能

28、生成0.0到1.0之间的随机实数,要想生成其他类型和区间的随机数必须进一步加工。而java.util包中的Random类可以生成任何类型的随机数流。,5.5 随机数处理类Random,Random常用方法见下表,5.6.1 System类,System类是java.lang包中一个非常重要的类,该类中定义的方法和属性都是静态的。它有三个静态的属性:in、out、error,标准输入流in对应键盘输入或者指定的输入源,标准输出流out对应显示器以及用户指定的输出源,标准的错误输出流error对应于显示器以及用户指定的输出源。,5.6.1 System类,常用方法:1arraycopy方法使用ar

29、raycopy方法可以将一个任意类型的数组快速地从一个地方复制到另一个地方,这笔使用java中编写的循环要快得多。此方法的定义形式为:public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)其功能是从指定的源数组src的指定位置srcPos,复制到指定的目标数组dest的指定位置,复制的长度是length。,5.6.1 System类,常用方法:2currentTimeMillis()方法可以利用currentTimeMillis()方法来记录程序的不同部分执行的时间。此方法返回

30、自1970年1月1号午夜起到现在的时间,单位是毫秒。可以在程序开始运行时调用currentTimeMillis方法,得到一个值,然后在程序结束运行时再调用该方法,得到一个值,两者之差就是程序的运行时间。它的一般形式为:Static long currentTimeMillis(),5.6.1 System类,3和系统属性有关的方法System类中提供了一些方法可以获得系统的属性和状态信息以及对这些信息进行修改,主要有以下方法。Properties getProperties():得到当前系统的属性,属性存放在Properties对象中。setProperties(Properties prop

31、s):设置系统的属性,新的属性值存放在props中。String getProperty(String key):得到指定键key的系统属性。String setProperty(String key,String value):利用指定的键key和值value设置系统的属性。如果所设置的系统属性存在,则返回系统属性值,否则返回null。,5.6.2 RunTime类,RunTime也是java.lang包中一个比较重要的类,该类封装了运行时环境,每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。一般不实例化该类的对象,而是通过调用它的静态方法get

32、RunTime而获得对当前RunTime对象的引用,然后调用该类提供的一些方法去控制Java虚拟机的状态和行为。当Applet和其他不被信任的代码调用任何RunTime方法时,常常会引起SecurityException异常。,5.6.2 RunTime类,1内存管理public long freeMemory()返回 Java 虚拟机中的空闲内存量。public long totalMemory()返回 Java 虚拟机中的内存总量。此方法返回的值可能随时间的推移而变化,这取决于主机环境。public void gc()运行垃圾回收器。调用此方法意味着 Java 虚拟机做了努力来回收未用对象

33、,以便能够快速地重用这些对象当前占用的内存。当控制从方法调用中返回时,虚拟机已经尽最大努力回收了所有丢弃的对象。,5.6.2 RunTime类,2执行其他程序使用excc方法可以在多任务操作系统中让Java去执行其他进程,即用Java运行其他程序。ecec()方法返回一个Process对象,可以使用这个对象控制Java程序与新运行的进程进行交互。由于Java是运行在多种平台和操作系统下,所以此方法本质上是依赖于环境的。它的几种形式如下:Process exec(String command)Process exec(String cmdarray)Process exec(String cmdarray,Stringenvp)Process exec(String cmdarray,String envp,File dir)Process exec(String command,String envp)Process exec(String command,String envp,File dir),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号