學(xué)習(xí)導(dǎo)讀 本章著重介紹Java編程中類和對象等非常重要的概念_第1頁
學(xué)習(xí)導(dǎo)讀 本章著重介紹Java編程中類和對象等非常重要的概念_第2頁
學(xué)習(xí)導(dǎo)讀 本章著重介紹Java編程中類和對象等非常重要的概念_第3頁
學(xué)習(xí)導(dǎo)讀 本章著重介紹Java編程中類和對象等非常重要的概念_第4頁
學(xué)習(xí)導(dǎo)讀 本章著重介紹Java編程中類和對象等非常重要的概念_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、v學(xué)習(xí)導(dǎo)讀學(xué)習(xí)導(dǎo)讀v 本章著重介紹本章著重介紹Java編程中類和對象等非常重要的編程中類和對象等非常重要的概念。概念。v Java程序是由一個個類定義組成的,編寫程序是由一個個類定義組成的,編寫Java程序的過程就是從現(xiàn)實世界中抽象出程序的過程就是從現(xiàn)實世界中抽象出Java可實現(xiàn)的可實現(xiàn)的類并用合適的語句定義它們的過程,這個定義過程類并用合適的語句定義它們的過程,這個定義過程包括對類內(nèi)各種屬性和方法的定義,創(chuàng)建類的對象,包括對類內(nèi)各種屬性和方法的定義,創(chuàng)建類的對象,也包括類間的各種關(guān)系和接口的定義。也包括類間的各種關(guān)系和接口的定義。v 方法是類的主要組成部分。在一個類中,程序方法是類的主要組成

2、部分。在一個類中,程序的作用體現(xiàn)在方法中。方法是的作用體現(xiàn)在方法中。方法是Java語言的基本構(gòu)件。語言的基本構(gòu)件。利用方法可以組成結(jié)構(gòu)良好的程序。本章介紹方法利用方法可以組成結(jié)構(gòu)良好的程序。本章介紹方法的構(gòu)成規(guī)則和設(shè)計、使用方法的基本要點。的構(gòu)成規(guī)則和設(shè)計、使用方法的基本要點。v Java的應(yīng)用程序接口(的應(yīng)用程序接口(API)大量的軟件包庫。大量的軟件包庫。第4章 類和對象第4章 類和對象v4.1.面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟮幕靖拍顅4.2 類類v4.3 方法方法v4.4 訪問控制符訪問控制符v4.5 靜態(tài)修飾符、靜態(tài)字段和方法靜態(tài)修飾符、靜態(tài)字段和方法v4.6 抽象類與抽象方法抽象類與抽

3、象方法v4.7 最終類、最終屬性、最終方法與終結(jié)器最終類、最終屬性、最終方法與終結(jié)器v本章小結(jié)本章小結(jié)v思考與練習(xí)思考與練習(xí) 4.1.面向?qū)ο蟮幕靖拍顚W(xué)習(xí)要點之二學(xué)習(xí)要點之二OOD方法提供了抽象數(shù)據(jù)類型機制,遵循軟件設(shè)計的三條重要原則,即抽象、信息隱藏和模塊化;雙重模塊化數(shù)據(jù)對數(shù)據(jù)的操作信息處理+封裝4.1.面向?qū)ο蟮幕靖拍顅4.1.1 抽象v1什么是抽象 抽象就是抽出事物的本質(zhì)特性而暫時不考慮它們的細(xì)節(jié)。過程抽象和數(shù)據(jù)抽象是常用的兩種主要抽象手段。 客觀世界的對象和操作 計算機算法 解空間 數(shù)據(jù) 程序員對問題的表達(dá)(抽象) 客觀世界的算法 結(jié)果 客觀世界的對象 程序設(shè)計的對象和操作 輸出

4、數(shù)據(jù) 問題空間 v2如何用面向?qū)ο蟮姆椒▽崿F(xiàn)抽象如何用面向?qū)ο蟮姆椒▽崿F(xiàn)抽象 一個抽象數(shù)據(jù)類型(Abstract Data Type,ADT)可以分解成4個部分,如圖4-2所示。語法和語義構(gòu)成抽象數(shù)據(jù)類型ADT的說明,讓使用者了解這個抽象數(shù)據(jù)類型的特征。屬性和方法構(gòu)成ADT的實現(xiàn),展示這個ADT是怎樣做成的。 抽象數(shù)據(jù)類型 說明 實現(xiàn) 語法 語義 屬性 方法 圖4-2 抽象數(shù)據(jù)類型 v4.1.2 封裝封裝 將信息隱蔽的過程稱為封裝。 有兩方面的原因促使我們控制對成員的訪問。 第一個原因是防止程序員接觸他們不該接觸的東西通常是內(nèi)部數(shù)據(jù)類型的設(shè)計思想。若只是為了解決特定的問題,用戶只需操作接口即可

5、,毋需明白這些信息。 第二個原因是允許庫設(shè)計人員修改內(nèi)部結(jié)構(gòu),不用擔(dān)心它會對客戶程序員造成什么影響。 v4.1.3 對象對象 可將對象想象對象(可將對象想象對象(objectobject)應(yīng)是應(yīng)是實際問題域中有意義的個體或概念實體。實際問題域中有意義的個體或概念實體。此外,對象應(yīng)該具有記憶自身狀態(tài)的能此外,對象應(yīng)該具有記憶自身狀態(tài)的能力。同時對象應(yīng)該以某種方式與系統(tǒng)發(fā)力。同時對象應(yīng)該以某種方式與系統(tǒng)發(fā)生關(guān)聯(lián),既對象應(yīng)該與系統(tǒng)中其他有意生關(guān)聯(lián),既對象應(yīng)該與系統(tǒng)中其他有意義的對象進(jìn)行消息傳遞,并提供外部服義的對象進(jìn)行消息傳遞,并提供外部服務(wù)。務(wù)。 v4.1.3 對象對象l(1) (1) 所有東西都

6、是對象??蓪ο笙胂蟪梢环N新型變所有東西都是對象??蓪ο笙胂蟪梢环N新型變量;它保存著數(shù)據(jù),但可要求它對自身進(jìn)行操作。量;它保存著數(shù)據(jù),但可要求它對自身進(jìn)行操作。 l(2) (2) 程序是一大堆對象的組合;通過消息傳遞,各對程序是一大堆對象的組合;通過消息傳遞,各對象知道自己該做些什么。象知道自己該做些什么。 l(3) (3) 每個對象都有自己的存儲空間,可容納其他對象。每個對象都有自己的存儲空間,可容納其他對象。l(4) (4) 每個對象都有一種類型。根據(jù)語法,每個對象都每個對象都有一種類型。根據(jù)語法,每個對象都是某個是某個“類類”的一個的一個“實例實例”。其中,。其中,“類類”(Class

7、Class)是是“類型類型”(TypeType)的同義詞。一個類最重要的特征就的同義詞。一個類最重要的特征就是是“能將什么消息發(fā)給它?能將什么消息發(fā)給它?”l(5 5)同一類所有對象都能接收相同的消息。)同一類所有對象都能接收相同的消息。 4.2 類 類是現(xiàn)實世界某些對象的共同特征類是現(xiàn)實世界某些對象的共同特征(屬性和操作屬性和操作)的的表示,對象是類的實例表示,對象是類的實例。類的屬性類的屬性:就是類的靜態(tài)屬性的簡稱,指類內(nèi)包就是類的靜態(tài)屬性的簡稱,指類內(nèi)包含的各項數(shù)據(jù),如變量或其他類的對象;含的各項數(shù)據(jù),如變量或其他類的對象;類的服務(wù)類的服務(wù): 則被稱為成員函數(shù)或方法。則被稱為成員函數(shù)或方

