第4章 包、接口、類_第1頁(yè)
第4章 包、接口、類_第2頁(yè)
第4章 包、接口、類_第3頁(yè)
第4章 包、接口、類_第4頁(yè)
第4章 包、接口、類_第5頁(yè)
已閱讀5頁(yè),還剩62頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第4章章 包、接口、類庫(kù)包、接口、類庫(kù) Java程序時(shí)類與接口的集合程序時(shí)類與接口的集合可以將常用的類或功能相似的類放在一可以將常用的類或功能相似的類放在一個(gè)軟件包中。個(gè)軟件包中。編寫程序僅僅依靠程序員自己設(shè)計(jì)類和編寫程序僅僅依靠程序員自己設(shè)計(jì)類和接口是不行的,應(yīng)大量地調(diào)用系統(tǒng)類庫(kù)接口是不行的,應(yīng)大量地調(diào)用系統(tǒng)類庫(kù)4.1 包包 Java 包機(jī)制包機(jī)制將相似的類和接口可以放在同一個(gè)包中集中管理將相似的類和接口可以放在同一個(gè)包中集中管理程序編譯的類被放在包內(nèi),要訪問(wèn)類就要給出類程序編譯的類被放在包內(nèi),要訪問(wèn)類就要給出類所屬的包名,來(lái)指明類是在哪一個(gè)包中,以便能所屬的包名,來(lái)指明類是在哪一個(gè)包中,

2、以便能夠找到該類。一個(gè)包中有許多類,同時(shí)還可以有夠找到該類。一個(gè)包中有許多類,同時(shí)還可以有子包。子包。JavaJava語(yǔ)言的包可以被另一個(gè)語(yǔ)言的包可以被另一個(gè)JavaJava開(kāi)發(fā)包所開(kāi)發(fā)包所使用使用 Java Java 包機(jī)制提供了樹(shù)形結(jié)構(gòu)的多層次命名空間,包機(jī)制提供了樹(shù)形結(jié)構(gòu)的多層次命名空間,如如java.lang.System.out.printlnjava.lang.System.out.println簡(jiǎn)單理解:包就是簡(jiǎn)單理解:包就是目錄(目錄不一定是包)目錄(目錄不一定是包)4.1 包 4.1.1 包的聲明包的聲明 1 1包語(yǔ)句包語(yǔ)句package package 包名包名1.1.包名

3、包名2.2.包名包名3;3; 包的聲明語(yǔ)句必須放在程序源文件的開(kāi)始,前包的聲明語(yǔ)句必須放在程序源文件的開(kāi)始,前面如果包括語(yǔ)句,只能是注釋語(yǔ)句。面如果包括語(yǔ)句,只能是注釋語(yǔ)句。JavaJava規(guī)定,任何一個(gè)源文件最多只能有一個(gè)包規(guī)定,任何一個(gè)源文件最多只能有一個(gè)包聲明語(yǔ)句,包名全部用小寫聲明語(yǔ)句,包名全部用小寫包名前可以帶路徑,形成多層次命名空間包名前可以帶路徑,形成多層次命名空間包的名字有層次關(guān)系,各層之間用點(diǎn)分隔包的名字有層次關(guān)系,各層之間用點(diǎn)分隔 4.1 包包 4.1.1 包的聲明包的聲明 1 1包語(yǔ)句包語(yǔ)句 要使用包,首先創(chuàng)建一個(gè)子目錄,然后要使用包,首先創(chuàng)建一個(gè)子目錄,然后將源程序放在

4、該子目錄中,編譯源程序?qū)⒃闯绦蚍旁谠撟幽夸浿?,編譯源程序后,生成的字節(jié)碼文件即在該包中。后,生成的字節(jié)碼文件即在該包中。4.1 包包 2包聲明示例包聲明示例package family;package family;class Parentsclass Parents class Sonclass Son class Daughterclass Daughter interface Workinterface Work 上述程序經(jīng)過(guò)編譯,就可以建立程序包上述程序經(jīng)過(guò)編譯,就可以建立程序包familyfamilypackage family;public class Parents String

5、 father=張三張三,mother=李四李四; public void displayParentsName() System.out.println(父親的名字是:父親的名字是:+father); System.out.println(母親的名字是:母親的名字是:+mother); class Son String name=張三四張三四; void displaySonName() System.out.println(兒子的名字是:兒子的名字是:+name); class Daughter String name=張三五張三五; void displayDaughterName()

6、System.out.println(女兒的名字是:女兒的名字是:+name); 4.1 包 /引用上頁(yè)中建立的包中的類引用上頁(yè)中建立的包中的類import family.*;public class my public static void main(String args) Parents p=new Parents(); p.displayParentsName(); / Son s=new Son(); /出問(wèn)題嗎?出問(wèn)題嗎? / s.displaySonName(); /保存為保存為Parents.javapackage family; public class Parents S

7、tring father=張三張三,mother=李四李四; public void displayParentsName() System.out.println(父親的名字是:父親的名字是:+father); System.out.println(母親的名字是:母親的名字是:+mother); /保存為保存為Son.javapackage family;public class Son String name=張三四張三四; void displaySonName() System.out.println(兒子的名字是:兒子的名字是:+name); class Daughter Strin

