⑴ 面向對象的程序設計語言是什麼
我們用的語言都是兩種,
1.面向過程(C語言)
2.面向對象(C++,C#,java等)
面向過程就是一個過程化,用人舉例子,面向過程就是一步一步的製作出一個人。從頭到身體到腳
而面向對象就是你建造一個一個的對象,比如腦袋,身體,四肢,這些對象建造好之後,你可以直接把他們拼接起來,而不用像面向過程很死板的從頭到尾做出來
以上是我的個人見解,有理解不對的,不要見怪
⑵ 面向對象程序設計語言有哪些
1、Smalltalk
Smalltalk被公認為歷史上第二個面向對象的程序設計語言和第一個真正的集成開發環境(IDE)。由Alan Kay,Dan Ingalls,Ted Kaehler,Adele Goldberg等於70年代初在Xerox PARC開發。
Smalltalk對其它眾多的程序設計語言的產生起到了極大的推動作用,主要有:Objective-C,Actor, Java 和Ruby等。90年代的許多軟體開發思想得利於Smalltalk,例如Design Patterns, Extreme Programming(XP)和Refactoring等。
2、Eiffel
Eiffel語言是繼Smalltalk-80之後的另一個"純"OOPL。這種語言是由OOP領域中著名的專家Bertrand Meyer等人20世紀80年代後期在ISE公司(Interactive Software Engineering Inc.)開發的,它的主要特點是全面的靜態類型化、有大量的開發工具、支持多繼承。
3、C++
C++是C語言的繼承,它既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基於對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。
C++擅長面向對象程序設計的同時,還可以進行基於過程的程序設計,因而C++就適應的問題規模而論,大小由之。
4、Java
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。
Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程 。
Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點 。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等 。
(2)什麼是面向對象的程序設計語言擴展閱讀:
面向對象程序設計的原則:
1、單一職責原則:一個對象應該只包含單一的職責,並且該職責被完整地封裝在一個類中。
單一職責原則是實現高內聚、低耦合的要素。類的職責主要包括兩個方面:數據職責和行為職責,數據職責是通過其屬性來體現的,行為職責是通過其方法來體現。如果職責過多將導致系統非常的脆弱,類被復用的可能性就越少,一個職責可能會影響其他職責。
2、開閉原則:一個軟體實體應當對擴展開放,對修改關閉。
任何軟體都需要面臨一個問題,當軟體系統需要面對新的需求時,我們要保證系統的設計框架是穩定的。為了滿足開閉原則,需要對系統進行抽象化設計,抽象化是開閉原則的關鍵。百分百的開閉原則很難達到,但是要盡量使系統設計符合開閉原則。
3、里氏代換原則:所有引用基類(父類)的地方必須透明地使用其子類的對象。
里氏代換原則是實現開閉原則的重要方式之一,由於使用基類對象的地方都可以使用子類對象,因此在程序中盡量使用基類類型來對對象進行定義,而在運行時再確定其子類類型,用子類對象代替父類對象。子類的所有方法必須在父類中聲明,或子類必須實現父類中聲明的所有方法。
4、依賴倒轉原則:高層模塊不應該依賴低層模塊,他們都應該依賴於抽象。抽象不應該依賴於細節,細節應該依賴於抽象。
依賴倒轉原則是面向對象設計的主要手段。在代碼中使用抽象類,而具體類放在配置文件中。里氏代換原則是依賴倒轉原則的基礎。如果系統行為發生變化,只需要擴展抽象層,並修改配置文件,而無需修改原有系統的源代碼,滿足開閉原則的設計要求。
5、介面隔離原則:客戶端不應該依賴那些他不需要的介面。
首先需要滿足單一職責原則。將一組相關的操作定義在一個介面中,在滿足高內聚的前提下,介面中的方法越少越好。可以在進行系統設計時採用定製服務的方式。
6、合成復用原則定義:盡量使用對象組合,而不是繼承來達到復用的目的。
通過繼承來實現復用很簡單,而且子類易於擴展。但其主要問題是會破壞系統的封裝性,繼承會將基類的實現細節暴露給子類。同時沒有足夠的靈活性,如果基類發生變化,子類的實現也不得不發生改變。
7、迪米特法則原:每一個軟體單位對其他的單位都只有最少的知識,而且局限於那些與本單位密切相關的軟體單位。
在類的結構設計上,每一個類都應當盡量降低其成員變數和成員函數的訪問許可權。在類的設計上,只要有可能,一個類型應當設計成不變類。一個對象對其他對象的引用,應當降到最低。
⑶ 什麼是面向對象的程序設計
什麼是面向對象的設計思想?也許有不少初學者對這個概念還有許多不明白的地方,
特別是這個處於新舊思想交替的時代,許多人剛剛學完現在看來是快要淘汰的只是面向過程的
語言。他們的腦子還沒有脫離面向過程思想的束縛,抬頭卻發現,「面向對象」早已經流行
開來,這個陌生的詞漫天飛舞。隨便拿起一本流行計算機技術書籍,那裡會沒有「面向對象」
的字眼!於是心中便惶惑了:什麼叫「面向對象」?不感興趣者,一帶而過;有志於在這方
面發展的,匆忙找到一本有關書籍來啃究竟什麼是「面向對象」。然而,要突破思想的束縛,
說難也不難,說到要深刻認識卻也不容易。筆者在做了一些輕量級的工作後,頗以為有點心
得,不怕貽笑大方,寫出已供廣大同行批評指正。
「對象(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)就是這樣的一種好東
西。它不僅可以現在幫助開發人員了解整個系統,也為以後的維護工作提供一個檔案文件,
給以後的工作提供巨大的方便。
⑷ 面向對象程序設計語言是什麼意思
面向對象(Object Oriented,OO)是當前計算機界關心的重點,它是90年代軟體開發方法的主流。面向對象的概念和應用已超越了程序設計和軟體開發,擴展到很寬的范圍。如資料庫系統、互動式界面、應用結構、應用平台、分布式系統、網路管理結構、CAD技術、人工智慧等領域。
談到面向對象,這方面的文章非常多。但是,明確地給出對象的定義或說明對象的定義的非常少—— 至少我現在還沒有發現。起初,「面向對象」是專指在程序設計中採用封裝、繼承、抽象等設計方法。可是,這個定義顯然不能再適合現在情況。面向對象的思想已經涉及到軟體開發的各個方面。如,面向對象的分析(OOA,Object Oriented Analysis),面向對象的設計(OOD,Object Oriented Design)、以及我們經常說的面向對象的編程實現(OOP,Object Oriented Programming)。許多有關面向對象的文章都只是講述在面向對象的開發中所需要注意的問題或所採用的比較好的設計方法。看這些文章只有真正懂得什麼是對象,什麼是面向對象,才能最大程度地對自己有所裨益。這一點,恐怕對初學者甚至是從事相關工作多年的人員也會對它們的概念模糊不清。
⑸ 第一個面向對象的程序設計語言是什麼
simula 67語言
以下資料來自危機網路,希望對你有些幫助
計算機科學中對象和實例概念的最早萌芽可以追溯到麻省理工大學的PDP-1系統。這一系統大概是最早的基於容量架構(capability based architecture)的實際系統。另外1963年Ivan Sutherland的Sketchpad應用中也蘊含了同樣的思想。對象作為編程實體最早是於1960年代由Simula 67語言引入思維。Simula這一語言是Ole-Johan Dahl和Kristen Nygaard在挪威奧斯陸計算機中心為模擬環境而設計的。(據說,他們是為了模擬船隻而設計的這種語言,並且對不同船隻間屬性的相互影響感興趣。他們將不同的船隻歸納為不同的類,而每一個對象,基於它的類,可以定義它自己的屬性和行為。)這種辦法是分析式程序的最早概念體現。在分析式程序中,我們將真實世界的對象映射到抽象的對象,這叫做「模擬」。Simula不僅引入了「類」的概念,還應用了實例這一思想——這可能是這些概念的最早應用。
20世紀70年代施樂PARC研究所發明的Smalltalk語言將面向對象程序設計的概念定義為,在基礎運算中,對對象和消息的廣泛應用。Smalltalk的創建者深受Simula 67的主要思想影響,但Smalltalk中的對象是完全動態的——它們可以被創建、修改並銷毀,這與Simula中的靜態對象有所區別。此外,Smalltalk還引入了繼承性的思想,它因此一舉超越了不可創建實例的程序設計模型和不具備繼承性的Simula。
⑹ 面向對象的程序設計語言是什麼
面向對象程序設計(Object Oriented Programming,OOP)的實質是選用一種面向對象程序設計語言(OOPL),採用對象、類及其相關概念所進行的程序設計。
面向對象設計的結果,既可以用面向對象語言實現,也可以用非面向對象語言實現。面向對象程序設計語言本身就支持面向對象概念的實現,其編譯程序可以自動地實現面向對象概念到目標程序的映射。而且與非面向對象語言相比,面向對象語言還具有以下一些優點:
(1)一致的表示方法。
面向對象的採用方法從問題域表示到面向對象分析,再到面向對象設計與實現始終穩定不變。一致的表示方法不但有利於在軟體開發過程中始終使用統一的概念,也有利於維護人員理解軟體的各種配置成分。
(2)可重用性。
為了能帶來可觀的商業利益.必須在更廣泛的范圍中運用重用機制,而不是僅僅在程序設計這個層次上進行重用。軟體開發組織既可能重用它在某個問題域內的OOA結果,也可能重用相應的OOD和OOP結果。
⑺ 面向對象的程序設計語言有哪些
1、Smalltalk:
Smalltalk,被公認為歷史上第二個面向對象的程序設計語言,和第一個真正的集成開發環境(IDE)。
Smalltalk對其它眾多的程序設計語言的產生起到了極大的推動作用,主要有:C++,C#,Objective-C,Actor,Java和Ruby等。90年代的許多軟體開發思想得利於Smalltalk,例如設計模式、敏捷編程和代碼重構等。
(7)什麼是面向對象的程序設計語言擴展閱讀
面向對象語言既可以用面向對象語言實現,也可以用非面向對象語言實現。面向對象程序設計語言本身就支持面向對象概念的實現,其編譯程序可以自動地實現面向對象概念到目標程序的映射。
面向對象的採用方法從問題域表示到面向對象分析,再到面向對象設計與實現始終穩定不變。一致的表示方法不但有利於在軟體開發過程中始終使用統一的概念,也有利於維護人員理解軟體的各種配置成分。
⑻ 面向對象的程序設計語言是一種什麼語言
面向對象程序設計語言是一類以對象作為基本程序結構單位的程序設計語言,指用於描述的設計是以對象為核心,而對象是程序運行時刻的基本成分。
面向對象程序設計語言中提供了類、繼承等成分,有識認性、多態性、類別性和繼承性四個主要特點。
面向對象設計的結果,既可以用面向對象語言實現,也可以用非面向對象語言實現。面向對象程序設計語言本身就支持面向對象概念的實現,其編譯程序可以自動地實現面向對象概念到目標程序的映射。
面向對象語言刻畫客觀系統較為自然,便於軟體擴充與復用。有四個主要特點:
(1)識認性,系統中的基本構件可識認為一組可識別的離散對象;
(2)類別性,系統具有相同數據結構與行為的所有對象可組成一類;
(3)多態性,對象具有惟一的靜態類型和多個可能的動態類型;
(4)繼承性,在基本層次關系的不同類中共享數據和操作。
參考考資料來源:網路-面向對象語言
參考考資料來源:網路-面向對象程序設計語言