8、法。4.2 類 類的基本定義方法如下:修飾符修飾符 class 類名類名 extends 父類父類 implements 接口名接口名 類成員變量聲明類成員變量聲明 類方法聲明類方法聲明 類的修飾符用來說明類的特殊性質(zhì)。 分為三種:訪問控制符:public 公共類公共類抽象類說明符:abstract最終類說明符:f inal 接口名跟在implements關(guān)鍵字后面,用來說明當(dāng)前類中實現(xiàn)了哪個接口定義的功能和方法。 接口是Java語言用來實現(xiàn)多重繼承的一種特殊機制,我們將在后面詳細(xì)介紹它的使用方法。v1關(guān)于類頭關(guān)于類頭-class class關(guān)鍵字,在它的后面,應(yīng)跟隨新數(shù)據(jù)類型的名稱。(注意不

9、要把class寫成Class)。 父類名跟在extends 關(guān)鍵字后面,用來說明當(dāng)前類是哪個已經(jīng)存在類的子類,存在繼承關(guān)系。繼承是類與類之間的一種非常重要的關(guān)系。v1關(guān)于類頭關(guān)于類頭-類的修飾符類的修飾符“public”(公共)公共) 意味著后續(xù)的定義任何人均可使用?!皃rivate”(私有)私有)意味著除您自己、類型的創(chuàng)建者以及那個類型的內(nèi)部函數(shù)成員,其他任何人都不能訪問后續(xù)的定義信息?!皃rotected”(受保護(hù)的)受保護(hù)的)與“private”相似,只是一個繼承的類可訪問受保護(hù)的成員,但不能訪問私有成員?!癴riendly”(友好的)友好的)若某樣?xùn)|西是“友好的”,意味著它只能在這個包

10、裝的范圍內(nèi)使用(所以這一訪問級別有時也叫作“包裝訪問”)?!皏1關(guān)于類頭關(guān)于類頭-接口名接口名接口名跟在接口名跟在implements關(guān)鍵字后面,用來關(guān)鍵字后面,用來說明當(dāng)前類中實現(xiàn)了哪個接口定義的功能說明當(dāng)前類中實現(xiàn)了哪個接口定義的功能和方法。接口是和方法。接口是Java語言用來實現(xiàn)多重繼語言用來實現(xiàn)多重繼承的一種特殊機制,我們將在后面詳細(xì)介承的一種特殊機制,我們將在后面詳細(xì)介紹它的使用方法。紹它的使用方法。2關(guān)于類體關(guān)于類體 類體的定義要包括類的具體內(nèi)容,包括類體的定義要包括類的具體內(nèi)容,包括類的屬性與方法。類的屬性與方法。class Java中聲明類屬性為簡單變量的語法如下:中聲明類屬性

11、為簡單變量的語法如下: 修飾符修飾符 變量類型變量類型 變量名變量名 =變量初值變量初值; 變量類型和變量名是聲明一個變量必變量類型和變量名是聲明一個變量必不可少的部分;變量的類型是簡單數(shù)據(jù)類不可少的部分;變量的類型是簡單數(shù)據(jù)類型,如型,如int、double等。等。2關(guān)于類體關(guān)于類體-類的屬性類的屬性2關(guān)于類體關(guān)于類體-類的方法類的方法Java中聲明方法的語法如下:中聲明方法的語法如下: 修飾符修飾符 返回值類型返回值類型 方法名方法名(參數(shù)參數(shù)列表列表)throws 例外名例外名1,例外名,例外名2, 方法體:方法體: 局部變量聲明;局部變量聲明; 語句序列;語句序列; 類的方法,又稱類的

12、方法,又稱為成員函數(shù),用為成員函數(shù),用來規(guī)定類屬性上來規(guī)定類屬性上的操作,實現(xiàn)類的操作,實現(xiàn)類的內(nèi)部功能的機的內(nèi)部功能的機制,同時也是類制,同時也是類與外界進(jìn)行交互與外界進(jìn)行交互的重要窗口。的重要窗口。 類中定義的方法通常起到兩種作用:一是圍繞著類的類中定義的方法通常起到兩種作用:一是圍繞著類的屬性進(jìn)行各種操作;二是與其他的類或?qū)ο筮M(jìn)行數(shù)據(jù)交流、屬性進(jìn)行各種操作;二是與其他的類或?qū)ο筮M(jìn)行數(shù)據(jù)交流、消息傳遞等操作。消息傳遞等操作。注意:系統(tǒng)調(diào)用方法的最大特點:注意:系統(tǒng)調(diào)用方法的最大特點:不需要在程序里書寫專門的調(diào)用不需要在程序里書寫專門的調(diào)用方法的命令方法的命令 Java語言中定義的方法有兩類

