版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第2章章 程序設計基礎程序設計基礎知識類型:理論知識類型:理論學時:學時:4學時學時面向對象的語言面向對象的語言l出發(fā)點:出發(fā)點:l更直接地描述客觀世界中存在的事物更直接地描述客觀世界中存在的事物(對象對象)以及它們之間的關系。以及它們之間的關系。l特點:特點:l是高級語言。是高級語言。l將客觀事物看作具有將客觀事物看作具有屬性屬性和和行為行為的對象。的對象。l通過通過抽象抽象找出同一類對象的共同屬性和行為,找出同一類對象的共同屬性和行為,形成形成類類。l通過類的通過類的繼承繼承與與多態(tài)多態(tài)實現(xiàn)代碼重用實現(xiàn)代碼重用l優(yōu)點:優(yōu)點:使程序能夠比較直接地反問題域的本來面使程序能夠比較直接地反問題域
2、的本來面目,軟件開發(fā)人員能夠利用人類認識事物所采目,軟件開發(fā)人員能夠利用人類認識事物所采用的一般思維方法來進行軟件開發(fā)。用的一般思維方法來進行軟件開發(fā)。面向對象的語言面向對象的語言程序設計方法的發(fā)展歷程程序設計方法的發(fā)展歷程 面向面向過程過程的程序設計方法的程序設計方法l程序的目的:用于數(shù)學計算程序的目的:用于數(shù)學計算l主要工作:設計求解問題的過程主要工作:設計求解問題的過程l缺點:對于龐大、復雜的程序難以開發(fā)和缺點:對于龐大、復雜的程序難以開發(fā)和維護維護程序設計方法的發(fā)展歷程程序設計方法的發(fā)展歷程面向面向過程過程的的結構化結構化程序設計方法程序設計方法l設計思路設計思路l自頂向下、逐步求精。
3、采用模塊分解與功能抽象,自頂自頂向下、逐步求精。采用模塊分解與功能抽象,自頂向下、分而治之。向下、分而治之。l程序結構:程序結構:l按功能劃分為若干個基本模塊,形成一個樹狀結構。按功能劃分為若干個基本模塊,形成一個樹狀結構。l各模塊間的關系盡可能簡單,功能上相對獨立;每一模各模塊間的關系盡可能簡單,功能上相對獨立;每一模塊內部均是由塊內部均是由順序順序、選擇選擇和和循環(huán)循環(huán)三種基本結構組成。三種基本結構組成。l其模塊化實現(xiàn)的具體方法是使用子程序。其模塊化實現(xiàn)的具體方法是使用子程序。程序設計方法的發(fā)展歷程程序設計方法的發(fā)展歷程面向面向過程過程的的結構化結構化程序設計方法程序設計方法l優(yōu)點:優(yōu)點:
4、有效地將一個較復雜的程序系統(tǒng)設計任務分解成有效地將一個較復雜的程序系統(tǒng)設計任務分解成許多易于控制和處理的子任務,便于開發(fā)和維護。許多易于控制和處理的子任務,便于開發(fā)和維護。程序設計方法的發(fā)展歷程程序設計方法的發(fā)展歷程 面向面向過程過程的的結構化結構化程序設計方法程序設計方法l缺點:可重用性差、數(shù)據(jù)安全性差、難以開發(fā)缺點:可重用性差、數(shù)據(jù)安全性差、難以開發(fā)大大型型軟件和軟件和圖形界面圖形界面的應用軟件的應用軟件l把數(shù)據(jù)和處理數(shù)據(jù)的過程分離為相互獨立的實體。把數(shù)據(jù)和處理數(shù)據(jù)的過程分離為相互獨立的實體。l當數(shù)據(jù)結構改變時,所有相關的處理過程都要進行相當數(shù)據(jù)結構改變時,所有相關的處理過程都要進行相應的
5、修改。應的修改。l每一種相對于老問題的新方法都要帶來額外的開銷。每一種相對于老問題的新方法都要帶來額外的開銷。l圖形用戶界面的應用程序,很難用過程來描述和實現(xiàn),圖形用戶界面的應用程序,很難用過程來描述和實現(xiàn),開發(fā)和維護也都很困難。開發(fā)和維護也都很困難。程序設計方法的發(fā)展歷程程序設計方法的發(fā)展歷程 面向面向對象對象的方法的方法l將將數(shù)據(jù)數(shù)據(jù)及對數(shù)據(jù)的及對數(shù)據(jù)的操作方法操作方法封裝封裝在一起,作為一在一起,作為一個相互依存、不可分離的整體個相互依存、不可分離的整體對象對象。l對同類型對象抽象出其共性,形成對同類型對象抽象出其共性,形成類類。l類通過一個簡單的類通過一個簡單的外部接口外部接口,與外界
6、發(fā)生關系。,與外界發(fā)生關系。l對象與對象之間通過對象與對象之間通過消息消息進行通訊。進行通訊。程序設計方法的發(fā)展歷程程序設計方法的發(fā)展歷程 面向面向對象對象的方法的方法l優(yōu)點:優(yōu)點:l程序模塊間的關系更為簡單,程序模塊的獨立性、程序模塊間的關系更為簡單,程序模塊的獨立性、數(shù)據(jù)的安全性就有了良好的保障。數(shù)據(jù)的安全性就有了良好的保障。l通過通過繼承繼承與與多態(tài)性多態(tài)性,可以大大提高程序的,可以大大提高程序的可重用性可重用性,使得軟件的使得軟件的開發(fā)開發(fā)和和維護維護都更為方便。都更為方便。面向對象的基本概念面向對象的基本概念 對象對象l一般意義上的對象:一般意義上的對象:l是現(xiàn)實世界中一個實際存在的
7、事物。是現(xiàn)實世界中一個實際存在的事物。l可以是可以是有形有形的(比如一輛汽車),也可以是的(比如一輛汽車),也可以是無形無形的的(比如一項計劃)。(比如一項計劃)。l對象有如下特性:對象有如下特性: :有一個名字以區(qū)別于其它對象:有一個名字以區(qū)別于其它對象 :有一個狀態(tài)用來描述它的某些特征:有一個狀態(tài)用來描述它的某些特征 :有一組操作,每個操作決定了對象的:有一組操作,每個操作決定了對象的一種功能或行為一種功能或行為 :對象的操作分為兩類:自身承受的操:對象的操作分為兩類:自身承受的操作、施加于其它對象的操作作、施加于其它對象的操作l是構成世界的一個是構成世界的一個獨立單位獨立單位,具有:,具
8、有:l靜態(tài)特征:可以用某種數(shù)據(jù)來描述靜態(tài)特征:可以用某種數(shù)據(jù)來描述l動態(tài)特征:對象所表現(xiàn)的行為或具有的功能動態(tài)特征:對象所表現(xiàn)的行為或具有的功能有一個人名字叫胡哥,性別男,身高有一個人名字叫胡哥,性別男,身高1.80m,體重,體重68kg,可以修電器,可以教計算機課,描述該對象,可以修電器,可以教計算機課,描述該對象如下:如下:對象的對象的靜態(tài)特征靜態(tài)特征:性別:男性別:男身高:身高:1.80m體重:體重:68kg對象的對象的動態(tài)特征動態(tài)特征:回答身高回答身高回答體重回答體重回答性別回答性別修理電器修理電器教計算機課教計算機課面向對象的基本概念面向對象的基本概念 對象對象l面向對象方法中的對象
9、:面向對象方法中的對象:l是系統(tǒng)中用來描述客觀事物的一個是系統(tǒng)中用來描述客觀事物的一個實體實體,它是用來,它是用來構成系統(tǒng)的一個基本單位。對象由一組構成系統(tǒng)的一個基本單位。對象由一組屬性屬性和一組和一組行為行為構成。構成。l屬性屬性:用來描述對象:用來描述對象靜態(tài)特征靜態(tài)特征的數(shù)據(jù)項。的數(shù)據(jù)項。l行為行為:用來描述對象:用來描述對象動態(tài)特征動態(tài)特征的操作序列。的操作序列。面向對象的基本概念面向對象的基本概念 類類l分類分類人類通常的思維方法人類通常的思維方法l分類所依據(jù)的原則分類所依據(jù)的原則抽象抽象l忽略事物的非本質特征,只注意那些與當前目標有忽略事物的非本質特征,只注意那些與當前目標有關的本
10、質特征,從而找出事物的共性,關的本質特征,從而找出事物的共性,把具有共同把具有共同性質的事物劃分為一類性質的事物劃分為一類,得出一個抽象的概念。,得出一個抽象的概念。l例如,石頭、樹木、汽車、房屋等都是人們在長期例如,石頭、樹木、汽車、房屋等都是人們在長期的生產(chǎn)和生活實踐中抽象出的概念。的生產(chǎn)和生活實踐中抽象出的概念。面向對象的基本概念面向對象的基本概念 類類l面向對象方法中的面向對象方法中的類類l具有相同具有相同屬性和行為屬性和行為的的一組對象的集合一組對象的集合l為屬于該類的全部對象提供了抽象的描述,包為屬于該類的全部對象提供了抽象的描述,包括屬性和行為兩個主要部分。括屬性和行為兩個主要部
11、分。l類與對象的關系:類與對象的關系:猶如猶如模具模具與與鑄件鑄件之間的關系,一個屬于某類的之間的關系,一個屬于某類的對象對象稱為該類的一個稱為該類的一個實例實例。抽象抽象抽象是對具體對象(問題)進行概括,抽出這抽象是對具體對象(問題)進行概括,抽出這一類對象的公共性質并加以描述的過程。一類對象的公共性質并加以描述的過程。l先注意問題的本質及描述,其次是實現(xiàn)過程或細節(jié)。先注意問題的本質及描述,其次是實現(xiàn)過程或細節(jié)。l數(shù)據(jù)抽象數(shù)據(jù)抽象:描述某類對象的屬性或狀態(tài)(對象相互區(qū):描述某類對象的屬性或狀態(tài)(對象相互區(qū)別的物理量)。別的物理量)。l代碼抽象代碼抽象:描述某類對象的共有的行為特征或具有的:描
12、述某類對象的共有的行為特征或具有的功能。功能。l抽象的實現(xiàn):抽象的實現(xiàn):通過類的聲明通過類的聲明。抽象實例抽象實例鐘表鐘表l數(shù)據(jù)抽象:數(shù)據(jù)抽象:int Hour, int Minute, int Secondl代碼抽象:代碼抽象:SetTime(), ShowTime()抽象實例抽象實例鐘表鐘表類類class Clock public: void SetTime(int NewH, int NewM, int NewS); void ShowTime(); private: int Hour,Minute,Second;抽象實例抽象實例人人l數(shù)據(jù)抽象:數(shù)據(jù)抽象:char *name,char
13、*gender,int age,int idl代碼抽象:代碼抽象:生物屬性角度:生物屬性角度:GetCloth(), Eat(), Step(),社會屬性角度:社會屬性角度:Work(), Promote() ,l類類是具有相同屬性和行為的一組是具有相同屬性和行為的一組對象的對象的集合集合,它為屬于該類的全部對象提供了,它為屬于該類的全部對象提供了統(tǒng)一的抽象描述統(tǒng)一的抽象描述,其內部包括,其內部包括屬性屬性和和行行為為兩個主要部分。兩個主要部分。l利用類可以實現(xiàn)數(shù)據(jù)的封裝、隱藏、繼利用類可以實現(xiàn)數(shù)據(jù)的封裝、隱藏、繼承與派生。承與派生。c+中的類中的類類類和和對對象象類的聲明形式類的聲明形式 類
14、類是一種用戶自定義類型,聲明形式:是一種用戶自定義類型,聲明形式:class 類名稱類名稱 public: 公有成員公有成員(外部接口)(外部接口) private: 私有成員私有成員 protected: 保護型成員保護型成員類類和和對對象象類的成員類的成員class Clock public: void SetTime(int NewH, int NewM, int NewS); void ShowTime(); private: int Hour, Minute, Second;成員數(shù)據(jù)成員數(shù)據(jù)成員函數(shù)成員函數(shù)類類和和對對象象void Clock : SetTime(int NewH,
15、int NewM, int NewS) Hour=NewH; Minute=NewM; Second=NewS;void Clock : ShowTime() printf(“%d:%d:%d”,Hour,Minute,Second);19類類和和對對象象類類和和對對象象成員函數(shù)成員函數(shù)l在類中說明原形,可以在類中說明原形,可以在類外在類外給出函數(shù)體實現(xiàn),給出函數(shù)體實現(xiàn),并在函數(shù)名前使用類名加以限定。也可以直接并在函數(shù)名前使用類名加以限定。也可以直接在類中在類中給出函數(shù)體,形成內聯(lián)成員函數(shù)。給出函數(shù)體,形成內聯(lián)成員函數(shù)。l允許聲明重載函數(shù)和帶默認形參值的函數(shù)允許聲明重載函數(shù)和帶默認形參值的函數(shù)
16、成員數(shù)據(jù)成員數(shù)據(jù)l與一般的變量聲明相同,但需要將它放在類的聲與一般的變量聲明相同,但需要將它放在類的聲明體中。明體中。對象對象l類的對象是該類的某一特定實體,即類的對象是該類的某一特定實體,即類類類型類型的的變量變量。l聲明形式:聲明形式: 類名類名 對象名;對象名;l例:例: Clock myClock;類類和和對對象象類中成員的訪問方式類中成員的訪問方式l類中成員互訪類中成員互訪l直接使用成員名直接使用成員名l類外訪問類外訪問l使用使用“對象名對象名.成員名成員名”方式訪問方式訪問 public 屬屬性的成員性的成員類類和和對對象象類的應用舉例類的應用舉例#includeclass Clo
17、ck ./類的聲明略類的聲明略/.類的實現(xiàn)略類的實現(xiàn)略int main() Clock myClock; myClock.SetTime(8,30,30); myClock.ShowTime();類類和和對對象象面向對象的基本概念面向對象的基本概念 封裝封裝l將抽象出的數(shù)據(jù)成員、代碼成員相結合,將它將抽象出的數(shù)據(jù)成員、代碼成員相結合,將它們視為一個整體。們視為一個整體。l目的是曾強安全性和簡化編程,使用者不必目的是曾強安全性和簡化編程,使用者不必了解具體的實現(xiàn)細節(jié),而只需要通過了解具體的實現(xiàn)細節(jié),而只需要通過外部接外部接口口,以特定的訪問權限以特定的訪問權限,來使用類的成員。,來使用類的成員。
18、l實現(xiàn)封裝:類聲明中的實現(xiàn)封裝:類聲明中的 l封裝封裝實例:實例:class Clock public: void SetTime(int NewH,int NewM, int NewS); void ShowTime(); private: int Hour,Minute,Second;邊界邊界特定的訪問權限特定的訪問權限外部接口外部接口面向對象的基本概念面向對象的基本概念 繼承繼承與派生與派生l繼承對于繼承對于軟件復用軟件復用有著重要意義,是面向對象技有著重要意義,是面向對象技術能夠提高軟件開發(fā)效率的重要原因之一。術能夠提高軟件開發(fā)效率的重要原因之一。l定義:定義:特殊類特殊類的對象擁有其
19、的對象擁有其一般類一般類的全部屬性與的全部屬性與服務,稱作特殊類對一般類的服務,稱作特殊類對一般類的繼承繼承。l例如:將輪船作為一個一般類,客輪便是一個特殊類。例如:將輪船作為一個一般類,客輪便是一個特殊類。l保持已有類的特性而構造新類的過程稱為保持已有類的特性而構造新類的過程稱為繼繼承。承。l在已有類的基礎上新增自己的特性而產(chǎn)生新在已有類的基礎上新增自己的特性而產(chǎn)生新類的過程稱為類的過程稱為派生派生。l被繼承的已有類稱為被繼承的已有類稱為基類(或父類基類(或父類)。)。l派生出的新類稱為派生出的新類稱為派生類派生類。繼承與派生問題舉例繼承與派生問題舉例工具車轎車面包車小汽車卡車旅行車汽車汽車
20、交通工具交通工具繼承與派生問題舉例繼承與派生問題舉例猴猴 子子獅 子虎獵 豹貓貓鳥鳥動動 物物繼承與派生問題舉例繼承與派生問題舉例圓圓矩矩形形幾幾何何 形形 狀狀繼承與派生問題舉例繼承與派生問題舉例兼職技術人員銷售經(jīng)理管理人員銷售人員雇員多繼承、單繼承多繼承、單繼承繼承與派生的目的繼承與派生的目的l繼承的目的:實現(xiàn)繼承的目的:實現(xiàn)代碼重用代碼重用。l派生的目的:當新的問題出現(xiàn),原有程序無法派生的目的:當新的問題出現(xiàn),原有程序無法解決(或不能完全解決)時,需要對原有程序解決(或不能完全解決)時,需要對原有程序進行改造。進行改造。派生類的聲明派生類的聲明class 派生類名:派生類名:繼承方式繼承
21、方式 基類名基類名 成員聲明;成員聲明;Public:Protected:Private:繼承方式:繼承方式: 公有繼承舉例公有繼承舉例class Point /基類基類Point類的聲明類的聲明public:/公有函數(shù)成員公有函數(shù)成員void InitP(float xx=0, float yy=0) X=xx;Y=yy;void Move(float xOff, float yOff) X+=xOff;Y+=yOff;float GetX() return X;float GetY() return Y;private:/私有數(shù)據(jù)成員私有數(shù)據(jù)成員float X,Y;動態(tài)特征:動態(tài)特征:In
22、itP(x,y)初始化一個點初始化一個點Move(x,y)移動該點移動該點GetX()得到該點得到該點X坐標值坐標值GetY()得到該點得到該點Y坐標值坐標值Point類:類:靜態(tài)特征:靜態(tài)特征:x,yclass Rectangle: public Point /派生類聲明派生類聲明public:/新增公有函數(shù)成員新增公有函數(shù)成員void InitR(float x, float y, float w, float h)InitP(x,y);W=w;H=h;/調用基類公有成員函數(shù)調用基類公有成員函數(shù)float GetH() return H;float GetW() return W; pri
23、vate:/新增私有數(shù)據(jù)成員新增私有數(shù)據(jù)成員float W,H;39動態(tài)特征:動態(tài)特征:InitR(x,y,w,h)初始化初始化GetH()得到矩形的高得到矩形的高GetW()得到矩形的寬得到矩形的寬Rectanglet類:類:靜態(tài)特征:靜態(tài)特征:W,HMove(x,y)移動該點移動該點GetX()得到該點得到該點X坐標值坐標值GetY()得到該點得到該點Y坐標值坐標值Point類:類:#include#includeint main() Rectangle rect;rect.InitR(2,3,20,10); /通過派生類對象訪問基類公有成員通過派生類對象訪問基類公有成員rect.Move
24、(3,2); printf(“%f,%f,%f,%f”,rect.GetX(), rect.GetY(), rect.GetH(), rect.GetW();return 0;40面向對象的基本概念面向對象的基本概念 多態(tài)性多態(tài)性l多態(tài)是指在多態(tài)是指在一般類一般類中定義的屬性或行為,被中定義的屬性或行為,被特特殊類殊類繼承繼承之后,可以之后,可以具有不同的具有不同的數(shù)據(jù)類型或表數(shù)據(jù)類型或表現(xiàn)出現(xiàn)出不同的行為不同的行為。這使得同一個屬性或行為在。這使得同一個屬性或行為在一般類及其各個特殊類中具有不同的語義。一般類及其各個特殊類中具有不同的語義。l例如:例如:數(shù)的加法數(shù)的加法-實數(shù)的加法實數(shù)的加法
25、 -復數(shù)的加法復數(shù)的加法l多態(tài):同一名稱,不同的功能實現(xiàn)方式。多態(tài):同一名稱,不同的功能實現(xiàn)方式。l目的:達到行為標識統(tǒng)一,減少程序中標目的:達到行為標識統(tǒng)一,減少程序中標識符的個數(shù)。識符的個數(shù)。l實現(xiàn):重載函數(shù)和虛函數(shù)實現(xiàn):重載函數(shù)和虛函數(shù)總結總結l面向對象程序設計(英語:面向對象程序設計(英語:Object Oriented Programming,縮寫:,縮寫:OOP),指一種程序),指一種程序設計范型,同時也是一種程序開發(fā)的設計范型,同時也是一種程序開發(fā)的方法論方法論。它將它將對象對象作為程序的作為程序的,將程序和數(shù)據(jù),將程序和數(shù)據(jù)封裝封裝其中,以提高軟件的重用性、靈活性和擴其中,以提
26、高軟件的重用性、靈活性和擴展性。展性。 類l類(類(Class)定義了一件事物的抽象特點。通)定義了一件事物的抽象特點。通常來說,類定義了事物的屬性和它可以做到的常來說,類定義了事物的屬性和它可以做到的(它的行為)。(它的行為)。l類可以為程序提供模版和結構。類可以為程序提供模版和結構。l一個類的方法和屬性被稱為一個類的方法和屬性被稱為“成員成員”。類狗狗 私有成員私有成員: 體重體重 毛皮顏色毛皮顏色 . 公有成員公有成員: 吠叫吠叫() . 對象l對象(對象(Object)是類的實例。)是類的實例。 類狗類狗 萊絲;萊絲; 萊絲萊絲.毛皮顏色毛皮顏色=棕白色棕白色 萊絲萊絲.吠叫吠叫();
27、 我們無法讓狗這個類去吠叫,但是我們我們無法讓狗這個類去吠叫,但是我們可以讓對象可以讓對象萊絲萊絲去吠叫,正如狗可以去吠叫,正如狗可以吠叫,但沒有具體的狗就無法吠叫。吠叫,但沒有具體的狗就無法吠叫。方法(行為)l方法(方法(Method)是一個類能做的事情,但方法并沒)是一個類能做的事情,但方法并沒有去做這件事。有去做這件事。l作為一條狗,萊絲是會吠叫的,因此作為一條狗,萊絲是會吠叫的,因此“吠叫吠叫()”就是它的一個就是它的一個方法。與此同時,它可能還會有其它方法,例如方法。與此同時,它可能還會有其它方法,例如“坐下坐下()”,或者或者“吃吃()”。 對一個具體對象的方法進行調用并不影響其對
28、一個具體對象的方法進行調用并不影響其它對象,正如所有的狗都會叫,但是你讓一條狗叫不代表所它對象,正如所有的狗都會叫,但是你讓一條狗叫不代表所有的狗都叫。有的狗都叫。 l類狗類狗 萊絲,泰爾;萊絲,泰爾; 萊絲萊絲.吠叫吠叫(); 則泰爾是不會吠叫的,因為這里的吠叫只是對對象則泰爾是不會吠叫的,因為這里的吠叫只是對對象萊絲萊絲進進行的。行的。封裝性l具備封裝性(具備封裝性(Encapsulation)的面向對象程序設計隱藏了某)的面向對象程序設計隱藏了某一方法的具體執(zhí)行步驟,取而代之的是通過消息傳遞機制傳送一方法的具體執(zhí)行步驟,取而代之的是通過消息傳遞機制傳送消息給它。消息給它。l/* 一個面向
29、過程的程序會這樣寫:一個面向過程的程序會這樣寫: */ 結構體狗結構體狗 萊絲萊絲 ; 設置音調設置音調(萊絲,萊絲,5); 吸氣吸氣(萊絲萊絲) ; 吐氣吐氣(萊絲萊絲) ;l/* 當狗的吠叫被封裝到類中,任何人都可以簡單地使用:當狗的吠叫被封裝到類中,任何人都可以簡單地使用: */ 類狗類狗 萊絲;萊絲; 萊絲萊絲.吠叫吠叫() ;封裝封裝是通過是通過限制限制只有只有特定類的特定類的可以可以訪問訪問這一這一特特定類的定類的,而它們通常利用,而它們通常利用接口接口實現(xiàn)消息的傳入實現(xiàn)消息的傳入傳出。傳出。class MeiNu /美女類!美女類!. private: int XW; /胸圍胸圍
30、 int YW; /我就不說了噢我就不說了噢 :) int TW; /我還是不說了噢我還是不說了噢 :) ;MeiNu jordan; /now is 喬丹喬丹!jordan.XW = 34;jordan.YW = 24;jordan.TW = 34;繼承性與多態(tài)性繼承性與多態(tài)性l繼承性(繼承性(Inheritance)是指,在某種情況下,)是指,在某種情況下,一個類會有一個類會有“子類子類”。l多態(tài)性(多態(tài)性(Polymorphism)指方法在不同的類)指方法在不同的類中調用可以實現(xiàn)的不同結果。中調用可以實現(xiàn)的不同結果。類狗類狗 萊絲;萊絲;類雞類雞 魯斯特;魯斯特;萊絲萊絲.叫叫();魯斯
31、特魯斯特.叫叫();雞啼雞啼犬吠犬吠消息消息l消息是系統(tǒng)向對象發(fā)出的服務請求,是對象之消息是系統(tǒng)向對象發(fā)出的服務請求,是對象之間的間的通信機制通信機制。提供服務的對象負責消息協(xié)議。提供服務的對象負責消息協(xié)議的格式和消息的接收,請求服務的對象提供輸?shù)母袷胶拖⒌慕邮?,請求服務的對象提供輸入信息,獲取應答消息內容。入信息,獲取應答消息內容。l在面向對象中,消息常常通過在面向對象中,消息常常通過函數(shù)調用函數(shù)調用來實現(xiàn)。來實現(xiàn)。 狀態(tài):胡哥狀態(tài):胡哥 29歲歲 男男 計算機計算機 講師講師 680實例:實例:行為:評職稱行為:評職稱 漲工資漲工資抽象抽象屬性:姓名屬性:姓名 年齡年齡 性別性別 單位單
32、位 職稱職稱 工資工資類:講師類:講師操作:評職稱操作:評職稱 漲工資漲工資數(shù)據(jù)數(shù)據(jù)結構結構方法名方法名方法:評職稱方法:評職稱 步驟步驟 條件條件 漲工資漲工資 公式公式方法體方法體class 講師講師 胡哥胡哥; 胡哥胡哥.評職稱(評職稱(.); 胡哥胡哥.調工資(調工資(.);消息消息補充習題-選擇題1. 下面描述中,符合結構化程序設計風格的是下面描述中,符合結構化程序設計風格的是_。 A. 使用順序、選擇和重復(循環(huán))三種基本控制結構表示使用順序、選擇和重復(循環(huán))三種基本控制結構表示程序的控制邏輯程序的控制邏輯B. 模塊只有一個入口,可以有多個出口模塊只有一個入口,可以有多個出口C.
33、 注重提高程序的執(zhí)行效率注重提高程序的執(zhí)行效率D. 不使用不使用goto語句語句2. 下面概念中,不屬于面向對象方法的是下面概念中,不屬于面向對象方法的是_。A. 對象對象 B. 繼承繼承C. 類類 D. 過程調用過程調用3. 結構化程序設計主要強調的是結構化程序設計主要強調的是_。A. 程序的規(guī)模程序的規(guī)模 B. 程序的易讀性程序的易讀性C. 程序的執(zhí)行效率程序的執(zhí)行效率 D. 程序的可移植性程序的可移植性4. 對建立良好的程序設計風格,下面描述正確的是對建立良好的程序設計風格,下面描述正確的是_。A. 程序應簡單、清晰、可讀性好程序應簡單、清晰、可讀性好B. 符號名的命名要符合語法符號名的
34、命名要符合語法C. 充分考慮程序的執(zhí)行效率充分考慮程序的執(zhí)行效率D. 程序的注釋可有可無程序的注釋可有可無補充習題-選擇題5. 下面對對象概念描述錯誤的是下面對對象概念描述錯誤的是_。 A. 任何對象都必須有繼承性任何對象都必須有繼承性B. 對象是屬性和方法的封裝體對象是屬性和方法的封裝體C. 對象間的通訊靠消息傳遞對象間的通訊靠消息傳遞D. 操作是對象的動態(tài)性屬性操作是對象的動態(tài)性屬性6. 算法一般都可以用哪幾種控制結構組合而成算法一般都可以用哪幾種控制結構組合而成_。 A. 循環(huán)、分支、遞歸循環(huán)、分支、遞歸B. 順序、循環(huán)、嵌套順序、循環(huán)、嵌套C. 循環(huán)、遞歸、選擇循環(huán)、遞歸、選擇D. 順
35、序、選擇、循環(huán)順序、選擇、循環(huán)7. 在面向對象方法中,一個對象請求另一對象為其服務的方在面向對象方法中,一個對象請求另一對象為其服務的方式是通過發(fā)送式是通過發(fā)送_。 A. 調用語句調用語句 B. 命令命令 C. 口令口令 D. 消息消息補充習題-選擇題8. 在設計程序時,應采納的原則之一是在設計程序時,應采納的原則之一是_。 A. 程序結構應有助于讀者理解程序結構應有助于讀者理解B. 不限制不限制goto語句的使用語句的使用C. 減少或取消注解行減少或取消注解行D. 程序越短越好程序越短越好9. 面向對象的設計方法與傳統(tǒng)的的面向過程的方法有本質不同,面向對象的設計方法與傳統(tǒng)的的面向過程的方法有
36、本質不同,它的基本原理是它的基本原理是_。 A. 模擬現(xiàn)實世界中不同事物之間的聯(lián)系模擬現(xiàn)實世界中不同事物之間的聯(lián)系B. 強調模擬現(xiàn)實世界中的算法而不強調概念強調模擬現(xiàn)實世界中的算法而不強調概念C. 使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題D. 鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用實際領域的概念鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用實際領域的概念去思考去思考10采用面向對象技術開發(fā)的應用系統(tǒng)的特點是采用面向對象技術開發(fā)的應用系統(tǒng)的特點是_。 A 重用性更強重用性更強 B 運行速度更快運行速度更快 C 占用存儲量小占用存儲量小 D 維護更復
37、雜維護更復雜補充習題-填空題1結構化程序設計的三種基本邏輯結構為順序、選擇和(結構化程序設計的三種基本邏輯結構為順序、選擇和( )2源程序文檔化要求程序應加注釋。注釋一般分為序言性注釋源程序文檔化要求程序應加注釋。注釋一般分為序言性注釋 和(和( )3在面向對象方法中,信息隱蔽是通過對象的(在面向對象方法中,信息隱蔽是通過對象的( )性來實現(xiàn))性來實現(xiàn)的的.4類是一個支持集成的抽象數(shù)據(jù)類型,而對象是類的(類是一個支持集成的抽象數(shù)據(jù)類型,而對象是類的( )5在面向對象方法中,類之間共享屬性和操作的機制稱為(在面向對象方法中,類之間共享屬性和操作的機制稱為( 6. 結構化程序設計方法的主要原則可以概括為自頂向下、逐步結構化程序設計方法的主要原則可以概括為自頂向下、逐步求精、求精、 ( ) 和限制使用和限制使用goto語句。語句。7. 面向對象的程序設計方法中涉及的對象是系統(tǒng)中用來描述客面向對象的程序設計方法中涉及的對象是系統(tǒng)中用來描述客觀事物的一個(觀事物的一個(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《Unit 4 How Are You》(說課稿)-2024-2025學年陜旅版(三起)(2024)英語三年級上冊
- 第一課 用Python編程 第一課時 說課稿 2024-2025學年新世紀版(2018)初中信息技術八年級上冊
- 鞍山到大連旅游合同
- 《深圳市工程建設監(jiān)理合同》標準合同文本
- 6 將相和 第二課時 說課稿-2024-2025學年語文五年級上冊統(tǒng)編版
- 9 我和我的家 (1)(說課稿)2023-2024學年統(tǒng)編版道德與法治一年級下冊
- 第六單元 識字 大單元說課稿 -2024-2025學年語文一年級上冊統(tǒng)編版
- Unit 4 Plants around us第五課時(說課稿)-2024-2025學年人教PEP版(2024)英語三年級上冊
- 廣告牌位轉讓合同范例
- 抵押借抵押合同范例合同
- 含羞草天氣課件
- 2024年安全生產(chǎn)知識競賽考試題庫及答案(共五套)
- 22《鳥的天堂》課件
- 農(nóng)業(yè)灌溉裝置市場環(huán)境與對策分析
- 新疆烏魯木齊市第十一中學2024-2025學年八年級上學期期中道德與法治試卷
- 2024年江西省高考地理真題(原卷版)
- 部編版小學五年級上冊道法課程綱要(知識清單)
- 經(jīng)濟法學-計分作業(yè)一(第1-4章權重25%)-國開-參考資料
- 山東省臨沂市(2024年-2025年小學四年級語文)人教版期中考試(上學期)試卷及答案
- 護士2024思想?yún)R報5篇
- Unit+10+Lesson+1+How+Closely+Connected+Are+We 高中英語北師大版(2019)選擇性必修第四冊
評論
0/150
提交評論