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

下載本文檔

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

文檔簡介

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

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

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

4、該子目錄中,編譯源程序?qū)⒃闯绦蚍旁谠撟幽夸浿校幾g源程序后,生成的字節(jié)碼文件即在該包中。后,生成的字節(jié)碼文件即在該包中。4.1 包包 2包聲明示例包聲明示例package family;package family;class Parentsclass Parents class Sonclass Son class Daughterclass Daughter interface Workinterface Work 上述程序經(jīng)過編譯,就可以建立程序包上述程序經(jīng)過編譯,就可以建立程序包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 包 /引用上頁中建立的包中的類引用上頁中建立的包中的類import family.*;public class my public static void main(String args) Parents p=new Parents(); p.displayParentsName(); / Son s=new Son(); /出問題嗎?出問題嗎? / 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 包 /引用上頁中建立的包中的類引用上頁中建立的包中的類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(); /出問

9、題?出問題?/ 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(這個程序用于建立包的多層結(jié)構(gòu)這個程序用于建立包的多層結(jié)構(gòu)!); 4.1 包 l上例中的兩個類均位于包上例中的兩個類均位于包ha.zz.zzdx中,完整名稱為中,完整

10、名稱為ha.zz.zzdx.my和和ha.zz.zzdx.Testl同一包中的類相互訪問,不需指明包;如果從外部訪問包中的類,同一包中的類相互訪問,不需指明包;如果從外部訪問包中的類,則需使用完整的類名稱則需使用完整的類名稱l包的存放位置與包層次中對應(yīng)的目錄結(jié)構(gòu)一致包的存放位置與包層次中對應(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)前目錄開始逐級建立子目錄,將或者從當(dāng)前目錄開始逐級建立子目錄,將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語句的格式是:語句的格式是:import import 包名包名1.1.包名包名2.2.包名包名3 (3 (. .類名類名| |* *); ); 一個程序中可以導(dǎo)

12、入多個包,每個包都要用一一個程序中可以導(dǎo)入多個包,每個包都要用一條條importimport語句導(dǎo)入語句導(dǎo)入一個一個importimport語句只能引入一個包,且不能自動語句只能引入一個包,且不能自動引入下級包引入下級包一個程序中可以有多條一個程序中可以有多條importimport語句語句4.1 包 4.1.2 包的引用包的引用 package ha.zz.zzdx; /在上面生成的包中再添一個類在上面生成的包中再添一個類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一個程序中可導(dǎo)入多個包,每個一個程序中可導(dǎo)入多個包,每個import語句只語句只能導(dǎo)入一個包能導(dǎo)入一個包l包可以壓縮形式(包可以壓縮形式(.jar)存儲在某個目錄中)存儲在某個目錄中l(wèi)java.lang不需要導(dǎo)入,可直接使用其中的類不需要導(dǎo)入,可直接使用

