過度使用物件導向會降低程式執行效率嗎

2023-05-28 07:45:17 字數 3902 閱讀 5072

在acm中使用物件導向會佔優勢嗎?

1樓:_逝水流殤

一般不會 不過用了有時候能讓程式更清晰 減少出錯概率。

物件導向程式設計的重要性在哪?

2樓:匿名使用者

物件導向最重要的功能,是在語言層面,做出一些歸類和劃分。這給出了額外資訊,有助於提高程式的可維護性,和可控。

也就是說,傳達出,資料之間,函式之間,資料和函式之間的疏密和邏輯關係。通過對複雜任務,化整為零,實現分工協作和任務簡化,這類似分治法。

同時,在程式設計模型中建立了物件的概念,通常更加切合人類的思考習慣,通過合理的封裝,設計良好的物件介面,從而幫助人們更容易開發和管控自己的**。

關於樓主提問,我補充下,oo 的選擇 和 gui 是完全獨立無關的。gui 也可以以程序導向的方式開發。在適合 oo 的各種場合(不一定是 gui),採用 oo 來程式設計當然也是十分有益的。

然後物件導向的使用,人們很容易僵化,要謹防:

1)過度oo。不必要的加深物件關係網路深度,會降低程式的可維護性和可控性,最終失控而導致專案失敗。

2)一些人對程序導向才去完全對立,這是一種教條主義和僵硬呆板的理解。實際上絕對的 oo,必然不是最正確的。不管強行 oo 只能是弄巧成拙的愚蠢人。

意識不到,oo 並不是適用所有模型,或者說,很多場合,沒有必要 oo和沒有 oo 的特別收益。

實際情況,一般是 oo 和 程序導向兩者的合理結合組合,來解決問題。而不是非此即彼的關係。

物件導向程式設計為什麼沒有在科學計算領域獲得普及

3樓:匿名使用者

兩方面原因,其一在於絕大部分科學計算領域中的演算法的是直接以程序導向來描述的,這很顯然,因為演算法就是對資料進行處理以得到所需要結果的過程。這一套邏輯是該領域研究人員所熟悉的,因此就算他們選擇了c/c++來進行程式設計,也很自然的就採用了程序導向的正規化。其二在於科學計算領域的研究人員所受到的程式設計方面的訓練並不足以使他們足夠強地掌握物件導向的程式設計方法。

當水平不足的時候,使用物件導向的方法寫出來的程式執行效率可能很差,這不滿足科學計算對於效率的高要求。

但是這並不絕對,比如在元胞自動機領域,可能多數程式都是物件導向的,因為該方法的描述與物件導向的方法是十分契合的,也因為這一領域最近才迅速發展,領域中已經有足夠多的研究人員具備使用c++進行物件導向開發的能力。

此外,尤其需要注意的是,進入新世紀之後,越來越多的人開始採用c/c++甚至最近的python進行科學計算了,但是這並不表明物件導向在他們的程式架構中佔有優勢地位,多數科學計算的c/c++程式仍然是程序導向的,或者本質上是程序導向,只是基於物件在頂層上做了一些封裝。我注意到題目的標籤中加了fortran項,我想大家須要將程序導向/物件導向這種程式設計正規化與具體的語言(fortran/c/ c++/python)區分出來 。我自己比較熟悉的python/c++都是支援程序導向/物件導向多種程式設計正規化的。

況且fortran語言的執行效率並不比c/c++高,兩方陣營表現幾乎一致。

最後,就我個人而言,我現在使用得更多的是以泛型程式設計技術為核心的多種範型並存的程式設計風格。前述已經給出定義「演算法就是對資料進行處理以得到所需要結果的過程」,因此泛型這種將資料型別與操作過程相分離,最大程度上提高**複用程度並且基本不損失執行效率的正規化,在我看來,十分契合數值計算的需求。但是科學計算領域的研究人員中少有人具備熟練掌握並最大程度上利用該正規化的能力。

程序導向與物件導向各自的優缺點?

4樓:feichang小雨

與物件導向相比,程序導向幾乎沒什麼優點了。

物件導向程式設計的優點是什麼?

5樓:韓苗苗

1、維護簡單。

物件導向程式設計的一個特徵就是模組化。實體可以被表示為類以及同一名字空間中具有相同功能的類,可以在名字空間中新增一個類而不影響該名字空間的其他成員。這種特徵為程式的維護提供了便捷性。

2、可擴充性。

如果有一個具有某一種功能的類,就可以擴充這個類,建立一個具有擴充功能的類。

3、**重用。

功能是被封裝在類中的,類是作為一個獨立實體而存在的,因此可以很簡單的提供類庫,使**得以重複使用。

6樓:匿名使用者

1、易維護。

採用物件導向思想設計的結構,可讀性高,由於繼承的存在,即使改變需求,那麼維護也只是在區域性模組,所以維護起來是非常方便和較低成本的。

2、質量高。

