第4章Java語言的面向?qū)ο蠡A_第1頁
第4章Java語言的面向?qū)ο蠡A_第2頁
第4章Java語言的面向?qū)ο蠡A_第3頁
第4章Java語言的面向?qū)ο蠡A_第4頁
第4章Java語言的面向?qū)ο蠡A_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第4章章 Java面向語言對象基面向語言對象基礎礎蘭州理工大學計算機與通信學院蘭州理工大學計算機與通信學院本本章章主要內(nèi)容主要內(nèi)容vJavaJava的類與對象的類與對象vJavaJava的的繼承與子類繼承與子類vJavaJava的抽象方法的抽象方法vJavaJava的抽象類的抽象類vJavaJava的內(nèi)部類的內(nèi)部類vJavaJava的接口的接口vJavaJava的包的包vJavaJava的修飾符的修飾符4.1 Java的類與對象的類與對象 類是用來創(chuàng)建對象的模板,它包含被創(chuàng)建對象類是用來創(chuàng)建對象的模板,它包含被創(chuàng)建對象的屬性和方法的定義。因此,要學習的屬性和方法的定義。因此,要學習JavaJ

2、ava編程就必須編程就必須學會怎樣去編寫類,即怎樣用學會怎樣去編寫類,即怎樣用JavaJava的語法去描述一類的語法去描述一類事物共有的屬性和行為。對象的屬性通過變量來描事物共有的屬性和行為。對象的屬性通過變量來描述,而對象的行為通過方法來實現(xiàn)。方法可以操作屬述,而對象的行為通過方法來實現(xiàn)。方法可以操作屬性形成一定的算法來實現(xiàn)一個具體的功能。類把屬性性形成一定的算法來實現(xiàn)一個具體的功能。類把屬性和方法封裝成一個整體。和方法封裝成一個整體。4.1.1 Java語言中類的聲明語言中類的聲明在Java語言中,類是基本的構(gòu)成要素,所有的對象都是由類創(chuàng)建的。一個Java類主要包括以下兩部分:類的聲明類的

3、主體在類聲明中,需要定義類的名稱、對該類的訪問權限、該類與其他類的關系等。類聲明的格式如下:修飾符 class extends 父類名 implements 接口列表 /類的主體成員變量的定義;成員方法的定義;4.1.1 Java語言中類的聲明語言中類的聲明修飾符 用于指定類的訪問權限,可選值一般為public、abstract和final。 用于指定類的名稱,類名必須是合法的Java標識符。extends 父類名用于指定要繼承的父類。implements 接口列表 用于指定該類實現(xiàn)的所有接口。類聲明部分大括號中的內(nèi)容為類體。類體主要由以下兩部分構(gòu)成:(1)成員變量的聲明;(2)成員方法的聲明

4、。Java語言中,提供了四種(private、default、protected和public)不同的訪問控制修飾符,對類的成員施以一定的訪問權限限制,實現(xiàn)對類中成員在一定范圍內(nèi)的信息隱藏。訪問級別修飾符同類同包子類不同包公開publicYesYesYesYes保護protectedYesYesYesNo默認無修飾符YesYesNoNo私有privateYesNoNoN Java 語言還提供了其他一些修飾符,主要有語言還提供了其他一些修飾符,主要有abstract、final、synchronized和和static等。等。 abstract:可以修飾一個類或者方法。:可以修飾一個類或者方法。

5、 final:可以修飾非抽象類,非抽象方法和變:可以修飾非抽象類,非抽象方法和變量。量。 Synchronized:同步修飾符??梢杂脕硇揎棄K同步修飾符??梢杂脕硇揎棄K語句和成員方法。語句和成員方法。 static:用來修飾類的成員變量,成員方法和塊用來修飾類的成員變量,成員方法和塊語句。語句。4.1.1 Java語言中類的聲明語言中類的聲明例4-1,以下定義一個Person類,public class Personint age;String name;char sex;public void speek()System.out.println(Hello everyone!); publi

6、c void walk() System.out.println(This is the character of person!); 4.1.2 成員變量和局部變量成員變量和局部變量Java中所有的變量都必須封裝在類體中,它沒有全局變量,也就是不能在類的外面聲明任何變量。在方法的外面定義的變量稱為類成員變量,而在方法體中聲明的變量和方法的參數(shù)則稱為局部變量。聲明成員變量Java用成員變量來表示類的狀態(tài)和屬性,聲明成員變量的基本語法格式如下:修飾符 static final =變量初始值;4.1.2 成員變量和局部變量成員變量和局部變量例4-2,以下程序在類Person中定義了5個成員變量,p