14、其中的類l使用使用import導(dǎo)入某個包中的所有類(用導(dǎo)入某個包中的所有類(用*)時)時不會自動導(dǎo)入子包中的類,子包中的類需要另不會自動導(dǎo)入子包中的類,子包中的類需要另外用外用import導(dǎo)入:導(dǎo)入: import java.awt.*; import java.awt.event.*;4.1 包 4.1.2 包的引用包的引用 包可以壓縮形式(包可以壓縮形式(.jar)存儲在某個目錄中)存儲在某個目錄中用法用法(以上面建立的以上面建立的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 接口接口接口是方法定義和常量值的集合接口是方法定義和常量值的集合接口只含常量和方法的定義,不含變量接口只含常量和方法的定義,不含變量和方法的實現(xiàn)和方法的實現(xiàn)使用接口可以實現(xiàn)多重繼承使用接口可以實現(xiàn)多重繼承42 接口接口4.2.1 接口的聲明接口的聲明 修飾符修飾符 interface interface 接口名接口名 / /常量和方法聲明常量和方法聲明 JavaJava編譯系統(tǒng)會自動把聲明的變量當(dāng)做編譯系統(tǒng)會自動把聲明的變量當(dāng)做public

16、static public static finalfinal類型的變量(即常量)來處理類型的變量(即常量)來處理 接口中的變量必須初始化,且不能在實現(xiàn)類中被修改接口中的變量必須初始化,且不能在實現(xiàn)類中被修改接口中的方法默認(rèn)為接口中的方法默認(rèn)為public abstract public abstract 接口的修飾符只有訪問控制修飾符,含義同類的訪問接口的修飾符只有訪問控制修飾符,含義同類的訪問控制修飾符控制修飾符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 接口的繼承接口的繼承 和類相同,接口可以實現(xiàn)繼承,一個接口可以繼和類相同,接口可以實現(xiàn)繼承,一個接口可以繼承父接口的所有成員承父接口的所有成員 interface FirstInterfaceinterface FirstInterface vo

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

19、利用implementsimplements子句來表示一個類使用子句來表示一個類使用了某個接口,也就是說實現(xiàn)了某個接口了某個接口,也就是說實現(xiàn)了某個接口一個類可以一個類可以implementsimplements多個接口,這些接口以逗號分多個接口,這些接口以逗號分隔。隔。在類中可以使用接口中定義的常量,但必須實現(xiàn)接口在類中可以使用接口中定義的常量,但必須實現(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)類實現(xiàn)一個接口的時候,就簽從本質(zhì)上講,當(dāng)類實現(xiàn)一個接口的時候,就簽定了一個契約。所有的類必須實現(xiàn)所有定義在定了一個契約。所有的類必須實現(xiàn)所有定義在接口以及它的父接口中的方法接口以及它的父接口中的方法類之間只能單繼承,但接口之間可以多重繼承類之間只能單繼承,但接口之間可以多重繼承一個類可以實現(xiàn)多個接口一個類可以實現(xiàn)多個接口由于接口中的方法都是抽象方法,所以創(chuàng)建的由于接口中的方法都是抽象方法,所以創(chuàng)建的類如果不是抽象類就一定要實現(xiàn)所有接口中的類如果不是抽象類就一定要實現(xiàn)所有接口中的所有方法(當(dāng)該類實現(xiàn)這些接口時),如果是所有方法

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

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

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

28、字符串處理、基本數(shù)據(jù)類型、基本數(shù)值函數(shù)、字符串處理、線程、異常處理等。線程、異常處理等。ljava.langjava.lang包中的類不需要用包中的類不需要用importimport語句引入,語句引入,也就是說,每個程序運行時,系統(tǒng)都會自動也就是說,每個程序運行時,系統(tǒng)都會自動引入引入java.langjava.lang包。包。 4.3 Java類庫類庫 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類庫類庫 3 3java.appletjava.applet包包 它提供了創(chuàng)建用于瀏覽器的它提供了創(chuàng)建用于瀏覽器的AppletApplet小程序小程序所需要的類,第所需要的類,第7 7章詳細(xì)介紹章詳細(xì)介紹4.3 Java類庫類庫 4java.awt包包 java.awt java.awt包是包是awtawt(Abstract Window Abstract Window To

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

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

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

33、處理數(shù)據(jù)庫的接口和類,它是實現(xiàn)據(jù)庫的接口和類,它是實現(xiàn)JDBCJDBC(Java Java Database ConnectDatabase Connect)的核心類庫)的核心類庫。4.3 Java類庫類庫 10 java.rmi包包ljavajava遠(yuǎn)程方法調(diào)用包,遠(yuǎn)程方法調(diào)用包,java.rmijava.rmi包提供了實包提供了實現(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)程計算機上創(chuàng)建在遠(yuǎn)程計算機上創(chuàng)建對象,并在本地計算機上使用這個對象對象,并在本地計算機上使用這個對象 4.3 Java類庫類庫 11 java.text包包ljavajava文本包,提供了一種獨立于自然語言的文本包,提供了一種獨立于自然語言的方式處理文本、日期、數(shù)字、消息的類和接方式處理文本、日期、數(shù)字、消息的類和接口,實現(xiàn)日期、數(shù)字、消息的格式化、字符口,實現(xiàn)日期、數(shù)字、消息的格式化、字符串搜索排序的功能串搜索排序的功能. .4.3 Java類庫類庫 12 java.beansjava.beans包包l提供了一系列與提供了一系列與JavaBeanJavaB

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

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

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(對象的類是對象的類是+a.getClassa.getClass();(); System.out.println( System.out.println(c.toStringc.toString();(); Object類的方法的例子類的方法的例子4.3 Java類庫類庫 4.3.2 java.lang包介紹包介紹true對

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

40、據(jù)類型包裝類用于封裝基本數(shù)據(jù)象封裝。數(shù)據(jù)類型包裝類用于封裝基本數(shù)據(jù)類型的有關(guān)信息和操作。類型的有關(guān)信息和操作。數(shù)據(jù)類型包裝類是由多個類組成的一個集合,數(shù)據(jù)類型包裝類是由多個類組成的一個集合,每種基本數(shù)據(jù)類型均存在相應(yīng)的對象封裝類。每種基本數(shù)據(jù)類型均存在相應(yīng)的對象封裝類。4.3 Java類庫類庫 4.3.2 java.lang包介紹包介紹java的數(shù)據(jù)類型類及其對應(yīng)的基本數(shù)據(jù)類型的數(shù)據(jù)類型類及其對應(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類庫類庫 每個類型包裝類都提供了一些方法和屬性,用每個類型包裝類都提供了一些方法和屬性,用來操作和處理它所對應(yīng)的基本數(shù)據(jù)類型量。來操作和處理它所對應(yīng)的基本數(shù)據(jù)類型量。數(shù)據(jù)類型包裝類都是最終類。數(shù)據(jù)類型包裝類都是最終類。各類型包裝類有一些共同的方法,另外,他們各類型包裝類有一些共同的方法,另外,他們還實現(xiàn)了一些自己的方法。還實現(xiàn)了一些自己的方法。4.3 Java類庫類庫 4.3.2 java.lang包介紹包介紹數(shù)據(jù)類型類中的一些常用方法:數(shù)據(jù)類型類中的一些常用方法:public static String toString(in

42、t i) 把整型對象變?yōu)樽址颜蛯ο笞優(yōu)樽址畃ublic static int parseInt(String s) 把字符串對象解析為整數(shù)把字符串對象解析為整數(shù)public static Integer valueOf(String s)把字符串轉(zhuǎn)換為把字符串轉(zhuǎn)換為Integer型對象型對象public int intValue() 返回對象相應(yīng)的整數(shù)值返回對象相應(yīng)的整數(shù)值4.3 Java類庫類庫 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上例的運行結(jié)果為:上例的運行結(jié)果為:4.3 Java類庫類庫 類變量類變量說明說明public static final int MAX_VALUE規(guī)定了規(guī)定了int類型的最大值類型的最大值public static final int MIN_VALUE規(guī)定了規(guī)定了int類型的最小值類型的最小值方法方法說明說明public static int pars

45、eInt(String s)throws NumberFormatException將字符串將字符串s轉(zhuǎn)為帶符號十進制數(shù),結(jié)果為轉(zhuǎn)為帶符號十進制數(shù),結(jié)果為int量量public static Integer valueOf(String s) throws NumberFormatException將字符串將字符串s轉(zhuǎn)為一個轉(zhuǎn)為一個Integer對象,該對象對應(yīng)對象,該對象對應(yīng)的的int數(shù)值與字符串表示的數(shù)值一致數(shù)值與字符串表示的數(shù)值一致Integer類的常用類變量及其說明類的常用類變量及其說明Integer類的常用方法及其說明類的常用方法及其說明4.3 Java類庫類庫 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上例的運行結(jié)果上例的運行結(jié)果3、 系統(tǒng)類系統(tǒng)類System類是一個功能強大、及其有用的特殊的類,類是一個功能強大、及其有用的特殊的類,它提供了標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤輸出,對系它提供了標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤輸出,對系統(tǒng)信息的存取以及快速拷貝數(shù)組元素等機制。統(tǒng)信息的存取以及快速拷貝數(shù)組元素等機制。System類的繼承樹為:類的

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

52、外,System類還包含一系列的系統(tǒng)屬性,系類還包含一系列的系統(tǒng)屬性,系統(tǒng)一經(jīng)啟動,系統(tǒng)的屬性值就已被初始化??赏ńy(tǒng)一經(jīng)啟動,系統(tǒng)的屬性值就已被初始化。可通過過getProperty(String key)方法和方法和setProperty(String key)方法來獲得和設(shè)置系方法來獲得和設(shè)置系統(tǒng)的屬性值。統(tǒng)的屬性值。4.3 Java類庫類庫 System類的變量(屬性)及其說明類的變量(屬性)及其說明類變量(類屬性)類變量(類屬性)說明說明 public static final PrintStream err標(biāo)準(zhǔn)錯誤輸出流標(biāo)準(zhǔn)錯誤輸出流 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類庫類庫 Java的標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤輸出分的標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤輸出分別保存在別保存在in、out和和err變量中。變量中。 同時,同時,System.in是標(biāo)準(zhǔn)輸入流,它是是標(biāo)準(zhǔn)輸入流,它是java.io包中包中InputStream類的一個對象,其類的一個對象,其read()方方法允許通過鍵盤輸入字符。法允許通過鍵盤輸入字符。 System.out是標(biāo)準(zhǔn)輸出流,它也是是標(biāo)準(zhǔn)輸出流,它也是java.io包包中中PrintStr

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

55、ic void main(String args) throws Exception char c; System.out.println(請輸入一個字符:); /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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論