8、g name=張三五張三五; void displayDaughterName() System.out.println(女兒的名字是:女兒的名字是:+name); 4.1 包 /引用上頁(yè)中建立的包中的類引用上頁(yè)中建立的包中的類import family.*;public class my public static void main(String args) Parents p=new Parents(); p.displayParentsName(); Son s=new Son(); s.displaySonName();/ Daughter d=new Daughter(); /出問(wèn)

9、題?出問(wèn)題?/ d.displayDaughterName(); 4.1 包 /多層次包的建立多層次包的建立package ha.zz.zzdx;public class my public static void main(String args) new Test().print(); class Test /前面需要加前面需要加public嗎?嗎? public void print() System.out.println(這個(gè)程序用于建立包的多層結(jié)構(gòu)這個(gè)程序用于建立包的多層結(jié)構(gòu)!); 4.1 包 l上例中的兩個(gè)類均位于包上例中的兩個(gè)類均位于包ha.zz.zzdx中,完整名稱為中,完整

10、名稱為ha.zz.zzdx.my和和ha.zz.zzdx.Testl同一包中的類相互訪問(wèn),不需指明包;如果從外部訪問(wèn)包中的類,同一包中的類相互訪問(wèn),不需指明包;如果從外部訪問(wèn)包中的類,則需使用完整的類名稱則需使用完整的類名稱l包的存放位置與包層次中對(duì)應(yīng)的目錄結(jié)構(gòu)一致包的存放位置與包層次中對(duì)應(yīng)的目錄結(jié)構(gòu)一致l如果上述文件如果上述文件my.java存放在存放在d:java,則編譯產(chǎn)生的則編譯產(chǎn)生的my.class和和Test.class必須在必須在d:javahazzzzdx中,且將中,且將d:java放置在放置在classpath中中l(wèi)包的產(chǎn)生方法:包的產(chǎn)生方法: javac d . my.ja

11、va (my.java在當(dāng)前目錄中,即在當(dāng)前目錄中,即ha的父目錄)的父目錄) 或者從當(dāng)前目錄開(kāi)始逐級(jí)建立子目錄,將或者從當(dāng)前目錄開(kāi)始逐級(jí)建立子目錄,將my.java復(fù)制到復(fù)制到zzdx中,中, 并在并在zzdx中編譯中編譯my.javal上例的執(zhí)行方法:上例的執(zhí)行方法: java ha.zz.zzdx.my建議使用第二種方法產(chǎn)生包建議使用第二種方法產(chǎn)生包4.1 包包 4.1.2 包的引用包的引用 包引入包引入importimport語(yǔ)句的格式是:語(yǔ)句的格式是:import import 包名包名1.1.包名包名2.2.包名包名3 (3 (. .類名類名| |* *); ); 一個(gè)程序中可以導(dǎo)

12、入多個(gè)包,每個(gè)包都要用一一個(gè)程序中可以導(dǎo)入多個(gè)包,每個(gè)包都要用一條條importimport語(yǔ)句導(dǎo)入語(yǔ)句導(dǎo)入一個(gè)一個(gè)importimport語(yǔ)句只能引入一個(gè)包,且不能自動(dòng)語(yǔ)句只能引入一個(gè)包,且不能自動(dòng)引入下級(jí)包引入下級(jí)包一個(gè)程序中可以有多條一個(gè)程序中可以有多條importimport語(yǔ)句語(yǔ)句4.1 包 4.1.2 包的引用包的引用 package ha.zz.zzdx; /在上面生成的包中再添一個(gè)類在上面生成的包中再添一個(gè)類public class Add public int add(int a,int b)/構(gòu)造方法?構(gòu)造方法? return a+b; 4.1 包 4.1.2 包的引用包的