13、:語言中定義的方法有兩類: 一類是需要程序書寫專門的調(diào)用命令來調(diào)用的方法,一類是需要程序書寫專門的調(diào)用命令來調(diào)用的方法,稱為程序調(diào)用方法,例如稱為程序調(diào)用方法,例如isPrime (); 另一類是運行過程中系統(tǒng)自動調(diào)用的方法,稱為系統(tǒng)方另一類是運行過程中系統(tǒng)自動調(diào)用的方法,稱為系統(tǒng)方法,例如我們前面程序中的法,例如我們前面程序中的action()、paint()、init()等。這等。這兩類方法的定義和使用原則有很大差異。兩類方法的定義和使用原則有很大差異。 2關(guān)于類體關(guān)于類體-類的方法類的方法4.2.2 用戶程序自定義類用戶程序自定義類 Java程序員把注意力放在創(chuàng)建稱為類的用戶程序員把注意

14、力放在創(chuàng)建稱為類的用戶自定義類型(自定義類型(user-defined type)上,類也稱上,類也稱為程序員定義的類型(為程序員定義的類型(programmer-defined type),),每個類都含有數(shù)據(jù)和一組操作數(shù)據(jù)的每個類都含有數(shù)據(jù)和一組操作數(shù)據(jù)的方法,類中的數(shù)據(jù)部分稱為實例變量。用戶定方法,類中的數(shù)據(jù)部分稱為實例變量。用戶定義類型(即類)的實例稱為對象。義類型(即類)的實例稱為對象。 下面是一個簡單化的下面是一個簡單化的EmployeeEmployee類,在編寫今后的職工工資類,在編寫今后的職工工資系統(tǒng)時,會用到它。系統(tǒng)時,會用到它。class Employee /構(gòu)造函數(shù)構(gòu)造函

15、數(shù)public Employee(String n,double s,int year,int month,int day) name = n; /職工姓名職工姓名 salary = s; /職工工資職工工資 hireDay=new GregorianCalendar(year,month-1,day);/出勤數(shù)出勤數(shù)/方法方法1public String getName() return name;/更多的方法更多的方法/屬性的實例屬性的實例private String name;private double salary;private Date hireDay;4.2.3 創(chuàng)建類及類的實

16、例對象創(chuàng)建類及類的實例對象 對象是類的一個實例,類是同種對象的抽象,對象是類的一個實例,類是同種對象的抽象,是創(chuàng)建對象的模板。在程序中創(chuàng)建是創(chuàng)建對象的模板。在程序中創(chuàng)建個對象將在內(nèi)個對象將在內(nèi)存中開辟一塊空間,其中包括該對象的屬性和方法。存中開辟一塊空間,其中包括該對象的屬性和方法。 我們將分步講述這個類的實現(xiàn)細(xì)節(jié)。創(chuàng)建對象使我們將分步講述這個類的實現(xiàn)細(xì)節(jié)。創(chuàng)建對象使用關(guān)鍵字運算符用關(guān)鍵字運算符newnew,例如下面的語句將創(chuàng)建例如下面的語句將創(chuàng)建EmployeeEmployee的對象:的對象:【例【例4.14.1】顯示三個員工的相關(guān)信息】顯示三個員工的相關(guān)信息4.2.3 創(chuàng)建類及類的實例對象

17、創(chuàng)建類及類的實例對象在程序中我們構(gòu)造了一個在程序中我們構(gòu)造了一個EmployeeEmployee數(shù)組,并給它賦給三個數(shù)組,并給它賦給三個EmployeeEmployee對對象象。關(guān)于數(shù)組我們將在下一章講述。關(guān)于數(shù)組我們將在下一章講述。 staff0 = staff0 = newnew Employee( Employee(張三張三, 75000,1987, 12, 15);, 75000,1987, 12, 15); staff1 =staff1 = new new Employee(Employee(李四李四, 50000,1989, 10, 1);, 50000,1989, 10, 1);

18、 staff2 = staff2 = newnew Employee( Employee(王五王五, 40000,1990, 3, 15);, 40000,1990, 3, 15); 創(chuàng)建對象以某個類為模板,這個類里定義了哪創(chuàng)建對象以某個類為模板,這個類里定義了哪些屬性和方法,新建的對象就必然在內(nèi)存里擁有些屬性和方法,新建的對象就必然在內(nèi)存里擁有相應(yīng)的屬性和方法。相應(yīng)的屬性和方法。 可見,相對于簡單數(shù)據(jù)類型,類就是用戶自己可見,相對于簡單數(shù)據(jù)類型,類就是用戶自己定義的復(fù)雜的抽象數(shù)據(jù)類型:而相對于簡單變量定義的復(fù)雜的抽象數(shù)據(jù)類型:而相對于簡單變量,對象就是復(fù)雜的既包括數(shù)據(jù)又包括方法代碼的,對象就

19、是復(fù)雜的既包括數(shù)據(jù)又包括方法代碼的復(fù)雜數(shù)據(jù)單位。復(fù)雜數(shù)據(jù)單位。4.2.4 構(gòu)造函數(shù)構(gòu)造函數(shù)v1構(gòu)造函數(shù)的一般概念構(gòu)造函數(shù)的一般概念v2創(chuàng)建自己的構(gòu)造函數(shù)創(chuàng)建自己的構(gòu)造函數(shù)v3構(gòu)造函數(shù)的作用構(gòu)造函數(shù)的作用4.2.4 構(gòu)造函數(shù)構(gòu)造函數(shù)-構(gòu)造函數(shù)的一般概念構(gòu)造函數(shù)的一般概念 要使用對象,首先必須構(gòu)造它們,并指定它們的初始狀態(tài),要使用對象,首先必須構(gòu)造它們,并指定它們的初始狀態(tài),然后將方法應(yīng)用于對象。然后將方法應(yīng)用于對象。 在在Java程序設(shè)計語言中,使用構(gòu)造函數(shù)(程序設(shè)計語言中,使用構(gòu)造函數(shù)(constructor)來構(gòu)來構(gòu)造新的實例。一個構(gòu)造函數(shù)是一個新的方法,它的作用是構(gòu)造造新的實例。一個構(gòu)造函

20、數(shù)是一個新的方法,它的作用是構(gòu)造并初始化對象。并初始化對象。構(gòu)造函數(shù)是類的一種特殊方法,它的特殊性主要體現(xiàn)在如下的構(gòu)造函數(shù)是類的一種特殊方法,它的特殊性主要體現(xiàn)在如下的幾個方面:幾個方面:(1)構(gòu)造函數(shù)的方法名與類名相同。)構(gòu)造函數(shù)的方法名與類名相同。(2)構(gòu)造函數(shù)沒有返回類型。)構(gòu)造函數(shù)沒有返回類型。(3)構(gòu)造函數(shù)的主要作用是完成對類對象的初始化工作。)構(gòu)造函數(shù)的主要作用是完成對類對象的初始化工作。(4)構(gòu)造函數(shù)不能由編程人員顯式地直接調(diào)用。)構(gòu)造函數(shù)不能由編程人員顯式地直接調(diào)用。(5)在創(chuàng)建一個類的新對象的同時,系統(tǒng)會自動調(diào)用該類的)在創(chuàng)建一個類的新對象的同時,系統(tǒng)會自動調(diào)用該類的構(gòu)造函數(shù)

