基礎(chǔ)類庫與工具類庫ppt課件_第1頁
基礎(chǔ)類庫與工具類庫ppt課件_第2頁
基礎(chǔ)類庫與工具類庫ppt課件_第3頁
基礎(chǔ)類庫與工具類庫ppt課件_第4頁
基礎(chǔ)類庫與工具類庫ppt課件_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 Java 程序設(shè)計(jì)程序設(shè)計(jì):laihan_ctbu126laihan_ctbu126授課教師:賴涵 手機(jī)六章 基礎(chǔ)類庫和工具類庫內(nèi)容n回顧包的概念nJava基本類庫介紹njava.lang包中幾個(gè)關(guān)鍵類的介紹nObjectn基本數(shù)據(jù)類型的封裝nSystemnMathnStringnStringBuffer第六章 基礎(chǔ)類庫和工具類庫包n包的作用n包的層次n包的定義n包的使用mypackageUML包圖第六章 基礎(chǔ)類庫和工具類庫包舉例package mypackage1;public class Hello public void sayHello() System.o

2、ut.println(Hello!); 必須放在一個(gè)java程序的最開始第六章 基礎(chǔ)類庫和工具類庫包舉例package mypackage2;import mypackage1.Hello;public class TestHello public static void main(String arguments) Hello h = new Hello(); h.sayHello(); 輸出:Hello!第六章 基礎(chǔ)類庫和工具類庫Java類庫類庫nJava類庫提供了若干個(gè)包,每個(gè)包分別負(fù)責(zé)不同的功能。n下表列舉出java類庫中的一些包。第六章 基礎(chǔ)類庫和工具類庫Java類庫類庫包名概述ja

3、va.util.*提供集合等常用工具類提供集合等常用工具類java.text.*提供處理文本,日期等功能的類提供處理文本,日期等功能的類java.sql.*提供數(shù)據(jù)庫訪問相關(guān)的類提供數(shù)據(jù)庫訪問相關(guān)的類java.*提供網(wǎng)絡(luò)通信相關(guān)的類提供網(wǎng)絡(luò)通信相關(guān)的類java.math.*提供數(shù)學(xué)運(yùn)算相關(guān)的類提供數(shù)學(xué)運(yùn)算相關(guān)的類java.io.*提供提供IO相關(guān)的類相關(guān)的類java.awt.*提供提供GUI相關(guān)的類相關(guān)的類java.applet.*提供提供applet相關(guān)的類相關(guān)的類第六章 基礎(chǔ)類庫和工具類庫選擇包選擇類第六章 基礎(chǔ)類庫和工具類庫Java幫助文檔的安裝n從java.sun/docs下載該文檔n

4、選擇最合適的版本,下載后得到的.zip文件,用JDK中的jar程序?qū)ip文件進(jìn)行解壓縮,執(zhí)行步驟:n下載該文檔的zip文件并放入jdk目錄。文件名為j2sdkversion-doc.zipn打開一個(gè)DOS窗口n進(jìn)入jdk目錄n執(zhí)行命令: jar xvf j2sdkversion-doc.zip第六章 基礎(chǔ)類庫和工具類庫java.lang包包n這個(gè)包是java語言最基本的包,這個(gè)包中n的所有類都由系統(tǒng)自動引入,所以程序中不n需要import語句就可以使用該包中的任何類。n需要強(qiáng)調(diào)的是:除了java.lang包之外,如n果要使用java類庫中其他包中的類,則需要nimport語句。第六章 基礎(chǔ)類

5、庫和工具類庫java.lang包包njava.lang包中有4個(gè)部分:接口,類,例外和錯誤。n下面主要介紹該包中幾個(gè)關(guān)鍵的類:n Objectn 包裝類n Systemn Mathn Stringn StringBuffer第六章 基礎(chǔ)類庫和工具類庫Object類類nObject類是java語言中所有類的父類。任何一個(gè)類都是從Object類派生而來的。nObject類的UML圖如右圖所示:第六章 基礎(chǔ)類庫和工具類庫Object類類 equals(Object obj):比較兩個(gè)對象是否相等。僅當(dāng)被比較的兩個(gè)對象引用指向同一個(gè)對象時(shí),equals()方法才返回true。許多java類都覆蓋了這個(gè)

