1樓:匿名使用者
程序導向和麵向物件。
簡述物件導向方法的優點
2樓:it雜燴鋪
(1)採用全新的物件導向思想,使得系統的描述及資訊模型的表示與客觀實體相對應,符合人類的思維習慣,有 利於系統開發過程中使用者與開發人員的交流和溝通,縮短開發週期,提高系統開發的正確性和效率;
(2)系統開發的基礎統一於物件之上,各個階段工作過渡平滑,避免了許多中間轉換環節和多餘勞動,加快了系 統開發的程序;
(3)物件導向技術中的各種概念和特性,如繼承,封裝, 多型性及訊息傳遞機制等,使軟體的一致性,模組的獨立性,程式的共享和可重用性大大提高,也與分散式處理,多機系統及網路通訊等發展趨勢相吻合,具有廣闊的應用前景;
(4)許多新型的軟體中,採用或包含了物件導向的概念和有關技術,為物件導向的開發方法的應用提供了強大的技術支援。
物件導向的三大特性
3樓:佩奇愛學習
物件導向的三大特徵:繼承、封裝、多型。
1、封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行隱藏。
2、繼承,是實現複用性的一個重要手段,可以在不重複編寫以實現的功能的前提下,對功能進行復用和拓展,繼承概念的實現方式有二類:實現繼承與介面繼承。
實現繼承是指直接使用基類的屬性和方法而無需額外編碼的能力。
介面繼承是指僅使用屬性和方法的名稱、但是子類必須提供實現的能力。
3、多型指同一個實體同時具有多種形式。同字面意思,及一個物件在不同的情況下會有不同的體現。
繼承中的關鍵字:extends、super 、this、final
1、extends:單一繼承,可以讓一個類繼承一個父類。
2、super:我們可以通過super關鍵字來實現對父類成員的訪問,用來引用當前物件的父類。
3、this:指向自己的引用。引用自身的屬性和方法。
4、final:當用final修飾類時,是把類定義為不能繼承的,即最終類。
用於修飾方法時,該方法不能被子類重寫:
用於修飾屬性時,和static一起使用,表明為一個常量,各類的所有物件共用一個值。
物件導向的特點
4樓:雲霞漸散
1.資訊隱藏和封裝特性:
封裝是把過程和資料包圍起來,對資料的訪問只能通過已定義的介面。物件導向計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的物件,這些物件通過一個受保護的介面訪問其他物件。
2.繼承:繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。
物件的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那裡繼承方法和例項變數,並且類可以修改或增加新的方法使之更適合特殊的需要。
3.組合特性。
組合用於表示類的「整體/部分」關係。例如主機、顯示器、鍵盤、滑鼠組合成一臺計算機。
4.動態特性。
(1)抽象:
抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是資料抽象。
(2)多型性:
多型性是指允許不同類的物件對同一訊息作出響應。多型性包括引數化多型性和包含多型性。多型性語言具有靈活、抽象、行為共享、**共享的優勢,很好的解決了應用程式函式同名問題。
此外,推薦一本書,林銳的《高質量程式設計指南——c++/c語言》,第四章將這方面介紹的栩栩如生。
舉個例子來區分程序導向和麵向物件 20
5樓:匿名使用者
首先,我認為從純**的角度,程序導向與物件導向的區別只是**的組織方式有些變化而已。
c++與c的區別可以僅僅理解為 把struct變為了class,然後再加入了些成員方法……
就以你要求的學生成績管理系統為例,首先資料庫方面,通常就是三個表,學生、課程、成績,其中成績表中包含學生id, 課程id,以及分數等。
那麼以程序導向的設計思路來看,增刪改查的操作就是4個獨立的功能,分別用一個過程來實現,如:
錄入一個學生的某門課程的成績,需要引數:學生id,課程id,分數,操作就是「在資料庫的成績表中插入一條記錄」
查詢一個學生的所有課程成績,需要引數:學生id,操作是「在資料庫成績表中查詢指定學生id的所有記錄」
查詢一個課程的所有學生成績,需要引數:課程id,操作是「在資料庫成績表中查詢指定課程id的所有記錄」
如果用物件導向的設計思路,那麼首先分析物件,通常與資料庫表對應:
學生物件:屬性包括學生姓名、學號。
課程物件:屬性包括課程名稱。
然後在考慮成員方法時根據實際功能來看,錄入一個學生的某門課程的成績,可以放在學生物件中,即有方法叫「為當前學生錄入成績」,引數為課程、分數,實現就是在成績表中插入一條記錄。
(這個也能放在課程物件中,引數為學生、分數。不建議放在成績物件中)
查詢一個學生的所有課程成績,放在學生物件中,操作是「在資料庫成績表中查詢當前學生id的所有記錄」
查詢一個課程的所有學生成績,放在課程物件中,操作是「在資料庫成績表中查詢當前課程id的所有記錄」
從上面可以看出,實際上各個成員方法的實現是一樣的,只是放到不同的物件中去了,因此通常對於簡單的資料庫操作,用傳統的c++來寫**,很難體現物件導向的優勢(很遺憾,大多數應用就是這個樣子的)
不過近年來出現的orm,使得運算元據庫就像操作物件屬性一樣,如查詢學生的成績變成了訪問學生物件的成績屬性等等,使**看上去更加物件導向。
6樓:匿名使用者
以學生為物件說明,下面是偽**,可能不太恰當,幫助理解。
物件導向,,認為物件具備這些屬性,具備這些操作(功能),相對獨立。
class student
面相過程,結構只是一個資料集合,不具備操作,結構的操作需要呼叫其他函式,或者直接寫**操作。
typedef struct studentstudent,*pstudent
void setname(pstudent s,name n)
「物件導向」的優缺點是,物件導向的優缺點
優點 1 易維護 採用物件導向思想設計的結構,可讀性高,由於繼承的存在,即使改變需求,那麼維護也只是在區域性模組,所以維護起來是非常方便和較低成本的。2 質量高 在設計時,可重用現有的,在以前的專案的領域中已被測試過的類使系統滿足業務需求並具有較高的質量。3 效率高 在軟體開發時,根據設計的需要對現...
物件導向的程式語言有哪些,物件導向程式設計語言有哪些?
物件導向程式設計語言,有很多,如 visual baisic,visual c visual foxpro等。這個我也不知道,我不是專業人士,可以向專業人士諮詢一下了解一下具體情況 第一個物件導向的程式設計語言是什麼?simula 67語言 以下資料來自危機百科,希望對你有些幫助 電腦科學中物件和例...
物件導向程式設計中物件指的是什麼
程序導向 將所做事情的 步驟一步一步的分析並實現。物件導向 描述某一個事物做某件專事情的屬行為。兩者區別 前者主要以步驟來劃分問題,後者主要以功能來劃分問題。比如 一個老闆,他直接管理的是每個部門經理或負責人,如,人力部 產品部 市場部等。至於,各部門內部具體工作事項,由各自負責人去安排就行了。這就...