21、為新對象初始化。構(gòu)造函數(shù)為新對象初始化。4.2.4 構(gòu)造函數(shù)構(gòu)造函數(shù)-創(chuàng)建自己的構(gòu)造函數(shù)創(chuàng)建自己的構(gòu)造函數(shù) 構(gòu)造函數(shù)的名字和類的名字是相同的。當(dāng)構(gòu)造構(gòu)造函數(shù)的名字和類的名字是相同的。當(dāng)構(gòu)造Employee類的對象時,此構(gòu)造函數(shù)被啟動,實例字段賦初值,在類的對象時,此構(gòu)造函數(shù)被啟動,實例字段賦初值,在Java中,定義和初始化是統(tǒng)一的中,定義和初始化是統(tǒng)一的兩者缺一不可。兩者缺一不可。 例如,用下面的代碼創(chuàng)建例如,用下面的代碼創(chuàng)建Employee類的一個實例時,類的一個實例時,new Employee (“James Bond”,100000,1950,1,1);構(gòu)造函數(shù)的特點有:構(gòu)造函數(shù)的特點有

22、:(1 1)構(gòu)造函數(shù)和類具有相同的名字。)構(gòu)造函數(shù)和類具有相同的名字。(2 2)一個類可以有多個構(gòu)造函數(shù)。)一個類可以有多個構(gòu)造函數(shù)。(3 3)構(gòu)造函數(shù)可以有)構(gòu)造函數(shù)可以有0 0個、個、1 1個或多個參數(shù)。個或多個參數(shù)。(4 4)構(gòu)造函數(shù)沒有返回值。)構(gòu)造函數(shù)沒有返回值。(5 5)構(gòu)造函數(shù)總是和)構(gòu)造函數(shù)總是和newnew運算符一起被調(diào)用。運算符一起被調(diào)用。4.2.4 構(gòu)造函數(shù)構(gòu)造函數(shù)-構(gòu)造函數(shù)的作用構(gòu)造函數(shù)的作用(1)對象初始化)對象初始化(2 2)引入更多的靈活度(變量賦值或更復(fù)雜的操作)引入更多的靈活度(變量賦值或更復(fù)雜的操作)(3)Java中可以不定義構(gòu)造函數(shù)中可以不定義構(gòu)造函數(shù) J

23、ava中可以不定義構(gòu)造函數(shù),此時系統(tǒng)會自動為該系統(tǒng)中可以不定義構(gòu)造函數(shù),此時系統(tǒng)會自動為該系統(tǒng)生成一個默認(rèn)的構(gòu)造函數(shù)。這個構(gòu)造函數(shù)的名字與類名相生成一個默認(rèn)的構(gòu)造函數(shù)。這個構(gòu)造函數(shù)的名字與類名相同,它沒有任何形式參數(shù),也不完成任何操作。同,它沒有任何形式參數(shù),也不完成任何操作。 為了避免失去控制,一般將構(gòu)造函數(shù)的聲明與創(chuàng)建分開為了避免失去控制,一般將構(gòu)造函數(shù)的聲明與創(chuàng)建分開處理。處理。 4.3.1 方法概述方法概述4.3 方法 Java程序是由一個個類定義組成的,類有兩個部分:程序是由一個個類定義組成的,類有兩個部分:屬性和方法。屬性描述類是什么,屬性和方法。屬性描述類是什么,方法描述類做什么

24、方法描述類做什么。任。任何對象都有獨立的內(nèi)存存儲它的屬性。類的所有的對象共何對象都有獨立的內(nèi)存存儲它的屬性。類的所有的對象共享存貯在內(nèi)存的方法。享存貯在內(nèi)存的方法。 換言之:方法是類的主要組成部分。在一個類中,程換言之:方法是類的主要組成部分。在一個類中,程序的作用體現(xiàn)在方法中。序的作用體現(xiàn)在方法中。 方法即是方法即是JAVA創(chuàng)建一個有名字的子程序。一個主方法創(chuàng)建一個有名字的子程序。一個主方法和若干個子方法構(gòu)成。主方法調(diào)用其他方法,其他方法間和若干個子方法構(gòu)成。主方法調(diào)用其他方法,其他方法間也可互相調(diào)用,同一個方法可被一個或多個方法調(diào)用任意也可互相調(diào)用,同一個方法可被一個或多個方法調(diào)用任意次。

25、次。 4.3.1 方法概述方法概述Java程序的基本結(jié)構(gòu)如下:程序的基本結(jié)構(gòu)如下:引入引入Java類庫;類庫;定義用戶類定義用戶類1 定義類定義類1的若干變量或?qū)ο螅旱娜舾勺兞炕驅(qū)ο螅?定義類定義類1的方法的方法1; 定義類定義類1的方法的方法2;定義類定義類1的方法的方法M1;定義用戶類定義用戶類2定義類定義類2的若干變量或?qū)ο螅旱娜舾勺兞炕驅(qū)ο螅憾x類定義類2的方法的方法1;定義類定義類2的方法的方法2;定義類定義類2的方法的方法M24.3.1 方法概述方法概述 Java語言的方法實現(xiàn)子任務(wù)處理時,有下面幾語言的方法實現(xiàn)子任務(wù)處理時,有下面幾個原則與規(guī)律:個原則與規(guī)律:(1)算法中需要細(xì)化

26、的步驟、程序中重復(fù)的代碼)算法中需要細(xì)化的步驟、程序中重復(fù)的代碼以及重載父類方法都可以定義成類的方法。以及重載父類方法都可以定義成類的方法。(2)界面清晰。)界面清晰。(3)大小適中。)大小適中。(4)方法有兩種:一種是標(biāo)準(zhǔn)方法,)方法有兩種:一種是標(biāo)準(zhǔn)方法,Java API提提供了豐富的類和方法,這些方法提供了程序員所需供了豐富的類和方法,這些方法提供了程序員所需的許多功能。另一種是用戶自定義的方法,以解決的許多功能。另一種是用戶自定義的方法,以解決用戶專門需要。用戶專門需要。(5)Java應(yīng)用程序中,程序的執(zhí)行從應(yīng)用程序中,程序的執(zhí)行從main類開始,類開始,調(diào)用其他方法后又回到調(diào)用其他方

