面向?qū)ο蟮能浖_發(fā)基礎(chǔ)_第1頁(yè)
已閱讀1頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、面向?qū)ο蟮能浖_發(fā)基礎(chǔ),面向?qū)ο蟮幕靖拍?程序 = 對(duì)象 + 消息面向?qū)ο?對(duì)象 + 類 + 繼承 + 通信,公式化描述,面向?qū)ο筌浖_發(fā)的基本過程,面向?qū)ο蟮能浖_發(fā)過程 需求分析—需求模塊化—概要設(shè)計(jì)—詳細(xì)設(shè)計(jì)—實(shí)現(xiàn)面向?qū)ο蟮姆治鲭A段 需求分析—需求模型化面向?qū)ο蟮脑O(shè)計(jì)階段 概要設(shè)計(jì)—詳細(xì)設(shè)計(jì)實(shí)現(xiàn)階段編碼階段—實(shí)現(xiàn)階段。,面向?qū)ο蟪绦蛟O(shè)計(jì)方法的特點(diǎn):,抽象封裝繼承多態(tài),類的定義,[修飾符

2、] class 類名 [extends 父類名] [ implements 接口名]{ 類成員變量聲明; 類方法聲明;},父類名,關(guān)鍵字:extends子類可以繼承父類的所有屬性和方法。接口:接口名跟在implements關(guān)鍵字后面,用來說明當(dāng)前類中實(shí)現(xiàn)了哪個(gè)接口定義的功能和方法。接口是Java語(yǔ)言用來實(shí)現(xiàn)多重繼承的一種特殊機(jī)制。,修飾符,類的修飾符有:

3、訪問控制符;不止一個(gè)控制符。抽象類說明符abstract最終類說明符final,聲明類體,類的屬性[修飾符] 變量類型 變量名[=變量初值];[修飾符] 類名 對(duì)象名[= new 類名(實(shí)參)]類的方法[修飾符] 返回值類型 方法名(參數(shù)列表)throws 例外名1,例外名2{方法體;局部變量聲明;語(yǔ)句序列;},創(chuàng)建對(duì)象實(shí)例,New類名  對(duì)象名=new 類的構(gòu)造方法,構(gòu)造函數(shù),構(gòu)造函數(shù)的方法名與類名相同。

4、構(gòu)造函數(shù)沒有返回類型。構(gòu)造函數(shù)的主要作用是完成對(duì)類對(duì)象的初始化工作。構(gòu)造函數(shù)不能由編程人員顯示地直接調(diào)用。在創(chuàng)建一個(gè)類的新對(duì)象的同時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用該類的構(gòu)造函數(shù)為新對(duì)象初始化。,訪問控制修飾符,Public公共類,表明它可以被所有的其它類所引用,即這個(gè)類作為整體是可見和可使用的,程序的其它部分可以創(chuàng)建這個(gè)類的對(duì)象、訪問這個(gè)類內(nèi)部可見的域和調(diào)用它的可見的方法。 Private用private修飾的域或方法只能被該類自身所訪問

5、和調(diào)用,而不能被任何其它類,包括該類的子類訪問和調(diào)用。private修飾符用來聲明那些類的私有成員,它提供了最高的保護(hù)級(jí)別。簡(jiǎn)單地說就是,具有private(私有)訪問控制修飾符的類成員不能被其它的類訪問和調(diào)用。,訪問控制修飾符,Protected用protected修飾的類成員可以被三種類所使用(訪問、調(diào)用): 類自身 與它在同一個(gè)包中的其它類 在其它包中的該類的子類 具有protected(保護(hù))訪問控制修飾符的類成員只能

6、被同一個(gè)包中的類,以及其它包中該類的子類訪問和調(diào)用 .,private protected(私有保護(hù)),用private protected修飾的類成員可以被兩種類使用 :一種是該類本身 一種是該類的所有子類 論這些子類是與該類在同一個(gè)包里,還是處于其它的包中 與protected的區(qū)別:用來控制類之間繼承關(guān)系的訪問權(quán)限,缺省訪問控制符,說明該類只能被同一個(gè)包中的類訪問和引用,而不可以被其他包中的類使用,這種訪問特征又稱包訪問

7、性。如: class A{ 類體;},訪問控制權(quán)限控制小結(jié),靜態(tài)屬性、靜態(tài)方法和靜態(tài)初始化器,靜態(tài)屬性 static靜態(tài)域在類定義中已被系統(tǒng)唯一地創(chuàng)建(分配存儲(chǔ)單元),因此使用類名聲明.Class A{int a;Static int b;Int add(int x,int y){int c; c=x+y; return c;}},靜態(tài)域最本質(zhì)的特點(diǎn)是:它們是類的屬性,而不屬于任何一個(gè)類的具體對(duì)象

8、。換句話說,對(duì)于該類的任何一個(gè)具體對(duì)象而言,靜態(tài)域是一個(gè)公共的存儲(chǔ)區(qū)域,任何一個(gè)類的對(duì)象訪問它時(shí),取到的都是相同的值,同樣,任何一個(gè)類的對(duì)象去修改它時(shí),也都是在對(duì)同一個(gè)存儲(chǔ)區(qū)域操作。a,b ;,靜態(tài)方法,static修飾符修飾的域是屬于類的公共域;與之相仿,用static修飾符修飾的方法,是屬于整個(gè)類的類方法;而不用static修飾符限定的方法,是屬于某個(gè)具體類對(duì)象或?qū)嵗姆椒?。聲明一個(gè)方法為static至少有三重含義: (1)調(diào)用