7、ublic class Personprivate int age;/聲明私有變量ageprivate String name;/聲明私有變量nameprivate char sex;/聲明私有變量sexpublic final int EYE=2;/聲明公有的final變量EYEpublic static int counter=0;/聲明公有的static型變量counterpublic void speek()System.out.println(Hello everyone!);public void walk()System.out.println(Hello everyone!);

8、4.1.2 成員變量和局部變量成員變量和局部變量聲明局部變量聲明局部變量的基本語法格式同聲明成員變量類似,所不同的是不能使用權限修飾符和static關鍵字對局部變量進行修飾,但可以使用final關鍵字。其基本語法格式如下: final =初始化值;4.1.2 成員變量和局部變量成員變量和局部變量例4-3 局部變量的聲明和使用public class MyMathpublic int result;public void sum(int a,int b)int x;x=a+b;result=x;System.out.println(x=+x);4.1.2 成員變量和局部變量成員變量和局部變量變量

9、的作用域是指該變量在程序代碼中的作用區(qū)域,在該區(qū)域外不能直接訪問變量。有效范圍決定了變量的生命周期,變量的生命周期是指從聲明一個變量并分配內(nèi)存空間、使用變量,然后釋放該變量并清除所占用內(nèi)存空間的一個過程。進行變量聲明的位置,決定了變量的有效范圍,根據(jù)有效范圍的不同,可將變量分為以下兩種。成員變量:在類中聲明,整個類中有效。局部變量:方法的參數(shù)和在方法內(nèi)或方法內(nèi)的復合代碼塊( “”與“”之間的代碼)中聲明的變量。在復合代碼塊聲明的變量,只在當前復合代碼塊中有效;在復合代碼塊外聲明的變量從變量的聲明開始到整個方法結(jié)束內(nèi)都有效。4.1.2 成員變量和局部變量成員變量和局部變量例4-4 變量的作用域p

10、ublic class MyMathpublic int result;/成員變量,在整個類中有效public void sum1(int a,int b)/a,b為局部變量,在sum1整個方法內(nèi)有效int c;/為局部變量,在整個方法內(nèi)有效c=a+b;result=c;int y=10;/為局部變量,在塊內(nèi)有效if(cy)System.out.println(c=+c);System.out.println(y=+y)4.1.2 成員變量和局部變量成員變量和局部變量例4-4 變量的作用域(續(xù)) System.out.println(c=+c);System.out.println(y=+y)

11、;/錯誤行!y為塊局部變量,塊外調(diào)用失效public void sum2(int a,int b,int c)/a,b,c為局部變量,在sum2整個方法內(nèi)有效result=a+b+c;4.1.3 成員方法的聲明成員方法的聲明Java中類的行為由類的成員方法來實現(xiàn)。類的成員方法由方法聲明和方法體兩部分組成。其一般格式如下: 修飾符修飾符 ( ( 參數(shù)列表參數(shù)列表) ) 方法體 4.1.3 成員方法的聲明成員方法的聲明例4-5 在Java類中聲明成員方法 public class MyMathprivate int result;private static int counter;public

12、void MyMath()counter+;public void sum1(int a,int b) result=a+b; 4.1.3 成員方法的聲明成員方法的聲明例4-5 在Java類中聲明成員方法(續(xù))protected void sum2(int a,int b,int c)result=a+b+c;public int getResult()return result;public static int getCounter()return counter;private void tempMothd(int tmp,String st) 4.1.3 成員方法的聲明成員方法的聲明例

13、4-6 在方法外的數(shù)據(jù)運算操作和在方法內(nèi)定義方法public class MyMathprivate int result; static int counter;counter+;Public void tempMothd(int tmp,String st)int x=10;public int innerMothd() 4.1.4 方法的重載方法的重載Java語言允許在同一個類中定義多個同名的方法,把這種現(xiàn)象稱為方法的重載(overload),重載的方法必須具有不同的參數(shù)類型或者不同的參數(shù)個數(shù)。 P109 方法的重載4.1.4 方法的重載方法的重載JavaJava語言中關于方法重載的幾點