27、法后又回到main類,在類,在main類中結(jié)束類中結(jié)束整個程序的運行。整個程序的運行。4.3.2 定義方法定義方法v1聲明方法頭聲明方法頭v2聲明方法體聲明方法體Java中聲明方法的語法如下:中聲明方法的語法如下: 修飾符修飾符 返回值類型返回值類型 方法名方法名(參數(shù)參數(shù)列表列表)throws 例外名例外名1,例外名,例外名2, 方法體:方法體: 局部變量聲明;局部變量聲明; 語句序列;語句序列; 類的方法,又稱類的方法,又稱為成員函數(shù),用為成員函數(shù),用來規(guī)定類屬性上來規(guī)定類屬性上的操作,實現(xiàn)類的操作,實現(xiàn)類的內(nèi)部功能的機的內(nèi)部功能的機制,同時也是類制,同時也是類與外界進(jìn)行交互與外界進(jìn)行交互

28、的重要窗口。的重要窗口。4.3.2 定義方法定義方法-聲明方法頭聲明方法頭1聲明方法頭聲明方法頭 方法頭一般由方法名、參數(shù)列表、返回類型、方法頭一般由方法名、參數(shù)列表、返回類型、方法修飾符和方法拋出的例外五部分組成。方法修飾符和方法拋出的例外五部分組成。(1)方法名可以是任何有效的標(biāo)識符,命名規(guī)則與標(biāo)識符命名規(guī)則相同。(2)類型說明符用來指定方法返回值的類型,方法最多只能返回一個值。(3)參數(shù)列表是方法的輸入接口,它列出了一系列形式參數(shù)的類型和名稱,在方法參數(shù)表的右括號后加一個分號是語法錯誤。參數(shù)表以逗號為分隔符,其中包含了方法被調(diào)用時傳遞給方法的參數(shù)說明。對于方法定義中的每一個參數(shù),方法調(diào)用

29、時必須有一個參量與之對應(yīng),而且該參量的類型必須與對應(yīng)參數(shù)類型相一致。4.3.2 定義方法定義方法-聲明方法體聲明方法體方法頭定義了方法的性質(zhì),方法體則定義了方法的具體內(nèi)容。方法頭定義了方法的性質(zhì),方法體則定義了方法的具體內(nèi)容。 方法體通常起到兩種作用,一是圍繞類的屬性進(jìn)行各種操作;方法體通常起到兩種作用,一是圍繞類的屬性進(jìn)行各種操作;二是與其他的類與對象進(jìn)行數(shù)據(jù)交流、消息傳遞等操作。二是與其他的類與對象進(jìn)行數(shù)據(jù)交流、消息傳遞等操作。在一個方法中定義另一個方法將產(chǎn)生語法錯誤。在一個方法中定義另一個方法將產(chǎn)生語法錯誤。(1)最好避免局部變量)最好避免局部變量“屏蔽屏蔽”實例變量,在一個類中不使實例

30、變量,在一個類中不使用同名標(biāo)識符就可以做到這一點;方法調(diào)用中參數(shù)用來傳遞數(shù)用同名標(biāo)識符就可以做到這一點;方法調(diào)用中參數(shù)用來傳遞數(shù)值、傳遞引用,同時方法還可以嵌套、遞歸調(diào)用。值、傳遞引用,同時方法還可以嵌套、遞歸調(diào)用。(2)方法體中如果指定了非)方法體中如果指定了非void的返回值類型,方法中就必的返回值類型,方法中就必須包含一條須包含一條return語句保證任何情況下都有返回數(shù)值,語句保證任何情況下都有返回數(shù)值,return語句后面語句后面(不能跟任何表達(dá)式不能跟任何表達(dá)式?);4.3.2 定義方法定義方法-聲明方法體聲明方法體例如下面的語句為部門類例如下面的語句為部門類Department定

31、義了若干方法:定義了若干方法:Class Department int m_ DeptNo; 部門編號部門編號 String m_DeptName; 部門名稱部門名稱 int m_DeptTotalEmp;部門雇員數(shù)部門雇員數(shù) ManagerEmployee m_DeptMgr; 部門主管部門主管 int getDeptNo( ) 獲取當(dāng)前對象的部門號獲取當(dāng)前對象的部門號 return _DeptNo; 返回這個對象的部門號返回這個對象的部門號 v4.3.3 方法的調(diào)用方法的調(diào)用v1系統(tǒng)調(diào)用方法系統(tǒng)調(diào)用方法v2程序調(diào)用方法程序調(diào)用方法 Java語言中調(diào)用方法有兩類:語言中調(diào)用方法有兩類: 一類

32、是需要程序書寫專門的調(diào)用命令來調(diào)用的方法,一類是需要程序書寫專門的調(diào)用命令來調(diào)用的方法,稱為程序調(diào)用方法,例如稱為程序調(diào)用方法,例如isPfime (); 另一類是運行過程中系統(tǒng)自動調(diào)用的方法,稱為系統(tǒng)方另一類是運行過程中系統(tǒng)自動調(diào)用的方法,稱為系統(tǒng)方法,例如我們前面程序中的法,例如我們前面程序中的action()、paint()、init()等。這等。這兩類方法的定義和使用原則有很大差異。兩類方法的定義和使用原則有很大差異。 注意:系統(tǒng)調(diào)用方法的最大特點:不需要在程序里書寫專門的調(diào)用方法的命令v4.3.3 方法的調(diào)用方法的調(diào)用 在類中調(diào)用類自身的方法,可以直接使用這個方法的在類中調(diào)用類自身的