6、方法。注:與=作用相同類的介紹/ObjectObject()構(gòu)造方法clone()克隆一個(gè)對象equals(Object obj)判斷本對象與obj是否相等finalize()被垃圾收集器調(diào)用getClass()返回對象的classhashCode()返回對象的hash code值notify()叫醒一個(gè)正在等待的線程notifyAll()叫醒所有正在等待的線程toString()返回代表這個(gè)對象的字符串wait()讓本線程進(jìn)入等待wait(long timeout)讓本線程進(jìn)入等待wait(long timeout, int nanos)讓本線程進(jìn)入等待第六章 基礎(chǔ)類庫和工具類庫基本數(shù)據(jù)類型

7、的封裝n在java中,對于每一種基本數(shù)據(jù)類型,都提供了一個(gè)封裝器,即對應(yīng)著一個(gè)類。在某些場合必須使用這些類。primitiveclassbooleanBooleanbyteBytecharCharactershortShortprimitiveclassintIntegerlongLongfloatFloatdoubleDouble第六章 基礎(chǔ)類庫和工具類庫舉例: 在int/Integer/String三者轉(zhuǎn)化Integer(String s); / String to IntegerInteger(int i); / primitive to IntegerInteger. valueOf(

8、4); / String to Integerint i =4;Integer objInt = new Integer(i);int j = objInt. intValue(); / Integer to primitiveString s = objInt. toString(); / Integer to Stringint k = Integer. parseInt(4); / String to primitive字符串不能為null,同時(shí)必須是能解析為int的數(shù)據(jù),如 new Integer(“three”) 第六章 基礎(chǔ)類庫和工具類庫System類類System類提供了標(biāo)準(zhǔn)輸入

9、,標(biāo)準(zhǔn)輸出以及一些相關(guān)環(huán)境信息。 它的方法直接通過System類調(diào)用。第六章 基礎(chǔ)類庫和工具類庫System類類例例1public class DataTypePrinter public static void main(String args) Thread objectData = new Thread(); String stringData = hello; char charArrayData =a,b,c; int intData = 4; long longData = Long.MIN_VALUE; float floatData = Float.MAX_VALUE; dou