在設計時,可重用現有的,在以前的專案的領域中已被測試過的類使系統滿足業務需求並具有較高的質量。

3、效率高。

在軟體開發時,根據設計的需要對現實世界的事物進行抽象,產生類。使用這樣的方法解決問題,接近於日常生活和自然的思考方式,勢必提高軟體開發的效率和質量。

4、易擴充套件。

由於繼承、封裝、多型的特性,自然設計出高內聚、低耦合的系統結構,使得系統更靈活、更容易擴充套件,而且成本較低。

7樓:匿名使用者

序模組化,便於設計和開發因為模組化,便於修改和維護。

c#中的方法有利於程式的高效率執行嗎?還是說方法只是方便了程式編寫的快捷、易懂,只是方便程式設計師的閱

8樓:匿名使用者

如果你的方法只用一次,封裝成方法對效率確實沒什麼影響,但是比如你同時在十個地方都呼叫了這個方法的**,如果不用方法那怎麼辦,重複十遍還是一百遍?方法是物件導向程式設計的**重用的一個很重要的概念,對於軟體重用有根本性的影響(軟體重用涉及以下內容)

1. 提高軟體生成率。

2. 縮短開發週期 。

3. 降低軟體開發和維護費用。

4. 生產更加標準化的軟體。

5. 提高軟體開發質量。

6. 增強軟體系統的互操作性。

7. 減少軟體開發人員數量。

8. 使開發人員能比較容易的適應不同性質的專案開發。

9樓:手機使用者

c#中的方法相當於c語言中的函式,是一個程式中必不可少的組成部分。

其實,basic語言的子程式,pascal語言的過程,c語言的函式,在c#等物件導向的語言中稱為方法,都是一個概念。

物件導向程式設計相對於程序導向程式設計有什麼優點?二者有什麼區別?

10樓:匿名使用者

1、維護簡單。

2、可擴充性。

3、**重用。

11樓:97樂於助人

c語言是程序導向的程式設計,它的最重要特點是函式,通過主函式來呼叫一個個子函式。

12樓:匿名使用者

下面是我本人的理解,比較淺薄。。

舉個例子,蓋一座大樓,你想到的是樓怎麼蓋,**要有柱子,**要有梁,**樓梯等等(這就是物件導向),至於柱子該怎麼建,用什麼建,方的圓的,等等,這些都不去考慮。。這就是程序導向。。而你逐個去造柱子,造梁,造磚頭,最後將他們組合。。

這是程序導向。。我們蓋房子的時候應該是到相應的建材店把每個材料買了然後去蓋,而不是在家認真地磨磚頭。。那樣等你蓋完房子你就沒時間享受了。

嘿嘿。。)這就是為什麼物件導向的思想的開發效率大大超過程序導向思想。。

用物件導向思考問題更符合我們人的思考方式。

其實我們人現實生活中都是在物件導向。比如:去飯店吃飯,你只要說明吃什麼就可以了,有必要還了解這個菜是怎麼做的,是**來的,怎麼去種這個菜嗎。。

這樣使得物件導向比面向思想簡單,更容易為人接受。。

物件導向也可以說是從巨集觀方面思考問題,而程序導向可以說是從細節處思考問題。在物件導向中,也存在程序導向。。在學習中,倆都是得學的。。

13樓:匿名使用者

物件導向 就是指 針對類的物件 或者 一個過程的結果 的總體。

程序導向是 指 一個過程的流程 也就是說容易強耦合 不容易維護 不容易維護。

什麼是物件導向思想,什麼是物件導向物件,什麼是程序導向,什麼是物件導向思想。能詳細點嗎?用自己的理解來說。

關注猿學部落,輕鬆敲 輕鬆學程式設計,更多課程盡在猿學部路官網www.itbull.net 物件導向 與 程序導向 是兩個不同的概念。程序導向 就是一步一步的,後面的必須在前面的做完才能輪流到。物件導向 就是面向具體的事物。比如 造車。程序導向 就是先造車輪,再造發動機,再造機殼。依次製造,造完前面...

物件導向程式設計

c 概念 物件導向程式設計 物件導向程式設計,簡稱oop 因此被設計來建立軟體重用 的能力,以更好地模擬現實世界環境中,它被認為是一個自頂向下的程式設計獲獎者。它通過新增擴充套件程式語句,包 到 物件 的程式設計功能。物件導向的程式語言,使複雜的工作是有組織性,容易寫。說它是一場革命,而不是物件本身...

物件導向方法包括什麼,物件導向的方法的概念是什麼?

物件導向方法模型包括六個要素 封裝 抽象 模組化 層次結構 型別 併發發 持久。物件導向方法是一種基於物件模型的程式設計方法,包括物件導向分析 物件導向設計 物件導向程式設計,是目前應用範圍最廣的設計方法。物件導向是軟體開發方法。物件導向的概念和應用已超越了程式設計和軟體開發,擴充套件到如資料庫系統...