33、方法,可以直接使用這個方法的名稱;調(diào)用其他對象或類的方法,則需要使用該對象或類名稱;調(diào)用其他對象或類的方法,則需要使用該對象或類為前綴。例如在為前綴。例如在isSameDept( )方法中,語句方法中,語句 if(getDeptNo( )dgetDeptNo( )中通過中通過getDeptNo( )調(diào)用當(dāng)前對象自身的方法并獲得當(dāng)前對調(diào)用當(dāng)前對象自身的方法并獲得當(dāng)前對象的部門號,通過象的部門號,通過dgetDeptNo( )調(diào)用形式參數(shù)調(diào)用形式參數(shù)d的方法獲的方法獲得得d的部門編號。這里的形式參數(shù)的部門編號。這里的形式參數(shù)d也是一個也是一個Depamnent類類的對象。的對象。v4.3.3 方法

34、的調(diào)用方法的調(diào)用(實例實例)boolean setDeptNo(int NewNo) /把當(dāng)前部門號重新設(shè)置稱參數(shù)值把當(dāng)前部門號重新設(shè)置稱參數(shù)值 if( NewNo 0) /若給出的新部門號合法若給出的新部門號合法 m_DeptNo=NewNo;/修改類屬性修改類屬性m_DeptNo return true; /返回返回true,聲明部門編號修改成功聲明部門編號修改成功 else return false; /若形式參數(shù)給出新部門號非法,返回若形式參數(shù)給出新部門號非法,返回false 4.3.4 Java API中的方法中的方法 1Math類的方法類的方法2Math方法的調(diào)用實例方法的調(diào)用實例

35、 在Java中,Java API(Application Program Interface,也稱為Java類庫)提供了豐富的類和方法,可以執(zhí)行常見的算術(shù)運算、字符串操作、字符操作、輸入輸出、錯誤檢查等操作。4.3.4 Java API中的方法中的方法-Math類的方法類的方法 方法方法說明說明方法方法說明說明abs(x)x的絕對值的絕對值(這個方法還有這個方法還有float,int和和long型值的版本型值的版本)max(x,y)取取x和和y中較大者。中較大者。ceil(x)不小于不小于x的最小整數(shù)的最小整數(shù)(向上取整向上取整)min (x,y)取取x和和y中較小者。中較小者。cos(x)x

36、的余弦函數(shù)值的余弦函數(shù)值(x以弧度為單以弧度為單位位)pow (x,y)x的的y次冪次冪exp(x)指數(shù)方法指數(shù)方法e的的x次冪次冪sin (x)x的正弦函數(shù)值的正弦函數(shù)值(x以弧度為單位以弧度為單位)floor(x)不大于不大于x的最大整數(shù)的最大整數(shù)(向下取整向下取整)sqrt (x)x的平方根的平方根log(x)x的自然對數(shù)的自然對數(shù)(以以e為底為底) 4.3.4 Java API中的方法中的方法-Math方法的調(diào)用實例方法的調(diào)用實例 調(diào)用方法的一般格式是先寫方法名,然后是左括號,調(diào)用方法的一般格式是先寫方法名,然后是左括號,接著是參數(shù)(接著是參數(shù)(argument)或由逗號分隔的參數(shù)表,

37、最或由逗號分隔的參數(shù)表,最后是右括號。例如,要計算并且打印出后是右括號。例如,要計算并且打印出900的平方根,的平方根,調(diào)用方法的語句格式:調(diào)用方法的語句格式:System.out.prtntln(Math.sqrt(900);注意,所有Math類方法的調(diào)用必須采用方法名前冠以類名Math和點(.)運算符的形式?!纠?4.2】擲一個六面骰子6000次的程序 4.4 訪問控制符訪問控制符 Java推出了“訪問控制修飾符”的概念,允許庫創(chuàng)建者聲明哪些東西是客戶程序員可以使用的,哪些是不可使用的。這種訪問控制的級別在“最大訪問”和“最小訪問”的范圍之間,分別包括:public,“defaut”(無關(guān)

38、鍵字),protected以及private。下面的列表說明訪問控制修飾符含義: 類的訪問控制修飾符(一種符號)類的訪問控制修飾符(一種符號) public公共訪問公共訪問屬性與方法的訪問控制修飾符(四種符號)屬性與方法的訪問控制修飾符(四種符號) 符號符號publicprotectedprivate protectedprivate 含義含義公共訪問公共訪問保護(hù)訪問保護(hù)訪問私有保護(hù)訪問私有保護(hù)訪問私有訪問私有訪問 4.4 訪問控制符訪問控制符v4.4.1 公共訪問控制符公共訪問控制符public Java中類的訪問控制符只有一個:public,即公共的。一個類被聲明為公共類,表明它可以被所有

39、的其他類所訪問和引用,這里的訪問和引用是指這個類作為整體是可見和可使用的,程序的其他部分可以創(chuàng)建這個類的對象、訪問這個類內(nèi)部可見的成員變量和調(diào)用它的可見的方法。 一個類作為整體對程序的其他部分可見,并不能代表類內(nèi)的所有屬性和方法也同時對程序的其他部分可見,前者只是后者的必要條件,類的屬性和方法能否為所有其他類所訪問,還要看這些屬性和方法自己的訪問控制符。 實例字段應(yīng)用public關(guān)鍵字,這是一種非常糟糕的做法,破壞封裝。4.4.2 缺省訪問控制符缺省訪問控制符 假如一個類沒有訪問控制符,說明它具有缺省的訪問控制特性。這種缺省的訪問控制權(quán)規(guī)定該類只能被同一個包中的類訪問和引用,而不可以被其他包中

40、的類使用,這種訪問特性稱為包訪問性。通過聲明類的訪問控制符可以使整個程序結(jié)構(gòu)清晰、嚴(yán)謹(jǐn),減少可能產(chǎn)生類間干擾和錯誤。 4.4.3 私有訪問控制符私有訪問控制符private 用private修飾的屬性或方法只能被該類自身所訪問和修改,而不能被任何其他類,包括該類的子類,來獲取和引用。 v1. 對私有數(shù)據(jù)訪問的方法對私有數(shù)據(jù)訪問的方法例如有三個實例字段,它們含有在Employee類的實例內(nèi)部被操作的數(shù)據(jù)。private string name;private double salary;private Date hireDay; private(私有的)關(guān)鍵字用來確??梢栽L問這些實例字段的只能是

41、Employee類本身的方法。 4.4.3 私有訪問控制符私有訪問控制符privatev2. 私有方法私有方法 在實現(xiàn)類時,我們使所有的數(shù)據(jù)字段都是私有的,因為公開的數(shù)據(jù)是危險的。對于方法又是什么情況呢 ?雖然大多數(shù)方法是公開的,但是私有方法也經(jīng)常使用。這些方法只能被同一個分離的方法。 總起來說,在下面的情況下可以選擇私有方法:(1)與類的使用者無關(guān)的那些方法。 (2)如果類的實現(xiàn)改變了,不容易維護(hù)的那些方法。 4.4.4 保護(hù)訪問控制符保護(hù)訪問控制符protectedv 用用protected修飾的成員變量可以被三種類所引修飾的成員變量可以被三種類所引用:該類自身、與它在同一個包中的其他類、

42、在其用:該類自身、與它在同一個包中的其他類、在其他包中的該類的子類。使用他包中的該類的子類。使用protected修飾符的主要修飾符的主要作用是允許其他包中的它的子類來訪問父類的特定作用是允許其他包中的它的子類來訪問父類的特定屬性。屬性。v protected關(guān)鍵字為我們引入了一種名為關(guān)鍵字為我們引入了一種名為“繼承繼承”的概念,它以現(xiàn)有的類為基礎(chǔ),并在其中加入新的的概念,它以現(xiàn)有的類為基礎(chǔ),并在其中加入新的成員,同時不會對現(xiàn)有的類產(chǎn)生影響成員,同時不會對現(xiàn)有的類產(chǎn)生影響我們將這我們將這種現(xiàn)有的類稱為種現(xiàn)有的類稱為“基礎(chǔ)類基礎(chǔ)類”或者或者“基本類基本類”(Base Class)。)。亦可改變那

43、個類現(xiàn)有成員的行為。對于從亦可改變那個類現(xiàn)有成員的行為。對于從一個現(xiàn)有類的繼承,我們說自己的新類一個現(xiàn)有類的繼承,我們說自己的新類“擴展擴展”(extends)了那個現(xiàn)有的類。了那個現(xiàn)有的類。 v4.4.5 私有保護(hù)訪問控制符私有保護(hù)訪問控制符private protected private和protected按順序連用構(gòu)成一個完整的訪問控制符:私有保護(hù)訪問控制符。用privateprotected修飾的成員變量可以被兩種類訪問和引用,一種是該類本身,一種是該類的所有子類,不論這些子類是與該類在同一個包里,還是處于其他的包中。 相對于protected,privateprotected修飾符

44、把同一包內(nèi)的非子類排除在可訪問的范圍之外,使得成員變量更專有于具有明確繼承關(guān)系的類,而不是松散地組合在一起的包。 訪問控制符訪問控制符 當(dāng)前當(dāng)前類類 (D)當(dāng)前類的所有子當(dāng)前類的所有子類類(C)當(dāng)前類所在的當(dāng)前類所在的包包(B) 所有類所有類(A) privateprotected* publicprivate protected A:所所有有類類 D:本本類類 B:包包中中的的類類 C:所所有有子子類類 E:包包中中 子子類類 圖圖4-3 程序中的訪問控制區(qū)域程序中的訪問控制區(qū)域4.5靜態(tài)修飾符、靜態(tài)字段和方法v4.5.1 靜態(tài)修飾符靜態(tài)修飾符 (2)另一種情形是我們需要一個特殊的方法,它沒

45、有與這個類的任何對象關(guān)聯(lián)。也就是說,即使沒有創(chuàng)建對象,也需要一個能調(diào)用的方法。 static一項重要的用途就是幫助我們在不必創(chuàng)建對象的前提下調(diào)用那個方法。 4.5靜態(tài)修飾符、靜態(tài)字段和方法v4.5.1 靜態(tài)修飾符靜態(tài)修飾符 static稱為靜態(tài)修飾符,它可以修飾類中的屬性和方法。使用static(靜態(tài))關(guān)鍵字,可滿足兩方面的要求:(1)一種情形是只想用一個存儲區(qū)域來保存一個特定的數(shù)據(jù)無論要創(chuàng)建多少個對象,甚至根本不創(chuàng)建對象;被static修飾的屬性稱為靜態(tài)屬性,這類屬性一個最本質(zhì)的特點是:它們是類的屬性,而不屬于任何一個類的具體對象。換句話說,對于該類的任何一個具體對象而言,靜態(tài)屬性是一個公共

46、的存儲單元,任何一個類的對象訪問它時,取到的都是相同的數(shù)值,同樣任何一個類的對象去修改它時,也都是在對同一個內(nèi)存單元做操作。v4.5.2 靜態(tài)字段靜態(tài)字段 如果把一個字段定義為如果把一個字段定義為static.(靜態(tài)的),那么在一個類中只能有靜態(tài)的),那么在一個類中只能有一個這類字段。一個這類字段。 v4.5.3 靜態(tài)常量靜態(tài)常量 靜態(tài)變量是很少見的。然而,靜態(tài)常量卻很普遍。例如,靜態(tài)變量是很少見的。然而,靜態(tài)常量卻很普遍。例如,MathMath類中定類中定義了一個靜態(tài)常量:義了一個靜態(tài)常量:public class Mathpublic class Math public static fi

47、nal double PI=3.1.4159265358979323846;public static final double PI=3.1.4159265358979323846; v4.5.4 靜態(tài)方法靜態(tài)方法v4.5.5 main方法方法4.5.4 靜態(tài)方法靜態(tài)方法 聲明一個方法為聲明一個方法為static至少有三重含義:至少有三重含義:(1)使用這個方法時,應(yīng)該使用類名做前綴,而不是某一)使用這個方法時,應(yīng)該使用類名做前綴,而不是某一個具體的對象名;個具體的對象名;(2)static的方法是屬于某個對象的方法,在這個對象創(chuàng)建的方法是屬于某個對象的方法,在這個對象創(chuàng)建時對象的方法在內(nèi)存