14、說明:語言中關于方法重載的幾點說明: 一個方法可以被多次重載。 一個類中可以有多個重載的方法。 重載的方法,其參數(shù)列表必須不同。包括參數(shù)個數(shù),參數(shù)的類型和順序的不同。 在方法重載時,方法返回值的類型不能作為區(qū)分方法重載的標志。 在執(zhí)行重載方法時,將根據(jù)調(diào)用參數(shù)的個數(shù)和類型區(qū)分具體執(zhí)行的是哪個方法。 重載的方法之間并不一定必須有聯(lián)系,但是為了提高程序的可讀性,一般只重載功能相似的方法。4.1.5構(gòu)造方法構(gòu)造方法構(gòu)造方法是一種特殊的方法,它的名字必須與它所在類的名字完全相同,并且沒有返回值,也不需要使用關鍵字void進行標識。其基本語法格式為: 修飾符修飾符 ( ( 參數(shù)列表參數(shù)列表) ) 方法體

15、 4.1.5構(gòu)造方法構(gòu)造方法例4-8 構(gòu)造方法的聲明 public class MyMathpublic MyMath()/聲明類MyMath的構(gòu)造方法System.out.println(Hello,welcome!);private int result;public void sum(int a,int b,int c)result=a+b+c;System.out.println(a+b+c=+result);4.1.5構(gòu)造方法構(gòu)造方法構(gòu)造方法用于創(chuàng)建對象,初始化對象空間,為對象中的所有成員變量進行初始化,構(gòu)造方法在創(chuàng)建對象時立即被調(diào)用。構(gòu)造方法的說明: (1)構(gòu)造方法可以有參數(shù)列表,

16、參數(shù)由new運算符創(chuàng)建對象時提供。 (2)如果程序員不提供構(gòu)造方法,Java會提供一個無參的構(gòu)造方法。 (3)如果程序員定義了構(gòu)造方法,Java不再提供默認的構(gòu)造方法。 (4)構(gòu)造方法可以有多個,即構(gòu)造方法的重載。 (5)重載的構(gòu)造方法可以通過this(參數(shù)列表 )來調(diào)用已有的構(gòu)造方法,其他方法和類對象都不能調(diào)用構(gòu)造方法。4.1.6 對象對象在Java語言程序設計中,可以把任何事物都看做對象,例如一個人、一個動物,或者沒有生命體的輪船、汽車、飛機,甚至概念性的抽象,例如一門課程。在實際對象程序設計中,對象可以看作是由一些數(shù)據(jù)和對這些數(shù)據(jù)操作的一組方法構(gòu)成。用變量表示對象的屬性,用方法表示對象的

17、行為。一個對象在Java語言中的生命周期包括3個階段,即 聲明和創(chuàng)建對象聲明和創(chuàng)建對象 使用對象使用對象 銷毀對象銷毀對象4.1.6 對象對象1.聲明和創(chuàng)建對象 類是對對象的抽象,對象是對類的具體實現(xiàn),當使用一個類創(chuàng)建了一個對象時,就說給出了這個類的一個實例,只有通過對象才可以訪問變量、調(diào)用方法(static變量、static方法除外)。Java定義任何變量都需要指定變量類型,因此,在創(chuàng)建對象之前,一定要先聲明該對象。聲明對象的一般格式如下:類名 對象名;4.1.6 對象對象在聲明對象時,只是在內(nèi)存中為對象建立了一個引用,并置初值為null,表示不指向任何內(nèi)存空間。聲明對象以后,需要為對象分配

18、內(nèi)存,這個過程也稱為實例化對象。在Java中使用關鍵字new來實例化對象,一般語法格式如下:對象名=new 構(gòu)造方法名(參數(shù)列表);以上聲明和創(chuàng)建對象的兩個過程,也可以簡化為以下一個過程: 類名 對象名=new 構(gòu)造方法名(參數(shù)列表);Person p1,p2;P1=new Person();P2=new Person(“zhang san”,22,f);或者:或者:Person p1=new Person();Person P2=new Person(“zhang san”,22,f);4.1.6 對象對象2.2.對象的使用對象的使用創(chuàng)建對象后,就可以訪問對象的成員變量,并改變成員變量的值了

19、,而且還可以調(diào)用對象的成員方法。通過使用點號運算符“.”實現(xiàn)對成員變量的訪問和成員方法的調(diào)用。語法格式為:對象.成員變量; 對象.成員方法( );3.1.6 對象對象3.3.對象的銷毀對象的銷毀在許多程序設計語言中,需要手動釋放對象所占用的內(nèi)存,但是,在Java中則不需要手動完成這項工作。Java提供的垃圾回收機制可以自動判斷對象是否還在使用,并能夠自動銷毀不再使用的對象,收回對象所占用的資源。Java提供了一個名為finalize()的方法,用于在對象被垃圾回收機制銷毀之前執(zhí)行一些資源回收工作,由垃圾回收系統(tǒng)調(diào)用,可以重寫該方法。但是垃圾回收系統(tǒng)的運行是不可預測的。finalize()方法沒

