物件導向vs非物件導向 - w3c學習教程
文章推薦指數: 80 %
每個物件都有自己有自己的狀態,並能夠根據自身當前狀態完成相應的功能。
封裝:非物件導向程式設計將資料與功能函式分離,在c語言中資料採用結構體方式 ...
物件導向vs非物件導向
2021-08-2516:20:51字數695閱讀8856
非物件導向更關注功能,它將一個大的問題細分成很多小功能,每個功能就表現為一個函式,通過函式之間的相互連線,完成問題的求解。
使用這種功能分解方式程式設計會出現一個問題:當需求發生改變時,必須要修改某個函式或模組,模組的變化同時會引起其他依賴該模組的程式的正常執行,因此帶來了程式不易維護和擴充套件的缺點。
物件導向程式設計用物件封裝解決了上面的問題。
利用物件導向的基本特徵,並靈活使用設計模式,能給程式帶來良好的可複用性、可擴充套件性以及可維護性。
物件導向有4個主要特徵,它們是區分非物件導向程式設計的主要標誌。
抽象:抽象包括資料抽象和過程抽象。
面向程序式程式設計,不是把過程與資料看成一個整體,只是把客體的行為抽取出來,如果屬性有變更,需要更改很多地方。
而物件導向程式設計將資料與過程做個一個整體,並形成物件。
每個物件都有自己有自己的狀態,並能夠根據自身當前狀態完成相應的功能。
封裝:非物件導向程式設計將資料與功能函式分離,在c語言中資料採用結構體方式表示,其成員變數都預設public的。
物件導向採用類作為封裝,其中包含了屬性和方法,且都可以用public,protected,friendly,private四種不同的訪問許可權修飾,達到了資料隱藏的效果,提高了軟體的可靠性和可維護性。
繼承:在非物件導向程式設計中沒有繼承的概念。
物件導向中的繼承增加了軟體的可複用性和可擴充套件性。
多型:多型依託於繼承。
把通用功能放在較高層次,具體實現放在較低層次,低層次的物件能對通用訊息作出個性的響應。
增強程式的可擴充套件性和可維護性。
相關推薦
Oracle中Number型別
iphone開源彙總
Flash與分佈學構想圓弧分佈
物件導向vs非物件導向
元宵,你團圓了嗎
相關推薦
Oracle中Number型別
iphone開源彙總
Flash與分佈學構想圓弧分佈
物件導向vs非物件導向
元宵,你團圓了嗎
相關閱讀
Oracle中Number型別
iphone開源彙總
Flash與分佈學構想圓弧分佈
物件導向vs非物件導向
元宵,你團圓了嗎
元宵,你團圓了嗎
topic
科技
教育
python
社會
linux
數碼
java
c++
遊戲
演算法
資料庫
健康
文化
mysql
汽車
娛樂
科學
財經
資料結構
C語言
職場
php
oracle
c#
C
作業系統
工作
體育
sql
網路
延伸文章資訊
- 1你所不知道的C 語言:物件導向程式設計篇 - HackMD
只要有心,Brainf*ck 語言也能作Object-Oriented Programming (OOP)! 摘自「無拘的物件導向」:. 如同數學上的複數,是由實數與虛數組合而成,而就物件 ...
- 2物件導向是啥| 學呀- 程式概論| object、class
此章節的程式語法和JavaScript 等程式語言相近,但並非任何真實程式語言。請專注於章節中的概念部分,而非語法部分。 上一章中,我們曾經使用了「杯子」作為 ...
- 39 下列何者非物件導向程式語言?(A) C++ (B) C# (C)C (D) Java
問題詳情. 9 下列何者非物件導向程式語言? (A) C++ (B) C# (C)C (D) Java. Ad. 參考答案. 答案:C 難度:簡單0.719472 統計:A(12),B(50),...
- 4基本視窗程式應用 - 金甌女中FTP系統網頁專區
非程序導向語言:指該類程式語言以完成工作為設計導向,例如完成電腦報表的製作,或是設計以完成文件排版格式等各類的程式語言。又稱為4GL程式語言. 第五代程式語言則是以 ...
- 5物件導向程式設計- 維基百科,自由的百科全書
分享非物件導向程式前身語言