48、中擁有自己專用的代碼段;而時對象的方法在內(nèi)存中擁有自己專用的代碼段;而static的方法是屬于整個類的,它在內(nèi)存中的代碼段將隨著類的方法是屬于整個類的,它在內(nèi)存中的代碼段將隨著類的定義而分配和裝載,不被任何一個對象專有;的定義而分配和裝載,不被任何一個對象專有;(3)由于)由于static方法是屬于整個類的,所以它不能操縱和處方法是屬于整個類的,所以它不能操縱和處理屬于某個對象的成員變量,而只能處理屬于整個類的理屬于某個對象的成員變量,而只能處理屬于整個類的成員變量。成員變量。 4.5.5 main方法方法 main方法并不對任何對象施加操作。實際上,當(dāng)程方法并不對任何對象施加操作。實際上,當(dāng)

49、程序開始執(zhí)行時,還不存在任何對象。靜態(tài)方法被執(zhí)行,序開始執(zhí)行時,還不存在任何對象。靜態(tài)方法被執(zhí)行,并構(gòu)造程序所需的對象。并構(gòu)造程序所需的對象。 提示提示 每個類都可以有一個每個類都可以有一個main方法。這是對類進(jìn)行方法。這是對類進(jìn)行單元測試的一個很方便技巧。單元測試的一個很方便技巧。 4.6抽象類與抽象方法v4.6.1 抽象類抽象類v當(dāng)一個類被聲明為abstract時,這個類被稱為是抽象類。所謂抽象類就是沒有具體實例對象的類。v針對這個問題,Java專門提供了一種機制,名為“抽象方法”。它屬于一種不完整的方法,只含有一個聲明,沒有方法主體。下面是抽象方法聲明時采用的語法:vabstract