9、這個(gè)方法時(shí),應(yīng)該使用類名做前綴,而不是某一個(gè)具體的對(duì)象名;(2)非static的方法是屬于某個(gè)對(duì)象的方法,在這個(gè)對(duì)象創(chuàng)建時(shí)對(duì)象的方法在內(nèi)存中擁有自己專用的代碼段;而static的方法是屬于整個(gè)類的,它在內(nèi)存中的代碼段將隨著類的定義而分配和裝載,不被任何一個(gè)對(duì)象專有;,靜態(tài)方法,(3)由于static方法是屬于整個(gè)類的,所以它不能操縱和處理屬于某個(gè)對(duì)象的域,而只能處理屬于整個(gè)類的域。也即,static方法只能處理static的數(shù)據(jù)???/p>

10、書上例子:,class A{ int x; static int y = 3; void showx( ) { System.out.println("x = " + x); } static void show( ) { System.out.print("static : "); } static void showy( ) { System.out.println

11、("y = " + y); } static void show1( ) { A.show( ); A.showy( ); }}class StaticTest{ static public void main(String arg[ ]) { A.y += 1; A.show1();  A a1 = new A( ); a1.showx( );

12、A.showy( ); a1.showy( );  A a2 = new A(); a2.x = 6; a2.y = 7; a2.showx( ); a2.show1( ); a1.show1( ); A.show1( ); }},靜態(tài)初始化器,靜態(tài)初始化器是由關(guān)鍵字static引導(dǎo)的一對(duì)大括號(hào)括起來的語(yǔ)句組。它的任務(wù)是對(duì)靜態(tài)成員變量進(jìn)行初

13、始化。與構(gòu)造函數(shù)的區(qū)別:,class Employee{ private int m_EmpNo; String m_EmpName; char m_EmpGender; private double m_EmpSalary; static double m_MinSalary; static int m_NextEmpNo;}static {

14、 //靜態(tài)初始化器 m_MinSalary=250; m_NextEmpNo=3001;}Employee(String name,char sex,double sal) //構(gòu)造函數(shù){……},例子:p105,,抽象類與抽象方法,抽象類在類定義頭使用abstract修飾,聲明不為其分配存儲(chǔ)單元,即不能創(chuàng)建抽象類的實(shí)例。 抽象方法抽象方法指的是只有方法頭,沒有方法

15、體的方法,用abstract來修飾。,需要特別注意的是,所有的抽象方法,都必須存在于抽象類之中。抽象類中定義的是一組它所有子類所共有的公共域和方法,抽象方法就是其中的公共方法,它是所有子類都要使用的同類操作,定義abstract方法的主要目的也就在于此。事實(shí)上,為abstract方法書寫方法體是沒有意義的,因?yàn)閍bstract方法所依附的abstract類沒有自己的對(duì)象,只有它的子類才存在具體的對(duì)象,而它的不同子類對(duì)這個(gè)abstract

16、方法有互不相同的實(shí)現(xiàn)方法,除了參數(shù)列表和返回值之外,抽取不出其他的公共點(diǎn)。所以就只能把a(bǔ)bstract方法作為一個(gè)共同的接口,表明當(dāng)前抽象類的所有子類,都使用這個(gè)接口來完成某種功能。,要注意區(qū)別抽象方法和空方法,如:abstract methodA();定義的是抽象方法,而methodB(){}定義的是空方法。 抽象方法頭最后有分號(hào)??辗椒ㄓ蟹椒w括號(hào),方法頭最后沒有分號(hào)。,最終類、最終屬性、最終方法和終結(jié)器,在類定義頭使

17、用final修飾,聲明該類不能被繼承。如果一個(gè)類被final修飾符所修飾和限定,說明這個(gè)類不可能有子類。如果把一個(gè)應(yīng)用中有繼承關(guān)系的類組織成一棵倒長(zhǎng)的樹,所有類的父類是樹根,每一個(gè)子類是一個(gè)分支,那么聲明為fmal的類就只能是這棵樹上的葉結(jié)點(diǎn),,最終類、最終屬性、最終方法和終結(jié)器,用final修飾符說明常量時(shí),需要注意以下幾點(diǎn):(1)需要說明常量的數(shù)據(jù)類型;(2)需要同時(shí)指出常量的具體取值;(3)因?yàn)樗蓄悓?duì)象的常量成員,其數(shù)值

18、都固定一致,為static。為了節(jié)省空間,常量通常被聲明為static。使用常量好處是使程序更加清晰易讀,維護(hù)起來也更方便。,最終類、最終屬性、最終方法和終結(jié)器,最終方法使用final修飾符,一經(jīng)定義后不能再修改,即不能被子類覆蓋。類似于構(gòu)造函數(shù),終結(jié)器方法不由編程人員顯式調(diào)用執(zhí)行,而是在特定的時(shí)刻一一對(duì)象被回收時(shí)刻由系統(tǒng)自動(dòng)執(zhí)行的。,其它修飾符及修飾符的混合使用,(1)abstract不能與final并列修飾同一個(gè)類;(2)ab

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論