20、有任何參數(shù)和返回值,每個類有且只有一個finalize()方法。4.1.74.1.7關鍵詞關鍵詞 thisthis的用法的用法 每個方法內(nèi)都有一個隱含的指針,指向“調(diào)用該方法的當前對象”,稱為this指針。This指針只能在方法內(nèi)部使用。通俗地說就是,這個this指針是每一個方法內(nèi)置的,當對象調(diào)用某一個方法時,它的這個this指針就指向這個對象了。 this指針的用法: 1.代替對象,訪問對象的數(shù)據(jù); 2.作為返回值使用,當需要返回一個對象時,就可以在return語句里使用this。 3.調(diào)用構(gòu)造函數(shù)4.2 4.2 繼承與子類繼承與子類 繼承是面向?qū)ο蟪绦蛟O計的基礎,通過繼承可以在已有類的基礎

21、上創(chuàng)建新的類,新類不但可以擁有原有類的屬性和方法,同時也可以定義自身特有的屬性和方法。通過繼承從而實現(xiàn)了代碼的復用,提高程序的可維護性,加快軟件工程的開發(fā)周期。 通常把已有類稱為父類,而新創(chuàng)建的類稱為子類。在Java語言中,可以通過使用關鍵字extends來指明其繼承關系,如果一個類沒有明確的父類,則其父類默認父類為Object類。通過已有類創(chuàng)建新類時,新類可以擁有父類所有非私有的屬性和方法,把這個特性稱為類的繼承性。4.2.1 4.2.1 子類的創(chuàng)建子類的創(chuàng)建語法格式為: 修飾符修飾符 class class 子類名子類名 extends extends 父類名父類名 /變量聲明;/方法聲明

22、; 例例4-11 4-11 類的擴展類的擴展4.2.1 4.2.1 子類的創(chuàng)建子類的創(chuàng)建Java語言中子類繼承父類時必須遵循以下原則: 子類不能繼承被聲明為private的成員變量和成員方法。 沒有多重繼承機制,一個子類只能有一個直接父類。 如果子類聲明了一個與父類的成員變量同名的成員變量,則子類不能繼承父類的成員變量,此時稱子類的成員變量隱藏了父類的成員變量。 如果子類聲明了一個與父類的成員方法相同的成員方法,則子類不能繼承父類的成員方法,此時稱子類的成員方法重寫了父類的成員方法。 類的方法和屬性可以被繼承,但是類的構(gòu)造器不能被繼承。4.2.2 4.2.2 方法的重寫和變量隱藏方法的重寫和變

23、量隱藏Java語言允許在子類中定義與父類相同的成員變量和相同的成員方法。子類可以繼承父類的非私有成員變量和成員方法(不是以private關鍵字修飾的)。變量的隱藏就是指在子類中聲明的成員變量與父類的成員變量同名,父類的成員變量將在子類中被隱藏。方法的重寫(Overwrite)就是指在子類中聲明的成員方法與父類的成員方法同名,并且參數(shù)個數(shù)、類型和成員方法的返回類型完全相同,稱子類的成員方法重寫了父類的成員方法。在子類中要訪問父類中被子類隱藏的成員變量和重寫了的方法時,可以使用super關鍵字來實現(xiàn)調(diào)用?;靖袷綖椋簊uper.super.成員變量名;成員變量名;super.super.成員方法名

24、成員方法名(參數(shù)列表參數(shù)列表);另外,子類可以調(diào)用父類的構(gòu)造方法。但是必須在子類的構(gòu)造方法中使用super關鍵字來調(diào)用。其語法格式如下: super(super(參數(shù)列表參數(shù)列表););例4-12 super關鍵字的使用Java語言中變量隱藏和方法重寫的幾點說明: 隱藏了的變量和重寫了的方法只能通過super訪問。 一個方法在子類中只能重寫一次。 父類的靜態(tài)方法不能被子類重寫為非靜態(tài)方法。 重寫的方法必須有相同的方法名和參數(shù)列表和返回類型。 子類中重寫的方法不能使用比父類中被重寫方法更嚴格的訪問權限。比如public修飾的方法,在重寫不可以申明為默認型(default)或者protected和

