① 什麼是面向對象的編程方法
面向對象編程(Object Oriented Programming,OOP,面向對象程序設計)是一種計算機編程架構。OOP 的一條基本原則是計算機程序是由單個能夠起到子程序作用的單元或對象組合而成。OOP 達到了軟體工程的三個主要目標:重用性、靈活性和擴展性。為了實現整體運算,每個對象都能夠接收信息、處理數據和向其它對象發送信息。
② 什麼是面向對象的程序設計思想
一種程序設計范型,同時也是一種程序開發的方法。對象指的是類的實例。它將對象作為程序的基本單元,將程序和數據封裝其中,以提高軟體的重用性、靈活性和擴展性。
面向對象程序設計可以看作一種在程序中包含各種獨立而又互相調用的對象的思想,這與傳統的思想剛好相反:傳統的程序設計主張將程序看作一系列函數的集合,或者直接就是一系列對電腦下達的指令。
面向對象程序設計中的每一個對象都應該能夠接受數據、處理數據並將數據傳達給其它對象,因此它們都可以被看作一個小型的「機器」,即對象。
(2)什麼是面向對象的程序設計擴展閱讀
面向對象程序設計的優點:
1、數據抽象的概念可以在保持外部介面不變的情況下改變內部實現,從而減少甚至避免對外界的干擾。
2、通過繼承大幅減少冗餘的代碼,並可以方便地擴展現有代碼,提高編碼效率,也減低了出錯概率,降低軟體維護的難度。
3、結合面向對象分析、面向對象設計,允許將問題域中的對象直接映射到程序中,減少軟體開發過程中中間環節的轉換過程。
4、通過對對象的辨別、劃分可以將軟體系統分割為若干相對為獨立的部分,在一定程度上更便於控制軟體復雜度。
5、以對象為中心的設計可以幫助開發人員從靜態(屬性)和動態(方法)兩個方面把握問題,從而更好地實現系統。
6、通過對象的聚合、聯合可以在保證封裝與抽象的原則下實現對象在內在結構以及外在功能上的擴充,從而實現對象由低到高的升級。
③ 什麼是面向對象的程序設計方法
所有程序語言的最終目的都是提供一種抽象方法一種較有爭議的說法是解決問
題的復雜程度直接取決於抽象的種類及質量這兒的種類是指准備對什麼進行抽象
匯編語言是對基礎機器的少量抽象後來的許多命令式語言如FORTRAN BASIC
和C 是對匯編語言的一種抽象與匯編語言相比這些語言已有了長足的進步但它們的
抽象原理依然要求我們著重考慮計算機的結構而非考慮問題本身的結構在機器模型位
於方案空間與實際解決的問題模型位於問題空間之間程序員必須建立起一種
聯系這個過程要求人們付出較大的精力而且由於它脫離了編程語言本身的范圍造成程
序代碼很難編寫而且要花較大的代價進行維護由此造成的副作用便是一門完善的編程
方法學科
為機器建模的另一個方法是為要解決的問題製作模型對一些早期語言來說如LISP
和APL 它們的做法是從不同的角度觀察世界所有問題都歸納為列表或所
有問題都歸納為演算法PROLOG 則將所有問題都歸納為決策鏈對於這些語言我們認為
它們一部分是面向基於強制的編程另一部分則是專為處理圖形符號設計的每種方法
都有自己特殊的用途適合解決某一類的問題但只要超出了它們力所能及的范圍就會顯得非常笨拙
面向對象的程序設計則在此基礎上跨出了一大步程序員可利用一些工具表達問題空間
內的各種元素由於這種表達非常普遍所以不必受限於特定類型的問題我們將問題空
間中的元素以及它們在方案空間的表示物稱作對象Object 當然還有一些在問題空
間沒有對應體的其他對象通過添加新的對象類型程序可進行靈活的調整以便與特定的
問題配合所以在閱讀方案的描述代碼時會讀到對問題進行表達的話語與我們以前見過
的相比這無疑是一種更加靈活更加強大的語言抽象方法總之OOP 允許我們根據問
題來描述問題而不是根據方案然而仍有一個聯系途徑回到計算機每個對象都類似一
台小計算機它們有自己的狀態而且可要求它們進行特定的操作與現實世界的對象
或者物體相比編程對象與它們也存在共通的地方它們都有自己的特徵和行為
④ 什麼是面向對象程序編程
面向對象是一種對現實世界理解和抽象的方法,是計算機編程技術[1]發展到一定階段後的產物。早期的計算機編程是基於面向過程的方法,例如實現算術運算1+1+2 = 4,通過設計一個演算法就可以解決當時的問題。隨著計算機技術的不斷提高,計算機被用於解決越來越復雜的問題。一切事物皆對象,通過面向對象的方式,將現實世界的事物抽象成對象,現實世界中的關系抽象成類、繼承,幫助人們實現對現實世界的抽象與數字建模。通過面向對象的方法,更利於用人理解的方式對復雜系統進行分析、設計與編程。同時,面向對象能有效提高編程的效率,通過封裝技術,消息機制可以像搭積木的一樣快速開發出一個全新的系統。面向對象是指一種程序設計范型,同時也是一種程序開發的方法。對象指的是類的集合。它將對象作為程序的基本單元,將程序和數據封裝其中,以提高軟體的重用性、靈活性和擴展性。
首先根據客戶需求抽象出業務對象;然後對需求進行合理分層,構建相對獨立的業務模塊;之後設計業務邏輯,利用多態、繼承、封裝、抽象的編程思想,實現業務需求;最後通過整合各模塊,達到高內聚、低耦合的效果,從而滿足客戶要求。
面向對象的概念具體要求的確定,各自有各自的理解。
⑤ 什麼是面向對象的編程語言啊
面向對象語言(Object-Oriented Language)是一類以對象作為基本程序結構單位的程序設計語言。指用於描述的設計是以對象為核心,而對象是程序運行時刻的基本成分。
其特點如下:
(1)任何事物都是對象。
(2)運行期的基本實體,也是一個包括數據和操作這些數據的代碼的邏輯實體。
(3)每個對象可以有自己的內存空間包含其他對象。
(4)類是具有相同類型的對象的抽象。一個對象所包含的所有數據和代碼可以通過類來構造。
(5)程序由一系列的對象組合,它們通過發送消息告訴彼此做什麼。
(6)封裝是將數據和代碼捆綁到一起,避免了外界的干擾和不確定性。
(7)一個特定類型的所有對象都可以接受同樣的消息。
(8)繼承是讓某個類型的對象獲得另一個類型的對象的特徵。
(9)每一個對象都有類型。
(10)多態是指不同事物具有不同表現形式的能力。
注意事項:
Java是一門面向對象編程語言,具有功能強大和簡單易用兩個特徵。
C語言是面向過程的程序設計語言,與C++,Java等面向對象的編程語言有所不同。
VB是一種面向對象的可視化程序設計語言,採取了事件驅動的編程機制。
(5)什麼是面向對象的程序設計擴展閱讀:
面向對象編程的優點:
易維護 :可讀性高,由於繼承的存在,即使改變需求,那麼維護也只是在局部模塊。
易擴展 :通過繼承,我們可以大幅減少多餘的代碼,並擴展現有代碼的用途;
模塊化 :封裝可以定義對象的屬性和方法的訪問級別,通過不同的訪問修飾符對外暴露安全的介面,防止內部數據在不安全的情況下被修改。
方便建模:很多時候可以使用現實生活中對象的概念抽象後稍作修改來進行建模,極大方便了建模的過程。
⑥ 什麼是面向對象的程序設計
什麼是面向對象的設計思想?也許有不少初學者對這個概念還有許多不明白的地方,
特別是這個處於新舊思想交替的時代,許多人剛剛學完現在看來是快要淘汰的只是面向過程的
語言。他們的腦子還沒有脫離面向過程思想的束縛,抬頭卻發現,「面向對象」早已經流行
開來,這個陌生的詞漫天飛舞。隨便拿起一本流行計算機技術書籍,那裡會沒有「面向對象」
的字眼!於是心中便惶惑了:什麼叫「面向對象」?不感興趣者,一帶而過;有志於在這方
面發展的,匆忙找到一本有關書籍來啃究竟什麼是「面向對象」。然而,要突破思想的束縛,
說難也不難,說到要深刻認識卻也不容易。筆者在做了一些輕量級的工作後,頗以為有點心
得,不怕貽笑大方,寫出已供廣大同行批評指正。
「對象(Object)」一詞,早在十九世紀就有現象學大師胡塞爾提出並定義。對象是世
界中的物體在人腦中的映象,是人的意識之所以為意識的反映,是做為一種概念而存在的
先念的東西,它還包括了人的意願。舉例說明吧。當我們認識到一種新的物體,它叫樹,於
是在我們的意識當中就形成了樹的概念。這個概念會一直存在於我們的思維當中,並不會因
為這棵樹被砍掉而消失。這個概念就是現實世界當中的物體在我們意識當中的映象。我們對
它還可以有我們自己的意願,雖然我們並不需要付諸實現——只要在你的腦中想著把這棵樹
砍掉做成桌子、凳子等——我們就把它叫做意向。於是,對象就是客觀世界中物體在人腦中
的映象及人的意向。只要這個對象存在我們的思維意識當中,我們就可以籍此判斷同類的東
西。譬如,當我們看到另外一棵樹是,並不會因為所見的第一棵樹不在了失去了供參照的模
板而不認識這棵樹了。當我們接觸某些新事物時,我們的意識就會為這些事物確立一個對象
。當然這個過程是怎麼形成的,那就不是我們所能討論的問題了。
上面所說的對象研究的是一般意義上的問題,因而它可以外推到一切事物。我們經常
所說的「對象」,一班指的是解決信息領域內所遇到問題的方法。特別是應用軟體技術來解
決問題的方法。如我們經常碰到的面向對象的編程(Object-Oriented Programming)、面向對
象的分析(Object-Oriented Analysis)、面向對象的設計(Object-Oriented Design)等。應用
前面所介紹的關於對象的概念,可以對這些問題做進一步的分析。在面對較復雜的系統,我
們可以將它作為一個對象來進行分析。一個系統(解決某個問題的全套解決方案)作為一個
對象,可以由多個部分組成。同樣,這個對象也可以由多個對象組成。對於同類的事物,可
以由一個對象來表示。這樣做的益處是顯而易見的,它靈活而高效,可以大大減輕設計人員
的工作量,簡化實際的模型。舉一個例子。在關系型資料庫的設計當中,我們可以把一個元
組當作對象,給它定義一組操作方法。這些方法將適用於所有元組,從而我們不必在更大的
范圍內去細致的考慮不同的元組(如判斷一個元素是否合法):因為它們有一組公共的面向
本身的方法,它們「自己」可以「解決」自己的問題。更上一層的對象可以是一個表、視圖
等。表對象在元組對象的基礎上又有它們自己的方法,如增加、刪除等。從這個層面上講,
它也只需要做「自己」的事情,因為有元組對象的支持,它無須去考慮像元素是否合法這類
的事情。甚至,有時為了滿足我們還可以將元素或表群當作時對象並定義它們自己的方法。
這樣,更能顯示面向對象的優勢。
上面所討論的可以說是面向對象的分析方法。在具體的設計過程當中,還應該採用適當
的方式。因為面向對象的思想固然很先進,如果做得不好的話,同樣不能達到預期的效果。
這主要表現在處理對象與對象的關繫上沒有做好,對象與對象的層次不分明。如上面所舉得
關系型資料庫得例子,如果在元組層面上得對象過多得考慮一個表對象得因素,或一個表層
面上對象過多地考慮一個元組對象的因素,甚至去考慮元素層面上的因素,這些都不是好的
面向對象的設計方法。這一點,在語言實現方面,Java比C++更有優勢,因為它不允許多
重繼承,從而使對象之間的關系更明確。誰也不會否認C++的功能更強大,但是它也要由次
付出巨大代價——當現在代碼庫發展到一定程度、一定規模時,個對象之間的層次關系將
變得異常復雜,給後繼使用者得學習、理解帶來很大的困難,應用上很難把握。另外,雖然
C++具備面向對象的處理能力,但它還是保留了很多面向過程的東西。用C++完全可以不用
面向對象的思想來進行程序設計,當然人們不會這樣去做——除了那些只是把C++看成是C
擴充的初學者,這就為以後的發展埋下了隱患。在者一方面,Java的限制更多一點。就者一
點還遠遠不夠。搞開發的是人,開發方法是由人決定的。要應用面向對象的方法開發出優秀
的軟體,必須要求開發人員具有良好的面向對象的思想。好的工程師可以利用適當的工具開
發出優秀的軟體——而不在乎他所使用的語言工具——Java、C++、Object Pascal、Ada等。
要能應用面向對象的思想熟練得做好系統分析、設計、實現(編程),首先要求開發人
員知道什麼是對象,什麼是面向對象得概念,否則是談不上應用面向對象得思想搞軟體開發
了。希望讀者能在看到我在前面的不太嚴密、詳細的論述之後可以對「對象」這個概念由一
個初步的了解,同時也希望有不同看法的同行提出批評。其次,還要求開發人員有比較豐富的開
發經驗。否則,光談理論,那是不能真正體會「面向對象」的含義的。盡管如此,我們還是
可以定出一般的規則的。拋開生命周期的其它階段,對一個確立的系統一般可以進行以下幾
個過程:
一、首先應用面向對象的思想進行系統分析。仔細的劃分系統的各個部分,明確它
們之間的層次關系,然後將各個部分作為一個對象進行功能上的分析。例如,要設計一個用
戶界面,它可能由幾個主要的窗體組成:主窗體MainFrame、功能性子窗體FunctionFrame
以及對話對話框Dialog。其中,MainFrame中可能還包括菜單、工具條、文本框、狀態條等
Windows組件。對於要完成一些重要功能的組件,我們可以單獨將它作為一個對象看待,在
具體的實現中,用單獨一個類來表示。而一些並不是很重要的、只是在過程中需要用到的組
件,就可以將它們集成到其他對象中去。要明確每個對象自己的任務——不要讓它有缺陷,
也不能越殂代庖。各個對象之間的關系通過過程、內容、功能等耦合來實現。
實際上,如果你是用Java進行開發,你會發現swing組件本身就非常好用,因為它們
之間的關系是很分明的——你無須去理解分清象C++中的組件那樣復雜的關系。在開發你自
己的組件時,也需要力求達到這樣的效果。
二、其次時應用面向對象的思想進行系統設計。其實在真正做好了系統分析的工作之後,
進行設計就比較輕鬆了。這段時間只要進一步確定各個對象的功能以及各個對象之間的關系
。為了能夠更好地幫助實現人員明白各個對象之間的關系,可以利用一些工具將這些組件的
關系表示出來,統一建模語言(Uniformed Mole Language,UML)就是這樣的一種好東
西。它不僅可以現在幫助開發人員了解整個系統,也為以後的維護工作提供一個檔案文件,
給以後的工作提供巨大的方便。