13、引用 import ha.zz.zzdx.*; /引入引入上面建立的包上面建立的包public class my public static void main(String args) Add test = new Add() ; System.out.println(test.add(5,8); 4.1 包 4.1.2 包的引用包的引用 l一個(gè)程序中可導(dǎo)入多個(gè)包,每個(gè)一個(gè)程序中可導(dǎo)入多個(gè)包,每個(gè)import語(yǔ)句只語(yǔ)句只能導(dǎo)入一個(gè)包能導(dǎo)入一個(gè)包l包可以壓縮形式(包可以壓縮形式(.jar)存儲(chǔ)在某個(gè)目錄中)存儲(chǔ)在某個(gè)目錄中l(wèi)java.lang不需要導(dǎo)入,可直接使用其中的類不需要導(dǎo)入,可直接使用

14、其中的類l使用使用import導(dǎo)入某個(gè)包中的所有類(用導(dǎo)入某個(gè)包中的所有類(用*)時(shí))時(shí)不會(huì)自動(dòng)導(dǎo)入子包中的類,子包中的類需要另不會(huì)自動(dòng)導(dǎo)入子包中的類,子包中的類需要另外用外用import導(dǎo)入:導(dǎo)入: import java.awt.*; import java.awt.event.*;4.1 包 4.1.2 包的引用包的引用 包可以壓縮形式(包可以壓縮形式(.jar)存儲(chǔ)在某個(gè)目錄中)存儲(chǔ)在某個(gè)目錄中用法用法(以上面建立的以上面建立的ha.zz.zzdx包為例):包為例):jar cf myp.jar ha/ (生成打包文件(生成打包文件myp.jar)可將可將myp.jar放在任意目錄下,

15、并添加到放在任意目錄下,并添加到classpath中中在應(yīng)用程序中導(dǎo)入在應(yīng)用程序中導(dǎo)入ha.zz.zzdx包,即可使用其中的類包,即可使用其中的類 42 接口接口接口是方法定義和常量值的集合接口是方法定義和常量值的集合接口只含常量和方法的定義,不含變量接口只含常量和方法的定義,不含變量和方法的實(shí)現(xiàn)和方法的實(shí)現(xiàn)使用接口可以實(shí)現(xiàn)多重繼承使用接口可以實(shí)現(xiàn)多重繼承42 接口接口4.2.1 接口的聲明接口的聲明 修飾符修飾符 interface interface 接口名接口名 / /常量和方法聲明常量和方法聲明 JavaJava編譯系統(tǒng)會(huì)自動(dòng)把聲明的變量當(dāng)做編譯系統(tǒng)會(huì)自動(dòng)把聲明的變量當(dāng)做public

16、static public static finalfinal類型的變量(即常量)來(lái)處理類型的變量(即常量)來(lái)處理 接口中的變量必須初始化,且不能在實(shí)現(xiàn)類中被修改接口中的變量必須初始化,且不能在實(shí)現(xiàn)類中被修改接口中的方法默認(rèn)為接口中的方法默認(rèn)為public abstract public abstract 接口的修飾符只有訪問(wèn)控制修飾符,含義同類的訪問(wèn)接口的修飾符只有訪問(wèn)控制修飾符,含義同類的訪問(wèn)控制修飾符控制修飾符42 接口接口public interface Rangepublic interface Range int MIN=0; int MIN=0; int getMaxValue(

17、); int getMaxValue(); void setMaxValue(int maxValue); void setMaxValue(int maxValue); 可以不出現(xiàn)可以不出現(xiàn)省略了省略了public static final,加上也可以加上也可以省略了省略了public abstract,加上也可以加上也可以42 接口接口4.2.2 接口的繼承接口的繼承 和類相同,接口可以實(shí)現(xiàn)繼承,一個(gè)接口可以繼和類相同,接口可以實(shí)現(xiàn)繼承,一個(gè)接口可以繼承父接口的所有成員承父接口的所有成員 interface FirstInterfaceinterface FirstInterface vo

18、id ff1(); void ff1(); interface SecondInterface extends FirstInterfaceinterface SecondInterface extends FirstInterface void ff2(); void ff2(); 可以通過(guò)如下定義方式實(shí)現(xiàn)接口的多重繼承:可以通過(guò)如下定義方式實(shí)現(xiàn)接口的多重繼承:interface interface 接口名接口名 extends extends 接口名接口名1,1,接口名接口名2,2,接口名接口名3 3 42 接口接口4.2.3 4.2.3 接口的實(shí)現(xiàn)接口的實(shí)現(xiàn) 在類聲明時(shí),利用在類聲明時(shí),

19、利用implementsimplements子句來(lái)表示一個(gè)類使用子句來(lái)表示一個(gè)類使用了某個(gè)接口,也就是說(shuō)實(shí)現(xiàn)了某個(gè)接口了某個(gè)接口,也就是說(shuō)實(shí)現(xiàn)了某個(gè)接口一個(gè)類可以一個(gè)類可以implementsimplements多個(gè)接口,這些接口以逗號(hào)分多個(gè)接口,這些接口以逗號(hào)分隔。隔。在類中可以使用接口中定義的常量,但必須實(shí)現(xiàn)接口在類中可以使用接口中定義的常量,但必須實(shí)現(xiàn)接口中定義的所有方法中定義的所有方法 格式是:格式是:class class 類名類名 implements implements 接口名列表接口名列表 例:例: class MyClass implements Range class M

20、yClass implements Range interface computeArea int a=5; void set_size(double s1,double s2); double get_area();class Triangle implements computeArea double bottom,height; public void set_size(double size1,double size2) bottom=size1;height=size2; public double get_area() return(bottom*height/2); class

21、Rectangle implements computeArea double length,width; public void set_size(double size1,double size2) length=size1;width=size2; public double get_area() return(length*width); public class my public static void main(String args) Triangle tt=new Triangle(); Rectangle rr=new Rectangle(); tt.set_size(3,

22、4); System.out.println(三角形的面積是三角形的面積是:+tt.get_area(); rr.set_size(5,6); System.out.println(矩形的面積是矩形的面積是:+rr.get_area(); 必須加上必須加上publicabstract class Figure double x,y; void set_size(double s1,double s2) x=s1; y=s2; abstract double get_area();class Triangle extends Figure double get_area() return(x*y

23、/2); class Rectangle extends Figure double get_area() return (x*y); public class my public static void main(String args) Triangle tt=new Triangle(); Rectangle rr=new Rectangle(); tt.set_size(5,6); System.out.println(三角形的面積是三角形的面積是:+tt.get_area(); rr.set_size(7,8); System.out.println(矩形的面積是矩形的面積是:+rr

24、.get_area(); 42 接口接口接口總結(jié)接口總結(jié)從本質(zhì)上講,當(dāng)類實(shí)現(xiàn)一個(gè)接口的時(shí)候,就簽從本質(zhì)上講,當(dāng)類實(shí)現(xiàn)一個(gè)接口的時(shí)候,就簽定了一個(gè)契約。所有的類必須實(shí)現(xiàn)所有定義在定了一個(gè)契約。所有的類必須實(shí)現(xiàn)所有定義在接口以及它的父接口中的方法接口以及它的父接口中的方法類之間只能單繼承,但接口之間可以多重繼承類之間只能單繼承,但接口之間可以多重繼承一個(gè)類可以實(shí)現(xiàn)多個(gè)接口一個(gè)類可以實(shí)現(xiàn)多個(gè)接口由于接口中的方法都是抽象方法,所以創(chuàng)建的由于接口中的方法都是抽象方法,所以創(chuàng)建的類如果不是抽象類就一定要實(shí)現(xiàn)所有接口中的類如果不是抽象類就一定要實(shí)現(xiàn)所有接口中的所有方法(當(dāng)該類實(shí)現(xiàn)這些接口時(shí)),如果是所有方法

25、(當(dāng)該類實(shí)現(xiàn)這些接口時(shí)),如果是抽象類則可以不實(shí)現(xiàn)抽象類則可以不實(shí)現(xiàn)42 接口接口接口與抽象類的區(qū)別與聯(lián)系接口與抽象類的區(qū)別與聯(lián)系接口可以是一組沒(méi)有關(guān)系的類之間共有的屬性和行為。如接口可以是一組沒(méi)有關(guān)系的類之間共有的屬性和行為。如bird和和plane都能飛,可以設(shè)計(jì)一個(gè)接口都能飛,可以設(shè)計(jì)一個(gè)接口flyable ,里面定義,里面定義fly方法,方法,bird類和類和plane類都可以實(shí)現(xiàn)這一接口,并在各自的類中定義不類都可以實(shí)現(xiàn)這一接口,并在各自的類中定義不同的具體的同的具體的fly方法。方法。抽象類則表達(dá)了一組相關(guān)的類的共同屬性和行為。抽象類必須被抽象類則表達(dá)了一組相關(guān)的類的共同屬性和行為

26、。抽象類必須被繼承才有意義,而繼承同一抽象類的不同子類一般屬于相關(guān)的類。繼承才有意義,而繼承同一抽象類的不同子類一般屬于相關(guān)的類。 當(dāng)不能明確地區(qū)分多個(gè)類是否相關(guān)時(shí),既可以使用接口,也可以當(dāng)不能明確地區(qū)分多個(gè)類是否相關(guān)時(shí),既可以使用接口,也可以使用抽象類使用抽象類實(shí)際應(yīng)用中,接口和抽象類一概不用也可以。實(shí)際應(yīng)用中,接口和抽象類一概不用也可以。復(fù)習(xí)復(fù)習(xí) 說(shuō)明抽象方法、類、抽象類、接口說(shuō)明抽象方法、類、抽象類、接口4 4個(gè)概個(gè)概念之間的關(guān)系。念之間的關(guān)系。 抽象方法:只有聲明,沒(méi)有方法體的特殊方法抽象方法:只有聲明,沒(méi)有方法體的特殊方法類:由屬性和方法組成,其中方法不能是抽象方法類:由屬性和方法組

27、成,其中方法不能是抽象方法抽象類:由屬性和方法組成,其中至少有一個(gè)抽象方法抽象類:由屬性和方法組成,其中至少有一個(gè)抽象方法接口:由常量和抽象方法構(gòu)成接口:由常量和抽象方法構(gòu)成java.langjava.lang.Mathjava.lang.SystemJava.io.Filejavax.swingJava資源的層次結(jié)構(gòu)圖資源的層次結(jié)構(gòu)圖4.3 Java類庫(kù)類庫(kù) 4.3 Java類庫(kù)類庫(kù) 4.3.1 Java類庫(kù)結(jié)構(gòu)類庫(kù)結(jié)構(gòu) 1 1 java.langjava.lang包包 lJavaJava語(yǔ)言核心包,包括語(yǔ)言核心包,包括JavaJava語(yǔ)言基礎(chǔ)類,如語(yǔ)言基礎(chǔ)類,如基本數(shù)據(jù)類型、基本數(shù)值函數(shù)、

28、字符串處理、基本數(shù)據(jù)類型、基本數(shù)值函數(shù)、字符串處理、線程、異常處理等。線程、異常處理等。ljava.langjava.lang包中的類不需要用包中的類不需要用importimport語(yǔ)句引入,語(yǔ)句引入,也就是說(shuō),每個(gè)程序運(yùn)行時(shí),系統(tǒng)都會(huì)自動(dòng)也就是說(shuō),每個(gè)程序運(yùn)行時(shí),系統(tǒng)都會(huì)自動(dòng)引入引入java.langjava.lang包。包。 4.3 Java類庫(kù)類庫(kù) 2 java.io包包l包含了用于數(shù)據(jù)輸入輸出的類,主要用于支包含了用于數(shù)據(jù)輸入輸出的類,主要用于支持與設(shè)備有關(guān)的數(shù)據(jù)輸入輸出,即數(shù)據(jù)流輸持與設(shè)備有關(guān)的數(shù)據(jù)輸入輸出,即數(shù)據(jù)流輸入輸出、文件輸入輸出、緩沖區(qū)流以及其它入輸出、文件輸入輸出、緩沖區(qū)

29、流以及其它設(shè)備的輸入輸出。凡是需要完成與操作系統(tǒng)設(shè)備的輸入輸出。凡是需要完成與操作系統(tǒng)相關(guān)的較低層的操作,都應(yīng)該在程序的首部相關(guān)的較低層的操作,都應(yīng)該在程序的首部引入引入java.iojava.io包。包。4.3 Java類庫(kù)類庫(kù) 3 3java.appletjava.applet包包 它提供了創(chuàng)建用于瀏覽器的它提供了創(chuàng)建用于瀏覽器的AppletApplet小程序小程序所需要的類,第所需要的類,第7 7章詳細(xì)介紹章詳細(xì)介紹4.3 Java類庫(kù)類庫(kù) 4java.awt包包 java.awt java.awt包是包是awtawt(Abstract Window Abstract Window To

30、olkitToolkit)抽象窗口工具集,它提供了圖抽象窗口工具集,它提供了圖形用戶界面設(shè)計(jì)、傳輸操作、布局管理形用戶界面設(shè)計(jì)、傳輸操作、布局管理和用戶交互控制、事件響應(yīng)的類。和用戶交互控制、事件響應(yīng)的類。4.3 Java類庫(kù)類庫(kù) 包包ljavajava的網(wǎng)絡(luò)包,提供了對(duì)網(wǎng)絡(luò)應(yīng)用的支持,的網(wǎng)絡(luò)包,提供了對(duì)網(wǎng)絡(luò)應(yīng)用的支持,包括三種類型的類:用于訪問(wèn)包括三種類型的類:用于訪問(wèn)InternetInternet資源資源的類,如的類,如URLURL;調(diào)用;調(diào)用CGICGI通用網(wǎng)關(guān)接口的類通用網(wǎng)關(guān)接口的類;用于實(shí)現(xiàn)套接字接口用于實(shí)現(xiàn)套接字接口SocketSocket網(wǎng)絡(luò)應(yīng)用的類。網(wǎng)絡(luò)應(yīng)用的類。4.3 Ja

31、va類庫(kù)類庫(kù) 6 java.math包包ljavajava語(yǔ)言數(shù)學(xué)包,包括數(shù)學(xué)運(yùn)算類和小數(shù)運(yùn)語(yǔ)言數(shù)學(xué)包,包括數(shù)學(xué)運(yùn)算類和小數(shù)運(yùn)算類,提供完善的數(shù)學(xué)運(yùn)算方法和三角函數(shù),算類,提供完善的數(shù)學(xué)運(yùn)算方法和三角函數(shù),如數(shù)值運(yùn)算方法、求最大值最小值、數(shù)據(jù)比如數(shù)值運(yùn)算方法、求最大值最小值、數(shù)據(jù)比較、類型轉(zhuǎn)換等類較、類型轉(zhuǎn)換等類 4.3 Java類庫(kù)類庫(kù) 7. java.util包包ljavajava實(shí)用程序包,提供了提供了許多實(shí)用工實(shí)用程序包,提供了提供了許多實(shí)用工具,如日期時(shí)間類(具,如日期時(shí)間類(DateDate),),堆棧類堆棧類(StackStack),),哈希表類(哈希表類(HashHash),)

32、,向量類向量類(VectorVector),),隨機(jī)數(shù)類(隨機(jī)數(shù)類(randomrandom),系統(tǒng)屬),系統(tǒng)屬性類性類(Properties(Properties )。 4.3 Java類庫(kù)類庫(kù) 8。java.security包包ljavajava安全包,提供了網(wǎng)絡(luò)安全架構(gòu)所需的類安全包,提供了網(wǎng)絡(luò)安全架構(gòu)所需的類和接口,可以有效地管理和控制程序的安全和接口,可以有效地管理和控制程序的安全性性,如給程序進(jìn)行數(shù)字加密、簽名等。,如給程序進(jìn)行數(shù)字加密、簽名等。4.3 Java類庫(kù)類庫(kù) 9 java.SQL包包ljavajava數(shù)據(jù)庫(kù)包,提供了數(shù)據(jù)庫(kù)包,提供了JavaJava語(yǔ)言訪問(wèn)處理數(shù)語(yǔ)言訪問(wèn)

33、處理數(shù)據(jù)庫(kù)的接口和類,它是實(shí)現(xiàn)據(jù)庫(kù)的接口和類,它是實(shí)現(xiàn)JDBCJDBC(Java Java Database ConnectDatabase Connect)的核心類庫(kù))的核心類庫(kù)。4.3 Java類庫(kù)類庫(kù) 10 java.rmi包包ljavajava遠(yuǎn)程方法調(diào)用包,遠(yuǎn)程方法調(diào)用包,java.rmijava.rmi包提供了實(shí)包提供了實(shí)現(xiàn) 遠(yuǎn) 程 方 法 調(diào) 用 (現(xiàn) 遠(yuǎn) 程 方 法 調(diào) 用 ( r e m o t e m e t h o d r e m o t e m e t h o d invocationinvocation)所需的類,用戶遠(yuǎn)程方法調(diào)用所需的類,用戶遠(yuǎn)程方法調(diào)用是指用戶程序

34、基于是指用戶程序基于JVMJVM在遠(yuǎn)程計(jì)算機(jī)上創(chuàng)建在遠(yuǎn)程計(jì)算機(jī)上創(chuàng)建對(duì)象,并在本地計(jì)算機(jī)上使用這個(gè)對(duì)象對(duì)象,并在本地計(jì)算機(jī)上使用這個(gè)對(duì)象 4.3 Java類庫(kù)類庫(kù) 11 java.text包包ljavajava文本包,提供了一種獨(dú)立于自然語(yǔ)言的文本包,提供了一種獨(dú)立于自然語(yǔ)言的方式處理文本、日期、數(shù)字、消息的類和接方式處理文本、日期、數(shù)字、消息的類和接口,實(shí)現(xiàn)日期、數(shù)字、消息的格式化、字符口,實(shí)現(xiàn)日期、數(shù)字、消息的格式化、字符串搜索排序的功能串搜索排序的功能. .4.3 Java類庫(kù)類庫(kù) 12 java.beansjava.beans包包l提供了一系列與提供了一系列與JavaBeanJavaB

35、ean開(kāi)發(fā)有關(guān)的類開(kāi)發(fā)有關(guān)的類 4.3 Java類庫(kù)類庫(kù) 4.3.2 java.lang包介紹包介紹1 1、Object類類lObject類是所有類是所有Java類的祖先,它處于類的祖先,它處于Java開(kāi)發(fā)環(huán)開(kāi)發(fā)環(huán)境的類層次樹(shù)的根部,所有其他類都是境的類層次樹(shù)的根部,所有其他類都是Object類直類直接或間接派生出來(lái)的。接或間接派生出來(lái)的。l如果一個(gè)類在定義時(shí)沒(méi)有包含如果一個(gè)類在定義時(shí)沒(méi)有包含extends關(guān)鍵字,編譯關(guān)鍵字,編譯器會(huì)將其建為器會(huì)將其建為Object類的直接子類。類的直接子類。lObject類定義了所有對(duì)象的最基本的一些狀態(tài)和行類定義了所有對(duì)象的最基本的一些狀態(tài)和行為,它提供的

36、方法會(huì)被為,它提供的方法會(huì)被Java中的每個(gè)類所繼承。中的每個(gè)類所繼承。 方法說(shuō)明protected Object clone()生成并返回當(dāng)前對(duì)象的一個(gè)拷貝public boolean equals(Object obj)比較兩個(gè)對(duì)象的值是否相等,結(jié)果為布爾型(與=不同)public final Class getClass()返回一個(gè)對(duì)象在運(yùn)行時(shí)所對(duì)應(yīng)的類的表示,從而可以得到相關(guān)的類的信息protected void finalize() 啟動(dòng)垃圾回收器回收當(dāng)前對(duì)象public String toString()返回描述當(dāng)前對(duì)象的字符串信息Object類的常用方法4.3 Java類庫(kù)類庫(kù)

37、4.3.2 java.lang包介紹包介紹import java.awt.Rectangle;import java.awt.Rectangle;class myclass my public static void main(String args) public static void main(String args) Integer a=new Integer(1); Integer a=new Integer(1); Integer b=new Integer(1); Integer b=new Integer(1); Rectangle c=new Rectangle(20,5);

38、 Rectangle c=new Rectangle(20,5); System.out.println( System.out.println(a.equals(ba.equals(b);); System.out.println( System.out.println(對(duì)象的類是對(duì)象的類是+a.getClassa.getClass();(); System.out.println( System.out.println(c.toStringc.toString();(); Object類的方法的例子類的方法的例子4.3 Java類庫(kù)類庫(kù) 4.3.2 java.lang包介紹包介紹true對(duì)

39、象的類是對(duì)象的類是class java.lang.Integerjava.awt.Rectanglex=0,y=0,width=20,height=5運(yùn)行結(jié)果為:運(yùn)行結(jié)果為:4.3 Java類庫(kù)類庫(kù) 2、數(shù)據(jù)類型類(包裝類)、數(shù)據(jù)類型類(包裝類)第第2章介紹的基本數(shù)據(jù)類型如章介紹的基本數(shù)據(jù)類型如int、float、char、boolean等只能用來(lái)定義變量,不能等只能用來(lái)定義變量,不能派生子類,本身也不具備任何操作。派生子類,本身也不具備任何操作。為確保為確保java語(yǔ)言的純面向?qū)ο筇匦裕Z(yǔ)言的純面向?qū)ο筇匦?,java.lang包為基本數(shù)據(jù)類型提供了一些對(duì)包為基本數(shù)據(jù)類型提供了一些對(duì)象封裝。數(shù)

40、據(jù)類型包裝類用于封裝基本數(shù)據(jù)象封裝。數(shù)據(jù)類型包裝類用于封裝基本數(shù)據(jù)類型的有關(guān)信息和操作。類型的有關(guān)信息和操作。數(shù)據(jù)類型包裝類是由多個(gè)類組成的一個(gè)集合,數(shù)據(jù)類型包裝類是由多個(gè)類組成的一個(gè)集合,每種基本數(shù)據(jù)類型均存在相應(yīng)的對(duì)象封裝類。每種基本數(shù)據(jù)類型均存在相應(yīng)的對(duì)象封裝類。4.3 Java類庫(kù)類庫(kù) 4.3.2 java.lang包介紹包介紹java的數(shù)據(jù)類型類及其對(duì)應(yīng)的基本數(shù)據(jù)類型的數(shù)據(jù)類型類及其對(duì)應(yīng)的基本數(shù)據(jù)類型基本數(shù)據(jù)類型基本數(shù)據(jù)類型數(shù)據(jù)類型類數(shù)據(jù)類型類 byteByte shortShort int Integer long Long float Float doubleDouble cha

41、rCharacter booleanBoolean4.3 Java類庫(kù)類庫(kù) 每個(gè)類型包裝類都提供了一些方法和屬性,用每個(gè)類型包裝類都提供了一些方法和屬性,用來(lái)操作和處理它所對(duì)應(yīng)的基本數(shù)據(jù)類型量。來(lái)操作和處理它所對(duì)應(yīng)的基本數(shù)據(jù)類型量。數(shù)據(jù)類型包裝類都是最終類。數(shù)據(jù)類型包裝類都是最終類。各類型包裝類有一些共同的方法,另外,他們各類型包裝類有一些共同的方法,另外,他們還實(shí)現(xiàn)了一些自己的方法。還實(shí)現(xiàn)了一些自己的方法。4.3 Java類庫(kù)類庫(kù) 4.3.2 java.lang包介紹包介紹數(shù)據(jù)類型類中的一些常用方法:數(shù)據(jù)類型類中的一些常用方法:public static String toString(in

42、t i) 把整型對(duì)象變?yōu)樽址颜蛯?duì)象變?yōu)樽址畃ublic static int parseInt(String s) 把字符串對(duì)象解析為整數(shù)把字符串對(duì)象解析為整數(shù)public static Integer valueOf(String s)把字符串轉(zhuǎn)換為把字符串轉(zhuǎn)換為Integer型對(duì)象型對(duì)象public int intValue() 返回對(duì)象相應(yīng)的整數(shù)值返回對(duì)象相應(yīng)的整數(shù)值4.3 Java類庫(kù)類庫(kù) public class Exam public static void main(String args) Integer a=new Integer(1); Boolean b=new

43、Boolean(true); Float f=new Float(-2.4); Double d=new Double(1.4); Character ch=new Character(A); Character ch2=new Character(A); int i=Value(); char c=ch.charValue(); System.out.println(i); System.out.println(b.booleanValue(); System.out.println(f.floatValue(); System.out.println(d.doubleValue(

44、); System.out.println(c); System.out.println(ch.equals(ch2); System.out.println(d.toString();數(shù)據(jù)類型類的例子1true-2.41.4Atrue1.4上例的運(yùn)行結(jié)果為:上例的運(yùn)行結(jié)果為:4.3 Java類庫(kù)類庫(kù) 類變量類變量說(shuō)明說(shuō)明public static final int MAX_VALUE規(guī)定了規(guī)定了int類型的最大值類型的最大值public static final int MIN_VALUE規(guī)定了規(guī)定了int類型的最小值類型的最小值方法方法說(shuō)明說(shuō)明public static int pars

45、eInt(String s)throws NumberFormatException將字符串將字符串s轉(zhuǎn)為帶符號(hào)十進(jìn)制數(shù),結(jié)果為轉(zhuǎn)為帶符號(hào)十進(jìn)制數(shù),結(jié)果為int量量public static Integer valueOf(String s) throws NumberFormatException將字符串將字符串s轉(zhuǎn)為一個(gè)轉(zhuǎn)為一個(gè)Integer對(duì)象,該對(duì)象對(duì)應(yīng)對(duì)象,該對(duì)象對(duì)應(yīng)的的int數(shù)值與字符串表示的數(shù)值一致數(shù)值與字符串表示的數(shù)值一致Integer類的常用類變量及其說(shuō)明類的常用類變量及其說(shuō)明Integer類的常用方法及其說(shuō)明類的常用方法及其說(shuō)明4.3 Java類庫(kù)類庫(kù) 4.3.2 java

46、.lang包介紹包介紹public class MyApp public static void main(String args) Integer a=new Integer(1); Integer a2=new Integer(1); int i=Value(); int i2=Integer.valueOf(111).intValue(); int i3=Integer.parseInt(888); System.out.println(i);System.out.println(i2); System.out.println(i3);System.out.println(a.

47、equals(a2); byte largestByte=Byte.MAX_VALUE; short largestShort=Short.MAX_VALUE; int largestInteger=Integer.MAX_VALUE; int smallestInteger=Integer.MIN_VALUE; long largestLong=Long.MAX_VALUE;Integer類的應(yīng)用示例類的應(yīng)用示例 float largestFloat=Float.MAX_VALUE; double largestDouble=Double.MAX_VALUE; System.out.prin

48、tln(the largest byte value is +largestByte); System.out.println(the largest short value is +largestShort); System.out.println(the largest Integer value is +largestInteger); System.out.println(the smallest integer value is +smallestInteger); System.out.println(the largest long value is +largestLong);

49、 System.out.println(the largest float value is +largestFloat); System.out.println(the largest Double value is +largestDouble); Integer類的應(yīng)用示例類的應(yīng)用示例1111888truethe largest byte value is 127the largest short value is 32767the largest Integer value is 2147483647the smallest integer value is -2147483648th

50、e largest long value is 9223372036854775807the largest float value is 3.4028235E38the largest Double value is 1.7976931348623157E308上例的運(yùn)行結(jié)果上例的運(yùn)行結(jié)果3、 系統(tǒng)類系統(tǒng)類System類是一個(gè)功能強(qiáng)大、及其有用的特殊的類,類是一個(gè)功能強(qiáng)大、及其有用的特殊的類,它提供了標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出,對(duì)系它提供了標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出,對(duì)系統(tǒng)信息的存取以及快速拷貝數(shù)組元素等機(jī)制。統(tǒng)信息的存取以及快速拷貝數(shù)組元素等機(jī)制。System類的繼承樹(shù)為:類的

51、繼承樹(shù)為: java.lang.Object java.lang.SystemSystem類由類由public final修飾,該類不能被實(shí)例化修飾,該類不能被實(shí)例化(即不能產(chǎn)生(即不能產(chǎn)生System類的對(duì)象)或派生子類。類的對(duì)象)或派生子類。System類中包含了許多有用的類變量和類方法類中包含了許多有用的類變量和類方法(由由static修飾修飾)。4.3 Java類庫(kù)類庫(kù) 4.3.2 java.lang包介紹包介紹使用使用System類變量的語(yǔ)法格式為:類變量的語(yǔ)法格式為: 類名類名.變量名變量名使用使用System類變量的語(yǔ)法格式為:類變量的語(yǔ)法格式為: 類名類名.方法名方法名另外,另

52、外,System類還包含一系列的系統(tǒng)屬性,系類還包含一系列的系統(tǒng)屬性,系統(tǒng)一經(jīng)啟動(dòng),系統(tǒng)的屬性值就已被初始化??赏ńy(tǒng)一經(jīng)啟動(dòng),系統(tǒng)的屬性值就已被初始化。可通過(guò)過(guò)getProperty(String key)方法和方法和setProperty(String key)方法來(lái)獲得和設(shè)置系方法來(lái)獲得和設(shè)置系統(tǒng)的屬性值。統(tǒng)的屬性值。4.3 Java類庫(kù)類庫(kù) System類的變量(屬性)及其說(shuō)明類的變量(屬性)及其說(shuō)明類變量(類屬性)類變量(類屬性)說(shuō)明說(shuō)明 public static final PrintStream err標(biāo)準(zhǔn)錯(cuò)誤輸出流標(biāo)準(zhǔn)錯(cuò)誤輸出流 public static final Inpu

53、tStream in標(biāo)準(zhǔn)輸入流標(biāo)準(zhǔn)輸入流 public static final PrintStream out標(biāo)準(zhǔn)輸出流標(biāo)準(zhǔn)輸出流4.3 Java類庫(kù)類庫(kù) Java的標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出分的標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出分別保存在別保存在in、out和和err變量中。變量中。 同時(shí),同時(shí),System.in是標(biāo)準(zhǔn)輸入流,它是是標(biāo)準(zhǔn)輸入流,它是java.io包中包中InputStream類的一個(gè)對(duì)象,其類的一個(gè)對(duì)象,其read()方方法允許通過(guò)鍵盤輸入字符。法允許通過(guò)鍵盤輸入字符。 System.out是標(biāo)準(zhǔn)輸出流,它也是是標(biāo)準(zhǔn)輸出流,它也是java.io包包中中PrintStr

54、eam類的一個(gè)對(duì)象,其類的一個(gè)對(duì)象,其println()方方法用于再屏幕上顯示信息。法用于再屏幕上顯示信息。 System.err是標(biāo)準(zhǔn)錯(cuò)誤輸出流,其是標(biāo)準(zhǔn)錯(cuò)誤輸出流,其println()方法用于在屏幕上顯示錯(cuò)誤信息。方法用于在屏幕上顯示錯(cuò)誤信息。4.3 Java類庫(kù)類庫(kù) 常用格式:常用格式:int i=System.in.read();System.out.print(“dkdk”);System.out.println(“dkdk”);System.err.println(“wrong”);4.3 Java類庫(kù)類庫(kù) 5.2 語(yǔ)言包public class MyApp public stat

55、ic void main(String args) throws Exception char c; System.out.println(請(qǐng)輸入一個(gè)字符:); /c=(char)System.in.read(); c=a; System.out.println(你輸入了:+c);System.out.println(System.currentTimeMillis()=+System.currentTimeMillis(); System.out.println(java.version=+System.getProperty(java.version); System.out.printl

56、n(java.home=+System.getProperty(java.home);System.out.println(=+System.getProperty();System.out.println(java.class.path=+System.getProperty(java.class.path); System.out.println(user.home=+System.getProperty(user.home); System.out.println(user.dir=+System.getProperty(user.dir)

57、; System.out.println(=+System.getProperty(); System類的例子類的例子 System.out.println(=+System.getProperty(); System.out.println(os.arch=+System.getProperty(os.arch); System.out.println(os.version=+System.getProperty(os.version); System.out.println(file.separator=+System.getProperty(file.separator);System.out.println(path.separator=+Sy

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論