25、private型。4.3 4.3 抽象方法抽象方法抽象方法就是指只有方法的聲明,沒有方法的實現(xiàn),或者說是沒有方法體的特殊方法。在程序設計時,有時只需聲明對象的功能,不指出其實現(xiàn)細節(jié)時,就可以使用抽象方法,其修飾符必須要有abstract關鍵詞?;靖袷綖椋?修飾符修飾符 abstract abstract 方法名方法名( (參數(shù)列表參數(shù)列表););4.3 4.3 抽象方法抽象方法注意:抽象方法不能使用private、final或static關鍵字進行修飾。以下代碼聲明了一個抽象方法:public abstract void speekLanguage( String st);注意:抽象方法和空

26、方法是兩個不同的概念。以下代碼聲明了一個空方法:public void speekLanguage(String st)4.4 4.4 抽象類抽象類抽象類是它的所有子類的公共屬性的集合,是包含一個或多個抽象方法的類。使用抽象類的一大優(yōu)點就是可以充分利用這些公共屬性來提高開發(fā)和維護程序的效率。抽象類定義的基本格式: 修飾符修飾符 abstract class abstract class 類名類名 成員變量聲明抽象方法的聲明非抽象方法的聲明 4.4 4.4 抽象類抽象類對于抽象類的幾點說明如下: 凡是用abstract 修飾符修飾的類被稱為抽象類。 抽象類中可以有零個或多個抽象方法,也可以包含非

27、抽象的方法。 抽象類可以沒有抽象方法,但是,有抽象方法的類必須是抽象類。 抽象類可以派生子類,子類中必須實現(xiàn)抽象類中定義的所有抽象方法,否則其子類也為抽象類。 抽象類不能創(chuàng)建對象,創(chuàng)建對象的工作由抽象類派生的子類來實現(xiàn)。 abstract不能與final并列修飾同一個類。4.5 4.5 內(nèi)部類內(nèi)部類內(nèi)部類(Inner Class)是指在其它類內(nèi)部嵌套定義的類,也就是說在一個類的內(nèi)部又定義了一個類。相對而言,包含內(nèi)部類的類稱為外部類。內(nèi)部類和一般類相同,同樣可以具有成員變量和成員方法。外部類使用內(nèi)部類的成員變量和成員方法時,必須創(chuàng)建內(nèi)部類的對象,通過內(nèi)部類的對象調(diào)用。內(nèi)部類的成員變量一般不聲明為

28、靜態(tài)(static)類型的,除非這個內(nèi)部類也被聲明為靜態(tài)(static)的。內(nèi)部類的分類內(nèi)部類的分類根據(jù)內(nèi)部類的特性,可以把內(nèi)部類分為以下4種形式:成員內(nèi)部類成員內(nèi)部類局部內(nèi)部類局部內(nèi)部類靜態(tài)內(nèi)部類靜態(tài)內(nèi)部類匿名內(nèi)部類匿名內(nèi)部類1.成員內(nèi)部類成員內(nèi)部類 成員內(nèi)部類就是在類的內(nèi)部,成員方法和塊之外定義的內(nèi)部類,屬于類的全局成員。 內(nèi)部類可以訪問外部類的私有成員,類似于成員變量,它可以使用訪問修飾符。 在外部類之外使用內(nèi)部類時,必須先構(gòu)造一個外部類對象,然后通過外部類對象的應用“.new”構(gòu)造內(nèi)部類對象。 2.匿名內(nèi)部類匿名內(nèi)部類 匿名內(nèi)部類,就是沒有類名的內(nèi)部類,是一個特殊局部內(nèi)部類,這個類一般

29、是用來繼承一個類或者實現(xiàn)一個接口的,而且我們只會創(chuàng)建這個內(nèi)部類的一個對象。構(gòu)造方法: new className() 匿名內(nèi)部類常用來創(chuàng)建接口的實現(xiàn),或者創(chuàng)建某個類的子類,并重寫父類的方法。4.6 Java4.6 Java的接口的接口4.6.1什么是接口什么是接口 Java中的接口是一系列方法的聲明,是一些方法特征的集合,一個接口只有方法的特征沒有方法的實現(xiàn),因此這些方法可以在不同的地方被不同的類實現(xiàn),而這些實現(xiàn)可以具有不同的行為(功能)。 接口的本質(zhì)不是用以替換多重繼承,而是更有效的組織不同類之間的共享機制和對象間的相互通信。接口以協(xié)議的形式建立了類之間的松散關系。體現(xiàn)了行為規(guī)范和行為實現(xiàn)的

