2016-01-11 65 views
0

我最近偶然發現了一個有趣的問題(或者也許只是作者的錯誤),我開始質疑自己。經過一番研究後,我不得不說我的答案不是100%肯定的,所以我想問一問我的想法是否正確。現在的問題是:面向對象編程範例

描述的面向對象的編程範式小號

我首先認爲這是多態,繼承,封裝,抽象。但爲什麼有多種形式?據我瞭解,我的答案是範式(單一)的描述而不是範式(複數)。我錯過了什麼,或者這是正確的答案?

+1

你列出的不是範例。 oop範式是:將程序設想爲對象之間的交互。或者,將程序視爲一組交互對象。或者,根據對象來查看程序。 這就是OOP Paradigm的總體情況。 –

回答

0

它取決於視角,更好的說粒度,或者你想比較或強調什麼。

面向對象編程是其中一種編程範例。但是,然後有不同類別的面向對象編程。調用它們的多個面向對象的編程範例是有意義的。

請參閱https://en.wikipedia.org/wiki/Object-oriented_programming瞭解編程範例的精彩列表。

1

您可能要檢查什麼阿蘭凱有說這個:http://c2.com/cgi/wiki?AlanKaysDefinitionOfObjectOriented

從鏈路所需的摘錄:

這個定義是從Smalltalk的(Smalltalk的-72的早期版本衍生? ),規則5和6清楚地顯示了Smalltalk的Lisp遺產。凱這樣評論說,規則4-6會隨着Smalltalk的發展而變化。

  1. EverythingIsAnObject。
  2. 對象通過發送和接收消息進行通信(根據對象)。
  3. 對象有自己的內存(根據對象)。
  4. 每個對象都是一個類的實例(它必須是一個對象)。
  5. 該類保存其實例的共享行爲(以程序列表中的對象的形式)
  6. 要評估程序列表,控制權將傳遞給第一個對象,而其餘部分將被視爲其消息。

「艾倫凱,被一些人認爲是面向對象編程的父親,確定了以下特點爲根本,以OOP:」

  1. EverythingIsAnObject。
  2. 通信是由相互通信的對象執行的,請求對象執行動作。對象通過發送和接收消息進行通信。消息是一個動作請求,與完成任務所需的任何對象捆綁在一起。
  3. 對象有自己的內存,它由其他對象組成。
  4. 每個對象都是一個類的實例。一個類只是表示一組類似的對象,如整數或列表。
  5. 該類是與對象關聯的行爲的存儲庫。也就是說,作爲同一類的實例的所有對象都可以執行相同的操作。 到目前爲止,類似於上面的1-5。規則6是不同的。對列表的引用被刪除,取而代之的是:
  6. 類被組織成單根樹結構,稱爲繼承層次結構。與此類樹結構中的後代相關聯的任何類都可以使用與類實例關聯的內存和行爲。
+0

雖然這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/10861087) –

+0

@PardeepDhingra:根據需求添加信息。 –

+0

@FlorianSalihovic此答案的目標是在黃色框中給出的任務,但不是明確的問題。 – bogl

0

基於我對paradigm的定義的論證,它通常是一種做某事的模式。該範式是:

  • 抽象
  • 封裝
  • 多態性
  • 繼承。