10、ble doubleData = Math.PI; boolean booleanData = true;第六章 基礎(chǔ)類庫和工具類庫System類類例例1接上頁)接上頁) System.out.println(objectData); System.out.println(stringData); System.out.println(charArrayData); System.out.println(intData); System.out.println(longData); System.out.println(floatData); System.out.println(double

11、Data); System.out.println(booleanData); 第六章 基礎(chǔ)類庫和工具類庫System類類例例2nSystem類提供了一個(gè)方法返回系統(tǒng)環(huán)境信息。n public static Property getProperty(argument);第六章 基礎(chǔ)類庫和工具類庫System類類例例2public class testSystem public static void main(String args) System.out.println(System.getProperty(user.dir); System.out.println(System.getPr

12、operty(); 第六章 基礎(chǔ)類庫和工具類庫Math類類nMath類的定義:npublic final class Math extends Object nMath類包含了常用的科學(xué)計(jì)算方法,如開方、指數(shù)運(yùn)算、對數(shù)、三角函數(shù)等。這些方法都是靜態(tài)方法,可以通過類名直接調(diào)用。第六章 基礎(chǔ)類庫和工具類庫Math類類nMath類的UML圖如右n圖所示:int radius = 3 ;double area= Math.PI*Math.pow(radius,2);/求一個(gè)圓的面積第六章 基礎(chǔ)類庫和工具類庫字符串操縱類nJava提供了兩個(gè)用于字符串操作的類,一個(gè)是nString,另一個(gè)是

13、StringBuffer。nString類用于處理那些值不會發(fā)生改變的字符串。nStringBuffer類用于處理值可能發(fā)生變化的字符串。第六章 基礎(chǔ)類庫和工具類庫String類類nString類的UMLn如右圖所示:第六章 基礎(chǔ)類庫和工具類庫String類類nString類有很多種構(gòu)造函數(shù)形式:n例如:nString s1 = “hello”; nString s1 = new String(“hello”);nchar aArray = h,e,l,l,o;n String s2 = new String(aArray);第六章 基礎(chǔ)類庫和工具類庫String類的常用方法類的常用方法例例1

14、nsubString():返回字符串的一個(gè)子字符串,n 有以下兩種重載形式:npublic String subString(int beginIndex)npublic String subString(int beginIndex, int endIndex)n 子串在源串中的起始位置結(jié)束位置為endeIndex-1第六章 基礎(chǔ)類庫和工具類庫String類的常用方法類的常用方法例例1class testString public static void main(String args) String s = 123456789; System.out.println(s.substrin

15、g(3); System.out.println(s.substring(3,s.length(); System.out.println(s.substring(3,7); 第六章 基礎(chǔ)類庫和工具類庫String類的常用方法類的常用方法例例2class testString public static void main(String args) String s = 123456789; System.out.println(s.concat(hello); System.out.println(s); 第六章 基礎(chǔ)類庫和工具類庫String類的常用方法類的常用方法例例3class tes

16、tString public static void main(String args) String s = 123456789; System.out.println(s.replace(3,4); System.out.println(s); 第六章 基礎(chǔ)類庫和工具類庫String類的常用方法類的常用方法例例4n在字符串中檢索特定字符或子字符串nindexOf():從字符串的首位開始查找nlastIndexOf():從字符串的末尾開始查找n這兩種方法如果找到,就返回匹配成功的n位置,如果沒有找到,就返回-1第六章 基礎(chǔ)類庫和工具類庫String類的常用方法類的常用方法例例4String

17、str = “HelloHelloHello”;/查找字符e第一次在str中出現(xiàn)的位置System.out.println(str.indexOf(e); /打印1/查找字符e從位置2開始第一次在str中出現(xiàn)的位置System.out.println(str.indexOf(e,2); /打印6/查找字符e” 在str中最后一次出現(xiàn)的位置System.out.println(str.lastIndexOf(e); /打印11/查找字符串ello” 從位置2開始第一次在str中出現(xiàn)的位置System.out.println(str. indexOf(“ello”,2); /打印6/查找字符串El

18、lo” 第一次在str中出現(xiàn)的位置System.out.println(str. indexOf(“Ello”); /打印-1第六章 基礎(chǔ)類庫和工具類庫StringBuffer類類當(dāng)要處理內(nèi)容可變的字符串時(shí),則應(yīng)該使用StirngBuffer類。它的UML如右圖所示:第六章 基礎(chǔ)類庫和工具類庫StringBuffer例例1n用三種方法演示字符串拼接。npublic class StringBufferDemo n public static void main(String argv) n /第一種方法n String s1 = hello + , + world;n System.out.p

19、rintln(s1);n nn StringBuffer例例2/用三種方法演示字符串拼接。public class StringBufferDemo public static void main(String argv) /第二種方法 /構(gòu)造StringBuffer對象,并添加一些字符串 StringBuffer sb2 = new StringBuffer(); sb2.append(hello); sb2.append(, ); sb2.append(world); /將StringBuffer對象轉(zhuǎn)換成String對象并輸出 String s2 = sb2.toString(); Sy

20、stem.out.println(s2); 第六章 基礎(chǔ)類庫和工具類庫StringBuffer例3public class StringBufferDemo public static void main(String argv) /第三種方法 StringBuffer sb3 = new StringBuffer(). append(hello).append(,). append(world); System.out.println(sb3.toString(); 第六章 基礎(chǔ)類庫和工具類庫StringBuffer例4public class StringBufferDemo public

21、 static void main(String argv) StringBuffer sb = new StringBuffer(start); sb.insert(0,we are ); System.out.println(sb.toString(); 第六章 基礎(chǔ)類庫和工具類庫Java集合類集合類n集合類概述n 集合類作用、特點(diǎn)n 舊的集合類介紹n Vector、Hashtable、Stackn 新的集合類介紹n Collection、Set、Map、List第六章 基礎(chǔ)類庫和工具類庫集合類概述n集合類的作用:n Java的集合類提供了一些基本數(shù)據(jù)結(jié)構(gòu)的支持。n例如Vector、Has

22、htable、Stack等。n集合類的使用:nJava的集合類包含在java.util包中。nimport java.util.*;第六章 基礎(chǔ)類庫和工具類庫集合類概述n集合類特點(diǎn)一:n只容納對象。這一點(diǎn)和數(shù)組不同,數(shù)組可以容納n基本數(shù)據(jù)類型數(shù)據(jù)和對象。n如果集合類中想使用基本數(shù)據(jù)類型,又想利用n集合類的靈活性,可以把基本數(shù)據(jù)類型數(shù)據(jù)封裝n成該數(shù)據(jù)類型的對象,然后放入集合中處理。第六章 基礎(chǔ)類庫和工具類庫集合類概述n集合類特點(diǎn)二:n集合類容納的對象都是Object類的實(shí)例,一旦把n一個(gè)對象置入集合類中,它的類信息將丟失,這樣設(shè)n 計(jì)的目的是為了集合類的通用性。n因?yàn)镺bject類是所有類的祖先

23、,所以可以在這些n集合中存放任何類的對象而不受限制,但是切記在使n用集合成員之前必須對它重新造型。第六章 基礎(chǔ)類庫和工具類庫集合類概述n下面根據(jù)JDK版本分兩部分介紹Java的n集合類。n第一部分:JDK1.1版本中的集合類。n第二部分:JDK1.2以后版本中的集合類。第六章 基礎(chǔ)類庫和工具類庫數(shù)組n數(shù)組n基本數(shù)據(jù)類型數(shù)組n對象數(shù)組n舉例說明數(shù)組的定義、運(yùn)用。class Honeybee int value; Honeybee(int v) value=v; public String toString() return new Integer(value).toString(); publi

24、c class ArraySize public static void main(String args) Honeybee a; /* System.out.println(a.length); 產(chǎn)生編譯錯誤,因?yàn)閍沒有定義大小*/ Honeybee b = new Honeybee5; System.out.println(b.length); /輸出5 for(int i=0; ib.length; i+) System.out.println(bi); /輸出5個(gè)null例1:演示對象數(shù)組用法: Honeybee c = new Honeybee4; for(int i=0; ic.

25、length; i+) ci=new Honeybee(i); System.out.println(c.length); /輸出4 Honeybee d= new Honeybee(100), new Honeybee(200), new Honeybee(300); System.out.println(d.length); /輸出3 a = d; /數(shù)組之間賦值 System.out.println(a.length); /輸出3 for(int i=0; ia.length; i+) System.out.println(ai); /輸出100,200,300 a = new Hone

26、ybee new Honeybee(1), new Honeybee(2) ; System.out.println(a.length); /輸出2 例1:演示對象數(shù)組用法:public class ArraySize2 public static void main(String args) int a; /* System.out.println(a.length); 產(chǎn)生編譯錯誤,因?yàn)閍沒有定義大小*/ int b = new int5; System.out.println(b.length); /輸出5 for(int i=0; ib.length; i+) System.out.p

27、rintln(bi); /輸出5個(gè)0 int c = new int4; for(int i=0; ic.length; i+) ci=i; System.out.println(c.length); /輸出4例2: 演示基本類型數(shù)組用法: int d= 100,200,300; System.out.println(d.length); / 輸出3 a = d; /數(shù)組之間賦值 System.out.println(a.length); / 輸出3 for(int i=0; ia.length; i+) System.out.println(ai); / 輸出100,200,300 a =

28、new int 1,2; System.out.println(a.length); / 輸出2 例2: 演示基本類型數(shù)組用法:第六章 基礎(chǔ)類庫和工具類庫舊的集合類nVectornStacknHashtable第六章 基礎(chǔ)類庫和工具類庫Vector類類nVector類實(shí)現(xiàn)了長度可變的數(shù)組。nVector中只能存放對象。nVector的元素通過下標(biāo)進(jìn)行訪問。nVector類關(guān)鍵屬性:ncapacity表示集合最多能容納的元素個(gè)數(shù)。ncapacityIncrement表示每次增加多少容量。nsize表示集合當(dāng)前元素個(gè)數(shù)。Vector v = new Vector(100)第六章 基礎(chǔ)類庫和工具類庫

29、Vector類類nVector類關(guān)鍵方法:nvoid addElement(Object obj)nvoid add(int index, Object element)nObject elementAt(int index)nvoid insertElementAt(Object obj, int index)第六章 基礎(chǔ)類庫和工具類庫Vector類舉例類舉例1import java.util.Vector;class Cat private int catNumber; Cat(int i)catNumber = i; void print()System.out.println(Cat

30、#+catNumber);class Dog private int dogNumber; Dog(int i)dogNumber = i; void print()System.out.println(Dog #+dogNumber);轉(zhuǎn)下頁Vector類舉例類舉例1接上頁:public class CatsAndDogs public static void main(String args) Vector cats = new Vector(); for(int i=0; i7; i+) cats.addElement(new Cat(i); cats.addElement(new Do

31、g(7); for(int i=0; icats.size(); i+) (Cat)cats.elementAt(i).print(); Object對象Cat對象Vector類舉例類舉例2修改Vector例1,用Enumeration。import java.util.Vector;import java.util.Enumeration;class Cat private int catNumber; Cat(int i)catNumber = i; void print()System.out.println(Cat #+catNumber);class Dog private int

32、dogNumber; Dog(int i)dogNumber = i; void print()System.out.println(Dog #+dogNumber);轉(zhuǎn)下頁Vector類舉例類舉例2接上頁:public class CatsAndDogs public static void main(String args) Vector cats = new Vector(); for(int i=0; i7; i+) cats.addElement(new Cat(i); cats.addElement(new Dog(7); / for(int i=0; icats.size();

33、i+) / (Cat)cats.elementAt(i).print(); Enumeration e = cats.elements(); while(e.hasMoreElements() (Cat) e.nextElement().print(); 第六章 基礎(chǔ)類庫和工具類庫Stack類類nStack類是Vector的子類。nStack類描述堆棧數(shù)據(jù)結(jié)構(gòu),即LIFO。nStack類的關(guān)鍵方法:npublic void push(Object item)npublic Object pop()npublic Object peek()npublic boolean empty()演示/把項(xiàng)

34、壓入棧頂 移除棧頂對象并作為此函數(shù)的值返回該對象 /查看棧頂對象而不移除它 / 測試堆棧是否為空 Stack類舉例import java.util.*;public class Stacks static String months=1,2,3,4; public static void main(String args) Stack stk = new Stack(); for(int i=0; imonths.length; i+) stk.push(monthsi); System.out.println(stk); System.out.println(element 2= + stk

35、.elementAt(2); while(!stk.empty() System.out.println(stk.pop(); 第六章 基礎(chǔ)類庫和工具類庫Hashtable類類nHashtable通過鍵來查找元素。nHashtable用一個(gè)特殊的值來確定鍵,名為hashcode散列碼)。所有對象都有一個(gè)n 散列碼,可以通過Object 類的hashCode()n 方法獲得。第六章 基礎(chǔ)類庫和工具類庫Hashtable舉例舉例n該例子用來檢驗(yàn)Math.random()方法的隨n機(jī)性。在理想情況下,它應(yīng)該產(chǎn)生一系列完n美的隨機(jī)分布的數(shù)字。為了驗(yàn)證這一點(diǎn),我n們需要生成數(shù)量眾多的隨機(jī)數(shù)字,然后計(jì)算n

36、落在不同范圍內(nèi)的數(shù)字量。該程序生成n10000個(gè)隨機(jī)數(shù),看它們在020之間的n分布如何。返回帶正號的 double 值,大于或等于 0.0,小于 1.0。 第六章 基礎(chǔ)類庫和工具類庫Hashtable舉例import java.util.*;class Counter int i=1; public String toString() return Integer.toString(i); public class Statistics public static void main(String args) Hashtable ht = new Hashtable(); for(int i=

37、0; i10000; i+) Integer r = new Integer(int)(Math.random()*20); if(ht.containsKey(r) (Counter)ht.get(r).i+; else ht.put(r, new Counter(); System.out.println(ht); 第六章 基礎(chǔ)類庫和工具類庫新集合類nJava1.2開始又一個(gè)龐大的集合體系,它用來完成各種集合操作。nCollectionnListnSetnMap第六章 基礎(chǔ)類庫和工具類庫集合框架中的接口第六章 基礎(chǔ)類庫和工具類庫集合框架中的接口nCollection:集合層次中的根接口,J

38、DK沒有提供這個(gè)接口直接的實(shí)現(xiàn)類。nSet:不能包含重復(fù)的元素。SortedSet是一個(gè)按照升序排列元素的Set。nList:是一個(gè)有序的集合,可以包含重復(fù)的元素。提供了按索引訪問的方式。nMap:包含了key-value對。Map不能包含重復(fù)的key。SortedMap是一個(gè)按照升序排列key的Map。第六章 基礎(chǔ)類庫和工具類庫Collection第六章 基礎(chǔ)類庫和工具類庫SetnSet中的元素必須唯一。n添加到Set中的元素必須定義equals方法,以提供算法來判斷欲添加進(jìn)來的對象是否與已經(jīng)存在的某對象相等,從而建立對象的唯一性。n實(shí)現(xiàn)Set接口的類有HashSet,TreeSet。462

39、7351Set集集第六章 基礎(chǔ)類庫和工具類庫Set第六章 基礎(chǔ)類庫和工具類庫Set舉例舉例import java.util.*;public class SetDemo public static void main(String argv) HashSet h = new HashSet(); /也可以 Set h=new HashSet() h.add(One); h.add(Two); h.add(One); / DUPLICATE h.add(Three); Iterator it = h.iterator(); while (it.hasNext() System.out.print

40、ln(it.next(); 第六章 基礎(chǔ)類庫和工具類庫回想:n接口可以作為一種引用類型使用,如:nDriveControl control = new Car();ncontrol.startEngine(); 接口創(chuàng)建一個(gè)完整的Car實(shí)例,Car是實(shí)現(xiàn)接口DriveControl的一個(gè)類/訪問接口中定義的方法P49第六章 基礎(chǔ)類庫和工具類庫Set舉例舉例import java.util.*;public class SetDemo public static void main(String argv) HashSet h = new HashSet(); /也可以 Set h=new HashSet() h.add(One); h.add(Two); h.add(One); / DUPLICATE h.add(Three); Iterator it = h.iterator(); while (it.hasNext() System.out.println(it.next(); Iterator講解 見P132 6.3.4第六章 基礎(chǔ)類庫和工具類庫ListnList的明顯特征是它的元素都有一個(gè)確定的順序。n實(shí)現(xiàn)它的類有ArrayList和LinkedList。nArrayList內(nèi)存中是順序存儲的。nLinkedList內(nèi)存中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論