50、void X();v人類就是一個典型的抽象類。我們知道,類是對象的集合,對象是類的實例化,而人類這個類卻不存在一個僅屬于它的具體對象。 abstract是抽象修飾符,可以用來修飾類或方法。v4.6.2 抽象方法抽象方法 作為類方法修飾符,作為類方法修飾符,abstract則聲明了一則聲明了一種僅有方法頭,而沒有具體的方法體和操作種僅有方法頭,而沒有具體的方法體和操作實現(xiàn)的抽象方法。實現(xiàn)的抽象方法。 可見,可見,abstractabstract方法只有方法頭的聲明,方法只有方法頭的聲明,而用一個分號來代替方法體的定義:至于方而用一個分號來代替方法體的定義:至于方法體的具體實現(xiàn),那是由當(dāng)前類的不同

51、子類法體的具體實現(xiàn),那是由當(dāng)前類的不同子類在它們各自的類定義中完成的。在它們各自的類定義中完成的。 需要特別注意的是,所有的抽象方法,都必須需要特別注意的是,所有的抽象方法,都必須存在于抽象類之中。存在于抽象類之中。 除了抽象方法,抽象類也可以有具體的數(shù)據(jù)和除了抽象方法,抽象類也可以有具體的數(shù)據(jù)和方法。例如,方法。例如,PersonPerson類存儲人的名字并且用一個類存儲人的名字并且用一個具體的方法來返回它。具體的方法來返回它。 在在Java編程語言中抽象方法是非常重要的概念。編程語言中抽象方法是非常重要的概念。在接口里你會大量的用到它。在接口里你會大量的用到它。 4.7最終類、最終屬性、最

52、終方法與終結(jié)器final是最終修飾符,它可以修飾類、屬性和方法。另外終結(jié)器的關(guān)鍵字與final很相近,一并介紹。4.7.1 最終類最終類 如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為abstract的,又被聲明為final的。被定義成final的類,通常是一些有特殊作用的、用來完成標(biāo)準(zhǔn)功能的類,將一個類定義為final則可以將它的內(nèi)容、屬性和功能固定下來,與它的類名形成穩(wěn)定的映射關(guān)系,從而保證引用這個類時所實現(xiàn)的功能是準(zhǔn)確無誤的。 v4.7.2 最終屬性最終屬性 無論無論static還是還是final字段,都只能存儲一個數(shù)據(jù),字段,都

53、只能存儲一個數(shù)據(jù),而且不得改變。而且不得改變。 許多程序設(shè)計語言都有自己的辦法告訴編譯器某許多程序設(shè)計語言都有自己的辦法告訴編譯器某個數(shù)據(jù)是個數(shù)據(jù)是“常數(shù)常數(shù)”。常數(shù)主要應(yīng)用于下述兩個方面:。常數(shù)主要應(yīng)用于下述兩個方面:(1)編譯期常數(shù),它永遠(yuǎn)不會改變;)編譯期常數(shù),它永遠(yuǎn)不會改變;(2)在運行期初始化的一個值,我們不希望它發(fā)生)在運行期初始化的一個值,我們不希望它發(fā)生變化。變化。 可以把一個實例字段定義為可以把一個實例字段定義為final(不能改變的不能改變的)。在對象被構(gòu)造時,這種字段必須被初始化。即,必在對象被構(gòu)造時,這種字段必須被初始化。即,必須保證在每一個構(gòu)造函數(shù)結(jié)束之前其值已被設(shè)定

54、。須保證在每一個構(gòu)造函數(shù)結(jié)束之前其值已被設(shè)定。以后字段的值不能改變。以后字段的值不能改變。4.7.3 最終方法最終方法 之所以要使用之所以要使用final方法,可能是出于對兩方面理由的考方法,可能是出于對兩方面理由的考慮。慮。 第一個是為方法第一個是為方法“上鎖上鎖”,防止任何繼承類改變它的本來,防止任何繼承類改變它的本來含義。設(shè)計程序時,若希望一個方法的行為在繼承期間保持含義。設(shè)計程序時,若希望一個方法的行為在繼承期間保持不變,而且不可被覆蓋或改寫,就可以采取這種做法。不變,而且不可被覆蓋或改寫,就可以采取這種做法。 采用采用final方法的第二個理由是程序執(zhí)行的效率方法的第二個理由是程序執(zhí)

55、行的效率。 4.8 本章小結(jié) v1.關(guān)于類關(guān)于類v必須要學(xué)會如何創(chuàng)建、引用和繼承已建立的類。必須要學(xué)會如何創(chuàng)建、引用和繼承已建立的類。Java程序程序的基本單位是類。類的定義可以看作是建立對象的原形。的基本單位是類。類的定義可以看作是建立對象的原形。你建立類之后,就可用它來建立許多你需要的對象。你建立類之后,就可用它來建立許多你需要的對象。Java把每一個可執(zhí)行的成分都變成類,使面向?qū)ο蟀l(fā)展到極點。把每一個可執(zhí)行的成分都變成類,使面向?qū)ο蟀l(fā)展到極點。v類的基本定義方法如下:類的基本定義方法如下:v修飾符修飾符 class 類名類名 extends 父類父類 implements 接口名接口名vv 類成員變量聲明類成員變量聲明v 類方法聲明類方法聲明v2關(guān)于對象關(guān)于對象v 對象是類的一個實例,類是同種對象的抽象對象是類的一個實例,類是同種對象的抽象綜合,是創(chuàng)建對象的模板。在程序中創(chuàng)建綜合,

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論