30、分離實現(xiàn)松散耦合。使用接口強化了面向?qū)ο笾谐绦蛟O計中“自給自足”和“松散耦合”的設計原則。4.6.2 4.6.2 接口的聲明接口的聲明Java語言使用關鍵字interface來定義一個接口。接口定義與類的定義類似,也是分為接口的聲明的接口體,其中接口體由常量定義和方法定義兩部分組成。語法格式如下: 修飾符修飾符 interface interface 接口名接口名 extends extends 父接口名列表父接口名列表 public static final 常量; public abstract 方法; 3.6.2 3.6.2 接口的聲明接口的聲明public interface Anim

31、alAbleint legs=4;void eatFood(); 4.6.3 4.6.3 接口的實現(xiàn)接口的實現(xiàn)接口聲明中的方法全部是抽象的,這些方法由使用接口的類去實現(xiàn)。接口不能直接創(chuàng)建對象,要使用接口中的方法,必須通過相關的類來實現(xiàn)接口中的方法。在前講過,類的完全定義格式如下:修飾符 class extends 父類名 implements 接口列表 /類的主體成員變量的定義;成員方法的定義;4 4.6.3 .6.3 接口接口繼承繼承在Java程序中,接口可以看成是一種特殊的類,接口可以實現(xiàn)多重繼承。像類一樣,使用關鍵字extends生成子接口。與類不同的是,類只能有一個父類,而接口是可以有

32、多個父類,即接口可以實現(xiàn)多重繼承。4.7 4.7 抽象類與接口的區(qū)別抽象類與接口的區(qū)別 抽象類和接口是Java語言中對于抽象類定義進行支持的兩種機制,正是由于這兩種機制的存在,賦予了Java強大的面向?qū)ο竽芰?。其實,兩者之間還是有很大的區(qū)別的,對于它們的選擇甚至反映出對于問題領域本質(zhì)的理解、對于設計意圖的理解是否正確、合理。4.8 Java4.8 Java語言的包語言的包 包(package)是Java語言程序設計的重要特色之一,是若干相關的類、接口和(子)包的集合,這為管理大量的類和接口提供了方便,也保證了這些類和接口的使用安全。Java語言要求文件名和類名相同,所以如果將多個類放在一起時,

33、很可能出現(xiàn)文件名沖突的情況,Java提供了一種解決該問題的方法,那就是使用包將類進行分組,提高訪問速度。4.8.1 4.8.1 包的概念包的概念 包(package)是Java提供的一種區(qū)別類的命名空間的機制,是類的組織方式,是一組相關類、接口和(子)包的集合,它提供了訪問權限和命名的管理機制。Java語言中包的使用有以下幾個原因:(1)將功能相近的類放在同一個包中,可以方便查找與使用。(2)命名的方便,不同包中可以存在同名類,包在一定程度上可以避免命名沖突。(3)安全性,在Java中類的訪問權限可以以包為單位。4.8.2 4.8.2 創(chuàng)建包創(chuàng)建包Java語言不但提供了大量的系統(tǒng)包(后面介紹)

34、,同時也允許程序員創(chuàng)建自己的包。創(chuàng)建包可以通過在類或接口的源文件中使用package語句實現(xiàn)。4.8.3 4.8.3 聲明包聲明包用package語句在定義類/接口中的語法格式如下: package pkgname;/聲明包pkg類或者是接口的聲明;package語句用來聲明一個包,指明該源文件生成的類或者是接口屬于包pkg。包的名稱必須為合法的Java標識符。包的每個單詞用小寫。當包中還有子包時,可以使用“pkg1.pkg2.pkgn”進行指定,其中,pkg1為最外層的包,而pkgn則為最內(nèi)層的包。4 4. .8 8. .4 4 包的生成包的生成包的存在是以目錄(UNIX或者Linux中叫做路徑)的形式存放的,所以包名對應的是目錄或者路徑。在例4.24中,聲明了一個people包,所以必須有一個目錄來存放類Person。創(chuàng)建目錄有兩種方式。第一,手工建立目錄people,然后編譯類Person,將編譯后的class文件放在people目錄下。第二,使用javac -

溫馨提示

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

評論

0/150

提交評論