❶ 什麼是OOP急!!!!
OOP =Object Oriented Programming,=面向對象的程序設計
對象(Object):包含一定的數據結構和狀態的實體。
操作(Operation):作用於對象的行為,如訪問和處理對象的狀態。
封裝(Encapsulation):定義對象和操作,只提供抽象的介面,並隱藏它們的具體實現。
Ada 83 已經支持上述3個特性,因此被稱為基於對象(oriented-based)的語言;但面向對象程序設計經過十年的發展, Ada95 基於上述要素又增添了以下兩個 Ada83 不支持的要素:
繼承(Inheritance):通過繼承現有類型的性質,創建新的數據類型,而不影響原有數據類型。
多態性(Polymorphism):判定數據類型集合中各類型的區別,使程序可以按照它們的共同特性來書寫。
對新特性的需求是由三份報告[Dod 1990]指出的,具體見 Ada Rantinale 的 Part Two- 4 Object Oriented Programming-- 4.1 Background and Concepts,可以更好的理解繼承和多態性。
OOP 的繼承從理論上講是模仿人的思考方法,將對象分類,如:car,bus 這兩個數據類型是從數據類型vehicle 繼承而來的,它們作為 vehicle 的一類,自然繼承了 vehicle 的特性,同時具有自身獨有的特性;而 wheel 卻不是 vehicle 的一類,只是 vehicle 的一個組成部份,因此不是從 vehicle 繼承而來。同樣,vehicle 有一些操作,如 start,reverse, car和bus也繼承下來,如果必要,也可加上自己獨有的操作,如 drive_at_200mph。但在實際程序中,人們往往忽視了面向對象的內涵,甚止於 C++ 這些語言玩了好幾年,也只是用上了面向對象的語法,而沒有形成面向對象的思考方法。
❷ 求解釋用來區分c語言和oop的這句話
C語言是面向過程的編程語言,OOP是面向對象的編程語言,舉個例子吧,我現在有個計劃,要去北京,OOP語言是直接給你一個車,然後你自己設定路線去北京就好,而C語言是需要你自己製造零件,自己組裝好車,然後再自己設定路線,最後到達北京。C語言比較費勁,但是程序的效率很高
❸ 什麼是OOP語言工具
Java是一種OOP語言工具
❹ 面向對象的程序設計語言是什麼
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.)開發的,它的主要特點是全面的靜態類型化、有大量的開發工具、支持多繼承。
面向對象語言還具有以下一些優點:
(1)一致的表示方法。
面向對象的採用方法從問題域表示到面向對象分析,再到面向對象設計與實現始終穩定不變。一致的表示方法不但有利於在軟體開發過程中始終使用統一的概念,也有利於維護人員理解軟體的各種配置成分。
(2)可重用性。
為了能帶來可觀的商業利益.必須在更廣泛的范圍中運用重用機制,而不是僅僅在程序設計這個層次上進行重用。
軟體開發組織既可能重用它在某個問題域內的OOA結果,也可能重用相應的OOD和OOP結果。
(3)可維護性。
在實際軟體系統開發中,維護人員面對的主要是源程序,如果程序設計語言本身能顯式地表達問題域語義,對維護人員理解所要維護的軟體將有很大幫助。
因此,選擇程序設計語言應該考慮的首要因素是,哪個程序設計語言能最好地表達問題域語義。一般來說,實現面向對象分析、設計的結果,應該盡量選用面向對象程序設計語言。
❺ 軟體編程常用術語
1. XML 首先,你要了解XML。我不是說僅僅是XML規格本身,還包括一系列相關的基於XML的語言:最重要的是XHTML、XSLT、XSL、DTDs、XML Schema (XSD)、XPath、XQuery和SOAP。那些在過去5年內從未碰過鍵盤的人,可能不知道XML為何物。XML是一種文本文件,使用與HTML類似的標記。XML能定義一個樹狀結構,並能描述所含的數據。 XML最好的一點是既能存結構化數據也能存非結構化數據。它既能存貯和描述「規格的」(regular)表格數據,也能容納和描述「粗糙的」(ragged)文件數據。 XHTML是現今寫HTML的首選方法。因為它是形式完好(well formed)的XML,比起古老的、通常是畸形(malformed)的HTML文件,XHTML格式的文件更容易處理。 XSLT和XSL是用於把XML文件轉成其它格式的語言。可轉換的格式包括:文本文件、PDF文件、HTML、以逗號為分隔符的文件,或其它XML文件。 DTD和XML Schema描述XML文件所能包含的內容的類型,並讓你「驗證」XML文件內容的合理性,而不用寫特殊代碼以確保內容符合規則要求。 XPath和XQuery是用於從XML文件中抽取單個項目或一組項目的查詢語言。XQuery擴展了XPath,因而更重要。XQuery與XML的關系正像SQL與關系資料庫的關系。 SOAP是Web服務之間的一個標准通訊協議。盡管你不需要對SOAP標准一清二楚,你應該熟悉一般的schema和它的工作原理,以便能應用這門技術。 2. Web服務 Web服務是XML流行後的一個直接產物。因為你能用XML描述數據和物件,因為你能用schema確保XML文件內容的合理性,因為XML是基於文本的規范,XML為跨平台通訊標准提供了一個極其方便的基本格式。如果你還從來沒碰到Web服務,你可能很快就會碰到,在未來5年內,你幾乎肯定會碰到。熟悉Web服務十分重要,因為它是目前所有跨不同機器、不同語言、不同平台和不同地點的通訊協議中最簡單的一個。不管你需要與否,Web服務是邁向互用性的重要一步。 XML工作組主席John Bosak曾說XML「給Java一些事做」。實際上,Web服務讓所有語言都有了一些事做。Web服務讓在大型機上運行的COBOL應用軟體能調用在手持設備上運行的Java應用程序、能讓Java applet與.NET伺服器交談、能讓微機軟體與Web伺服器無縫連接,並提供了一個相對容易的方法,讓企業不光能向外界提供數據,還能提供功能,而且是一種與語言、平台和位置都獨立的方法。 3. 面向對象的編程 很多程序員仍認為OOP是象牙塔里的技術。但如果你想一下是什麼語言在過去的10年裡佔主導地位,你就會理解OOP不是象牙塔里的技術。OOP從Smalltalk開始,傳到C++和Pascal (Delphi)。Java使OOP大踏步地邁向主流,幾年後的VB.NET和C#則完全確立了OOP的優勢地位。盡管這些語言中的多數並不要求你必須會OOP,但我覺得如果你不了解OOP的基本概念也不知道如何應用這些概念,你能找到的編程工作將越來越少。 4. Java、C++、C#和VB.NET 我把這些語言列在一起,並不是建議你成為每一種語言的專家。我的理由是:學習編程最有效的方法之一是看代碼,而你能看到的大量的代碼很可能不是用你所喜愛的語言編寫的。 在過去幾年,各語言的能力越來越接近。現在,你可以用VB.NET寫Windows服務、Web應用程序或命令行程序。即使你只使用一種語言,你也應該學一些其它語言,以便能看懂那些樣例,並將其翻譯到你所用的語言。這4種語言是基本核心,還有其它一些滿足不同需要、頗具用途的語言,如FORTRAN、COBOL、APL、ADA、Perl和Lisp。 5. javascript 盡管名字有些相像,但Java與javascript並無關聯。為什麼一個腳本語言會如此重要呢?因為所有主流瀏覽器都用javascript。如果你需要寫Web應用程序,你就有足夠的理由學javascript。javascript可以用作ASP或ASP.NET的伺服器語言,也可以當做用於擴展XSLT的功能語言(functional language)。javascript是Mozilla/Netscape中用於激活基於XUL的程序介面的首選語言。javascript的一個變種ActionScript是Flash MX的編程語言。將來,javascript很可能成為新設備的編程語言,以及大型應用軟體中的宏語言。 與javascript相對照的是VBScript。盡管Microsoft的軟體對VBScript有良好的支持,但VBScript在未來的開發工作中很可能是一個糟糕的選擇。就是Microsoft也傾向於用javascript(或Microsoft自己的變種:JScript)寫客戶端程序。在選擇腳本語言時,請選擇javascript。 6. 正則表達式(Regular Expressions) 查尋關系資料庫可以用SQL,查詢XML可以用XPath和XQuery,查詢純文本文件則可以用正則表達式。例如,你可以用一個命令從一個HTML文件中查找並刪除所有的注釋。各種開發語言內置的一些簡單的文本查詢功能,如"IndexOf"函數或VB中經典的"InStr"函數或"Like"操作符,根本不能與正則表達式相提並論。現在,各種主要的開發語言都提供使用正則表達式的途徑。盡管正則表達式本身既難懂更難讀(是回到早期計算機時代的一種倒退),但它卻是一個功能強大而且未被充分利用的工具。 7. 設計模式 正像OOP通過把對象分類以簡化編程一樣,設計模式對一些普遍的對象之間的交互進行分類,並賦予一個恰當的名稱。OOP用得越多,設計模式就越有用。一些最常用的模式的名稱已經變成了軟體開發領域共同使用的術語,所以要跟上信息的主流,你就要對設計模式有相當的理解。 8. Flash MX 如果你需要在客戶端得到比HTML和CSS更多的圖形和更強的編程功能,Flash是你的答案。用Flash編程比開發Java applets或寫.NET代碼要快得多,也容易得多。 在最新版本 (MX) 中,Flash不僅僅是畫圖和製造動畫的工具,它已經成為一個編程功能強大的開發環境:能調用SOAP Web服務,也能調用遠端伺服器上的ColdFusion、Java或.NET程序。Flash無處不在。它的引擎存在於世界上大多數客戶端計算機,包括手持設備、置頂盒、甚至是新的書寫板電腦。所以使用Flash能大大擴展你的程序的應用范圍。 9. Linux/Windows 熟悉Linux。在一台舊機器或新機器上安裝Linux。下載圖形用戶界面,在其基礎上寫一些程序。安裝Apache,寫一個Web應用程序。這個世界不再僅僅是屬於Windows,這種趨勢可能還會持續下去。如果你是一名中堅的Linux開發人員,那就拋棄你對Windows的憎惡,看看你能否做一些Windows編程。Windows能繼續在台式電腦上稱王是有其原因的,這不僅僅是因為Microsoft控制了這個市場。 沒人知道你們公司會在什麼時候決定從Linux轉向Windows(或從Windows轉向Linux),或者你想跳到一家用另一種平台的公司,或者你想出了開發一個殺手軟體的好主意,所以你要爭取擁有在不同操作系統上的編程經驗。 10. SQL 盡管SQL不像本文討論的其它技術那樣新,而且SQL的重要性在未來10年內很可能降低,但它仍然是一項基本技能。很多開發人員還沒有掌握這門技術,或掌握得不夠,不足以有效率地使用它。不要依賴具有圖形用戶界面的SQL生成器替你做事情,你要自己手工地寫查詢命令,直到你熟悉基本的SQL語法為止。了解SQL不僅能幫助你日後學習XQuery,你還有可能馬上發現能簡化或改進目前項目的方法。 培養好奇心 最後,(對,我意識到這是第11門技術),好奇心是你最重要的技能。要去嘗試各種東西。新語言或新技術對你當前或將來的工作可能有用,也可能沒用,但並不是你所學的每一件事都是為了工作。不要害怕失敗,萬事開頭難,學新技術也是如此。大多數失敗是因為人們希望太快地學到太多的東西。要對每一點進步感到滿意,不要讓時間(或缺乏時間)妨礙你。相反,你要安排時間留心、研究、試驗新的開發技術和工具。 你可能永遠也沒有必要成為這些技術的專家,而且我的選擇可能根本不適合你的特殊情況,但通過培養好奇心,你將會發現你應該了解的東西。
❻ 什麼是OO,OOP的核心思想是什麼請簡述你對OOP的理解
OO(Object Oriented,面向對象)是當前計算機界關心的重點,它是90年代軟體開發方法的主流。面向對象的概念和應用已超越了程序設計和軟體開發,擴展到很寬的范圍。如資料庫系統、互動式界面、應用結構、應用平台、分布式系統、網路管理結構、CAD技術、人工智慧等領域。OOP三大思想(繼承、封裝、多態) 一、oop的基本思想
OOP的許多原始思想都來之於Simula語言,並在Smalltalk語言的完善和標准化過程中得到更多的擴展和對以前的思想的重新註解。可以說OO思想和OOPL幾乎是同步發展相互促進的。與函數式程序設計(functional-programming)和邏輯式程序設計(logic-programming)所代表的接近於機器的實際計算模型所不同的是,OOP幾乎沒有引入精確的數學描敘,而是傾向於建立一個對象模型,它能夠近似的反映應用領域內的實體之間的關系,其本質是更接近於一種人類認知事物所採用的哲學觀的計算模型。由此,導致了一個自然的話題,那就是OOP到底是什麼?[D&T 1988][B.S 1991] .。在OOP中,對象作為計算主體,擁有自己的名稱,狀態以及接受外界消息的介面。在對象模型中,產生新對象,舊對象銷毀,發送消息,響應消息就構成OOP計算模型的根本。
對象的產生有兩種基本方式。一種是以原型(prototype)對象為基礎產生新的對象。一種是以類(class)為基礎產生新對象。原型的概念已經在認知心理學中被用來解釋概念學習的遞增特性,原型模型本身就是企圖通過提供一個有代表性的對象為基礎來產生各種新的對象,並由此繼續產生更符合實際應用的對象。而原型-委託也是OOP中的對象抽象,代碼共享機制中的一種。一個類提供了一個或者多個對象的通用性描敘。從形式化的觀點看,類與類型有關,因此一個類相當於是從該類中產生的實例的集合。而這樣的觀點也會帶來一些矛盾,比較典型的就是在繼承體系下,子集(子類)對象和父集(父類)對象之間的行為相融性可能很難達到,這也就是OOP中常被引用的---子類型(subtype)不等於子類(subclass) [Budd 2002]。而在一種所有皆對象的世界觀背景下,在類模型基礎上還誕生出了一種擁有元類(metaclass)的新對象模型。即類本身也是一種其他類的對象。以上三種根本不同的觀點各自定義了三種基於類(class-based),基於原型(prototype-based)和基於元類(metaclass-based)的對象模型。而這三種對象模型也就導致了許多不同的程序設計語言(如果我們暫時把靜態與動態的差別放在一邊)。是的,我們經常接觸的C++,Java都是使用基於類的對象模型,但除此之外還有很多我們所沒有接觸的OOPL採用了完全不一樣的對象模型,他們是在用另外一種觀點詮釋OOP的內涵。
什麼是oop的基本思想呢?把組件的實現和介面分開,並且讓組件具有多態性。不過,兩者還是有根本的不同。oop強調在程序構造中語言要素的語法。你必須得繼承,使用類,使用對象,對象傳遞消息。gp不關心你繼承或是不繼承,它的開端是分析產品的分類,有些什麼種類,他們的行為如何。就是說,兩件東西相等意味著什麼?怎樣正確地定義相等操作?不單單是相等操作那麼簡單,你往深處分析就會發現「相等」這個一般觀念意味著兩個對象部分,或者至少基本部分是相等的,據此我們就可以有一個通用的相等操作。再說對象的種類。假設存在一個順序序列和一組對於順序序列的操作。那麼這些操作的語義是什麼?從復雜度權衡的角度看,我們應該向用戶提供什麼樣的順序序列?該種序列上存在那些操作?那種排序是我們需要的?只有對這些組件的概念型分類搞清楚了,我們才能提到實現的問題:使用模板、繼承還是宏?使用什麼語言和技術?gp的基本觀點是把抽象的軟體組件和它們的行為用標準的分類學分類,出發點就是要建造真實的、高效的和不取決於語言的演算法和數據結構。當然最終的載體還是語言,沒有語言沒法編程。stl 使用c++,你也可以用ada來實現,用其他的語言來實現也行,結果會有所不同,但基本的東西是一樣的。到處都要用到二分查找和排序,而這就是人們正在做的。對於容器的語義,不同的語言會帶來輕微的不同。但是基本的區別很清楚是gp所依存的語義,以及語義分解。例如,我們決定需要一個組件swap,然後指出這個組件在不同的語言中如果工作。顯然重點是語義以及語義分類。而oop所強調的(我認為是過分強調的)是清楚的定義類之間的層次關系。oop告訴了你如何建立層次關系,卻沒有告訴你這些關系的實質。
(這段不太好理解,有一些術語可能要過一段時間才會有合適的中文翻譯——譯者)
面向對象的編程方法OOP是九十年代才流行的一種軟體編程方法。它強調對象的「抽象」、「封裝」、「繼承」、「多態」。我們講程序設計是由「數據結構」+「演算法」組成的。從宏觀的角度講,OOP下的對象是以編程為中心的,是面向程序的對象。我們今天要講的OOD是面向信息的對象,是以用戶信息為中心的。
❼ java語言支持oop中的oop是什麼
OOP是面向對象編程,特徵分別是封裝、繼承、多態。
封裝:封裝是指將對象信息狀態通過訪問許可權修飾符隱藏在對象內部,不允許外部程序直接訪問,如果外部程序要訪問對象內部,可以調用內部提供的get或set方法。
繼承:子類繼承了父類所有的成員方法和屬性,並且可以擁有自己特性。繼承解決了代碼的重用問題
多態:方法重寫和重載
方法重寫:
1參數列表必須完全與被重寫的方法相同
2返回的類型必須一直與被重寫的方法的返回類型相同
3. 訪問修飾符的限制一定要大於被重寫方法的訪問修飾符
4. 重寫方法一定不能拋出新的檢查異常或者比被重寫方法更加寬泛的檢查型異常
5. 存在於父類和子類之間,方法被定義為final不能被重寫。
方法重載:多個同名函數同時存在,具有不同的參數個數/類型,返回值類型可以相同可以不同,調用方法時通過傳遞給它們的不同參數個數和參數類型來決定具體使用哪個方法, 這就是多態性,存在於父類和子類、同類中.
❽ 什麼是OO,OOP的核心思想是什麼請簡述你對OOP的理解
1、什麼是OO
OO(Object–Oriented )面向對象,OO方法(Object-Oriented Method,面向對象方法,面向對象的方法)是一種把面向對象的思想應用於軟體開發過程中,指導開發活動的系統方法,簡稱OO (Object-Oriented)方法,Object Oriented是建立在「對象」概念基礎上的方法學。對象是由數據和容許的操作組成的封裝體,與客觀實體有直接對應關系,一個對象類定義了具有相似性質的一組對象。而每繼承性是對具有層次關系的類的屬性和操作進行共享的一種方式。所謂面向對象就是基於對象概念,以對象為中心,以類和繼承為構造機制,來認識、理解、刻畫客觀世界和設計、構建相應的軟體系統。
2、OOP的核心思想是什麼?
面向對象編程(Object Oriented Programming,OOP,面向對象程序設計)是一種計算機編程架構。OOP 的一條基本原則是計算機程序是由單個能夠起到子程序作用的單元或對象組合而成。
核心思想:封裝,繼承,多態.
OOP 達到了軟體工程的三個主要目標:重用性、靈活性和擴展性。為了實現整體運算,每個對象都能夠接收信息、處理數據和向其它對象發送信息。
OOP 主要有以下的概念和組件:
組件 - 數據和功能一起在運行著的計算機程序中形成的單元,組件在 OOP 計算機程序中是模塊和結構化的基礎。
抽象性 - 程序有能力忽略正在處理中信息的某些方面,即對信息主要方面關注的能力。
封裝 - 也叫做信息封裝:確保組件不會以不可預期的方式改變其它組件的內部狀態;只有在那些提供了內部狀態改變方法的組件中,才可以訪問其內部狀態。每類組件都提供了一個與其它組件聯系的介面,並規定了其它組件進行調用的方法。
多態性 - 組件的引用和類集會涉及到其它許多不同類型的組件,而且引用組件所產生的結果得依據實際調用的類型。
繼承性 - 允許在現存的組件基礎上創建子類組件,這統一並增強了多態性和封裝性。典型地來說就是用類來對組件進行分組,而且還可以定義新類為現存的類的擴展,這樣就可以將類組織成樹形或網狀結構,這體現了動作的通用性。
由於抽象性、封裝性、重用性以及便於使用等方面的原因,以組件為基礎的編程在腳本語言中已經變得特別流行。Python 和 Ruby 是最近才出現的語言,在開發時完全採用了 OOP 的思想,而流行的 Perl 腳本語言從版本5開始也慢慢地加入了新的面向對象的功能組件。用組件代替「現實」上的實體成為 JavaScript(ECMAScript) 得以流行的原因,有論證表明對組件進行適當的組合就可以在英特網上代替 HTML 和 XML 的文檔對象模型(DOM)。
❾ 什麼是oop語言
OOP(Object Oriented Programming) 面向對象的程序設計,編程語言可分為面向過程和面向對象兩種,
面向過程的有匯編語言,c語言 (可理解為這些語言代碼是一行一行寫的:))。。
面向對象的有c++語言。(其實許多面向對象的語言是混合型語言,即可以面向過程,也可以面向對象)
❿ 什麼是OOP
OOP即面向對象程序設計,全稱為Object Oriented Programming,是一種計算機編程架構。其本質是以建立模型體現出來的抽象思維過程和面向對象的方法,模型是用來反映現實世界中事物特徵的。
面向對象程序設計以對象為核心,該方法認為程序由一系列對象組成。類是對現實世界的抽象,包括表示靜態屬性的數據和對數據的操作,對象是類的實例化。對象間通過消息傳遞相互通信,來模擬現實世界中不同實體間的聯系。在面向對象的程序設計中,對象是組成程序的基本模塊。
(10)什麼叫oop語言工具擴展閱讀:
面向對象程序設計的優點:
1、數據抽象的概念可以在保持外部介面不變的情況下改變內部實現,從而減少甚至避免對外界的干擾;
2、通過繼承大幅減少冗餘的代碼,並可以方便地擴展現有代碼,提高編碼效率,也減低了出錯概率,降低軟體維護的難度;
3、結合面向對象分析、面向對象設計,允許將問題域中的對象直接映射到程序中,減少軟體開發過程中中間環節的轉換過程;
4、通過對對象的辨別、劃分可以將軟體系統分割為若干相對為獨立的部分,在一定程度上更便於控制軟體復雜度;
5、以對象為中心的設計可以幫助開發人員從靜態(屬性)和動態(方法)兩個方面把握問題,從而更好地實現系統。