[工学]六、基础类库和工具类库.ppt_第1页
[工学]六、基础类库和工具类库.ppt_第2页
[工学]六、基础类库和工具类库.ppt_第3页
[工学]六、基础类库和工具类库.ppt_第4页
[工学]六、基础类库和工具类库.ppt_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

六、 基础类库和工具类库 Java类库 字符串相关类 集合 日期与时间 1基础类库和工具类库 1Java类库 熟悉Java基础类库 掌握Object 理解基本数据类型的封装 掌握System和Math类 2基础类库和工具类库 1Java类库 Java的类库是系统提供的已实现的标准类的集合,是 Java编程的API(Application Program Interface),它 可以帮助开发者方便、快捷地开发Java程序。 这些系统定义好的类根据实现的功能不同,可以划分 成不同的集合,每个集合是一个包,合称为类库。 Java的类库大部分是由它的发明者SUN公司 提 供的,这些类库称为JFC (基础类库,Java Foundation Class Library)。 API 应用程序编程接口 面向过程语言 函数库(子程序包) 面向对象语言 类库 3基础类库和工具类库 类库的结构 java.lang 语言基础类库(System、Math、Thread、基本 数据类型类) java.util Java的工具类库(向量、栈、日期) java.io Java的标准输入输出类库 java.applet 用于实现Java Applet小程序的类库 java.awt 用于构建图形用户界面的类库 java.awt.event 界面用户交互控制和事件响应类库 java.awt.image 用来处理和操纵来自于网上图片的工具 类库 Java的用于实现网络功能的类库 java.sql 用来时间JDBC的类库,利用它可以使Java访 问各种数据库 4基础类库和工具类库 使用JDK Document查看类库 在JDK文档的解压目录下,选择index.html进 入JDK文档,然后在文档中单击“API public class BasicObjectDemo public static void main(String args) A a1 = new A( ); A a2 = new A( ); A a3 = a1; System.out.println(a1.equals(a2); System.out.println(a3.equals(a1); System.out.println(a1.hashCode(); System.out.println(a1.toString( ); class A false true 33263331 Book.ch6.Alfb8ee3 这两者关系 如何? 7基础类库和工具类库 Class类 Java运行时系统会对所有的对象进行类型识别 public final Class extends Object 一般方法: String getName() 返回类名。 Field getFields() 返回类的public域 对象。 Method getMethods() 返回类的 public方法对象。 Package getPackage() 返回该类的包 。 对Field 类 String getName() 取域名 对Method 类 String getName() 取方法名 对Package 类 String getName() 8基础类库和工具类库 数据类型类 基本数据类型 vs. 数据类型类 如:boolean vs Boolean, char vs Character等 数据类型类 规定了数据类型的最大值、最小值 构造函数:如new Integer(10); 完成不同数据类型间转换,注意不同的数据 类使用的方法会有不同。 如:Double.toString(0.08)、Integer.parseInt(“123”) 、 Double.ValueOf(“0.08”).intValue ()等,见JDK Doc 【例6.2】基本数据封装类。 9基础类库和工具类库 public class BasicDataTypeClassDemo public BasicDataTypeClassDemo() public static void main(String args) Integer i=new Integer(256); Integer j=new Integer(“256“); System.out.println(Value()*2); System.out.println(i.doubleValue(); System.out.println(“i=“+i.toString(); System.out.println(i=j); System.out.println(pareTo(j);/i大取1,i小取-1 System.out.println(Integer.parseInt(“100“)*2); System.out.println(“100*2=“+Integer.toString(100*2); int k; k=Integer.valueOf(“1010“,2); System.out.println(k); System.out.println(Integer.MAX_VALUE); System.out.println(Integer.MIN_VALUE); 512 256.0 i=256 false 0 200 100*2=200 10 2147483674 -2147483674 10基础类库和工具类库 Math类 Math类用来完成常用的数学运算 数学常量:E,PI 数学运算 Math.abs(- 8.09); /取绝对 值 Math.exp( 5.7); /自然对 数 Math.random(); /取得一 个随机数 Math.sqrt(9.08); /开平方 Math.pow( 2,3); /乘方 Math.round(99.6); /取得最 接近的整数 均为static,使用时无需创建实 例 Math.method(variable); 11基础类库和工具类库 属性 public final static double E; / 数学常 量e public final static double PI; / 圆周率 常量 方法(均为静态方法) public static int abs(int i); public static double sin(double a); public static double log(double a); public static double max(double a, double b); public static double pow(double a, double b); public static double random(); / 产生01之间伪随机 数12基础类库和工具类库 public static double exp(double a); public static int round(float a); public static double sqrt(double a); 例: System.out.println(Math.E); / 2.718281828 System.out.println(Math.PI); / 3.14159265 System.out.println(Math.pow( 2,3);/ 8.0 System.out.println(Math.round(99.6);/100 System.out.println(Math.abs(- 8.09); /8.09 13基础类库和工具类库 System类 System是一个功能强大的类,它不能被实 例化,是一个非常典型的静态方法类,但提供 了标准输入输出、运行时的系统信息等工具。 系统功能 获取系统标准输入/输出 System.in,System.out, System.err 获取系统信息 System.currentTimeMillis( ) 执行系统操作 System.exit(0); System.gc( ); /指定运行垃圾回收 器 14基础类库和工具类库 属性 public static InputStream in public static PrintStream out public static PrintStream err 获取系统信息、完成系统操作的方法 public static long currentTimeMillis(); 获取自1970年1月1日零时至当前系统时刻的微秒数 public static void exit(int status); 强制Java虚拟机退出运行状态,并把状态信息status 返回给运行虚拟机的操作系统。如:System .exit(0); public static void gc(); 强制调用Java虚拟机的垃圾回收功能。 15基础类库和工具类库 2字符串相关类 熟悉字符串相关类 掌握String和StringBuffer 了解StringTokenizer 16基础类库和工具类库 String Java语言中将字符串作为对象来处理,定义了相应的 类String,位于java.lang包中,每一个字符串常量就是 String类的一个实例。下表是String类常用的方法。 方 法说说 明 public int length()返回字符串的长长度。 public boolean equals(Object anObject) 将给给定字符串与当前字符串相比较较,若两字 符串相等,则则返回true,否则则返回false。 public String substring(int beginIndex)返回字符串中从beginIndex开始的子串。 public String substring(int beginIndex, int endIndex) 返回从beginIndex开始到endIndex的子串。 public char charAt(int index)返回index指定位置的字符。 public int indexOf(String str)返回str在字符串中第一次出现现的位置。 public String replace(char oldChar, char newChar) 以newChar字符替换换串中所有oldChar字符。 public String trim()去掉字符串的首尾空格。 17基础类库和工具类库 String类的重要特性之一就是线程访问安全。 因为String类对象实际上是不可改变的,任何涉及到 对String类表示的字符串的操作方法,都是返回一个 新创建的String类对象,因此在对一个String类型的 使用中,往往会同时创建大量并不需要的String实例 ,消耗了不必要的系统资源。 【例6. 3】字符串方法的使用。见教材P126页 18基础类库和工具类库 StringBuffer 为了解决String类的使用对系统资源带来的不利影响,基 本类库提供了StringBuffer类。该类封装了一个字符数组, 并提供了对这个数组的操作方法。下表是StringBuffer类常 用的方法。 方 法功 能 StringBuffer( )创创建一个空的StringBuffer对对象 StringBuffer(int length)设设置初始化容量 StringBuffer(String s)用已有String对对象初始化StringBuffer对对象 StringBuffer append(Object obj)增加Object对对象的字符串表示 StringBuffer insert(int offset, Object obj)在offset位置插入Object对对象的字符串表示 void setCharAt (int index, char ch)将index位置的字符改为为ch String to String( )将可变变串变为变为 不可变变串,以便输输出 char charAt (int index)返回index指定位置的字符 int capacity()获获得当前StringBuffer对对象的容量 int indexOf (String str)返回str子串在当前StringBuffer对对象中的位置 19基础类库和工具类库 【例6. 4】StringBuffer类的使用 public class StringBufferDemo public static void main(String args) StringBuffer buffer = new StringBuffer(); buffer.append(S); buffer.append(“tringBuffer“); System.out.println(buffer.charAt(1); System.out.println(buffer.capacity(); System.out.println(buffer.indexOf(“tring“); System.out.println(“buffer = “ + buffer.toString(); t 16 1 Buffer = StringBuffer 20基础类库和工具类库 StringTokenizer StringTokenizer提供了对字符串的解析和分割功能,使 用这个类可以对一个字符串按照某些子串的特征进行分割。 【例6. 4】StringTokenizer的使用。 import java.util.StringTokenizer; public class StringTokenizerDemo public static void main(String args) String s=“demo of StringTokenizer“; StringTokenizer tokenizer=new StringTokenizer(s, “ “); while (tokenizer.hasMoreTokens() System.out.println(tokenizer.nextToken(); demo of StringTokenizer 21基础类库和工具类库 了解集合API 熟悉Set,List,Iterator接口 熟悉Map接口 了解集合数据遍历、排序和查找 集合 22基础类库和工具类库 集合是一系列对象的聚集,是代表一组对 象的一个对象,集合中的每一个对象称为集合的 元素,每一个元素都具有一定的数据类型,任何 数据类型的对象都可以存放在集合中。 集合接口Collection 集合接口Set 集合接口List 集合接口Iterator 集合接口Map 23基础类库和工具类库 Collection接口分布在java.util包下,定义了聚集形式数 据的基本操作方法,主要包括: public boolean add(Object) 加入一个元素 public boolean addAll(Collection) 将另外一个集合中的元 素全部加入指定的集合中 public void clear() 清除所有的元素 public boolean contains( Object) 判断包含某特定的元素否 public Iterator iterator() 得到迭代器 public boolean remove(Object) 删除一个元素 public int size() 得到集合中元素的总数 public isEmpty() 判断集合是否为空 public Object toArray() 将集合转化为对象数组 Collection接口 24基础类库和工具类库 Collection接口的子接口,定义了一个不重复元素的集合 。 Set接口 对于集合中 的任何两个 元素x和y, x.equals(y) 始终为false ! 25基础类库和工具类库 26基础类库和工具类库 Constructor Summary HashSet() Constructs a new, empty set; the backing HashMap instance has default initial capacity (16) and load factor (0.75). HashSet(Collection c) Constructs a new set containing the elements in the specified collection. HashSet(int initialCapacity) Constructs a new, empty set; the backing HashMap instance has the specified initial capacity and default load factor (0.75). HashSet(int initialCapacity, float loadFactor) Constructs a new, empty set; the backing HashMap instance has the specified initial capacity and the specified load factor. HashSet类的成员方法 27基础类库和工具类库 Method Summary booleanadd(E e) Adds the specified element to this set if it is not already present. voidclear() Removes all of the elements from this set. Objectclone() Returns a shallow copy of this HashSet instance: the elements themselves are not cloned. booleancontains(Object o) Returns true if this set contains the specified element. booleanisEmpty() Returns true if this set contains no elements. Iterator iterator() Returns an iterator over the elements in this set. booleanremove(Object o) Removes the specified element from this set if it is present. intsize() Returns the number of elements in this set (its cardinality). 28基础类库和工具类库 【例6. 5】Set接口和HashSet类的使用。 import java.util.Set; import java.util.HashSet; public class SetDemo public static void main(String args ) Set set = new HashSet(); /父接口引用变量指向子类对象。 set.add(“1”); /添加元素 set.add(“2“); set.add(“3“); set.add(“4“); set.add(new Integer(1); /添加扩展数据类型的元素 set.add(new Double(7.0); set.add(“3”); /添加重复元素 System.out.println(“set=”+set.toString(); /输出集合中的 元素 Object array =set.toArray(); /将集合转化为数组 for(int i=0;i m) Copies all of the mappings from the specified map to this map (optional operation). V remove(Object key) Removes the mapping for a key from this map if it is present (optional operation). intsize() Returns the number of key-value mappings in this map. Collection values() Returns a Collection view of the values contained in this map. 45基础类库和工具类库 【例6.10】 使用Map接口表示family。 import java.util.*; public class FamilyDemo public static void main(String args) Map family=new HashMap(); family.put(“Rhette”,“银帆公司”); /添加元素 family.put(“Scarlet”,“人民医院“); family.put(“Alice”,“育英小学“); family.put(“Windy”,“Windy的窝“); System.out.println(family.get(“Rhette”);/输出父亲所在的单位 Set keySet=family.keySet();/列举所有关键字 for(Iterator iterator=keySet.iterator();iterator.hasNext();) System.out.println(“t“+iterator.next(); Collection values=family.values();/列举所有的值 for(Iterator iterator=values.iterator();iterator.hasNext();) System.out.println(iterator.next(); Set entrySet=family.entrySet();/列举所有映射 for(Iterator iterator=entrySet.iterator();iterator.hasNext();) System.out.println(iterator.next(); 46 基础类库和工具类库 银帆公司 Alice Rhette Scarlet Windy 育英小学 银帆公司 人民医院 Windy的窝 Alice=育英小学 Rhette=银帆公司 Scarlet=人民医院 Windy=Windy的窝 对应的单位 所有映射 家庭成员 父亲的单位 47基础类库和工具类库 集合数据的遍历 (1)通用的列举Collection接口集合的方法 void enumerate(Collection collection) for(Iterator iterator=collection.iterator();iterator.hasNext();) Object o=iterator.next(); (2)遍历List集合的方法 void enumerate(List list) for(int i=0;ilist.size();i+) Object o=list.get(i); (3)遍历一些有特殊方法的集合 void enumerate(Vector vector) for(int i=0;ivector.size();i+) Object o=vector.elementAt(i); 48基础类库和工具类库 查找和排序 首先java.util.Comparator接口提供了比较对象间大 小的方法。 public interface Comparator int compare(Object o1,Object o2); boolean equals(Object obj); 其次java.util.Collections类提供了大量对集合的 辅助性操作方法,与排序有关的主要有: public static void sort(List list); public static void sort(List list,Comparator c); 排序的依据可以采用第二个方法中的参数c来约束。 例:P137排序 49基础类库和工具类库 掌握Date 掌握Calendar 4日期与时间 50基础类库和工具类库 日期类 java.util包里提供了操作时间的基本功能 类,包括Date、Calendar和GregorianCalender 类,其中Date类早在JDK1.1版中就出现了,但 由于设计存在严重缺陷,其中大量方法被废弃 (Deprecated),而被分散到其他类中,因此在使 用Date类的时候应该尽量避免使用这些方法。 51基础类库和工具类库 Date 构造方法 Date( ) 初始化时间对象,记录当前系统时间 Date(long date) 以毫秒为单位,从1970年1月1日0时开始 构造一个Date实例。 方法 long getTime( ) 获取自1970.1.1零时至当前系统时刻的微 秒数 int getDate( ) 获取系统当前日期 boolean after(Date date

温馨提示

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

评论

0/150

提交评论