999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談面向對象和面向過程的程序設計

2017-09-09 04:41:51馮媛媛
數字技術與應用 2017年7期

馮媛媛

摘要:隨著面向對象程序設計方法的出現,對象作為該方法的核心技術,正在得到新的開發語言和新的系統架構的支持,兩種開發方法存在著質的區別。本文從面向過程程序設計的結構化思想和面向對象程序設計的抽象、封裝、繼承、多態技術入手做主要論述,詳細介紹了兩種程序設計方法的特點、優缺點以及相互聯系。

關鍵詞:面向對象;面向過程;程序設計

中圖分類號:TP311.1 文獻標識碼:A 文章編號:1007-9416(2017)07-0185-01

1 引言

程序設計是為了解決某一類問題所設計的通用的解決辦法的程序,通過運行程序后進行特定的輸入域輸出,最后得出運行結果,是構造一個軟件活動必不可少的部分,程序設計活動與大多數設計活動一樣是為了平衡約束條件和相互矛盾的需求而進行的。計算機技術在早期發展階段,機器資源非常昂貴,因此在設計程序時必須要考慮到時間、空間代價等因素,而隨著計算機應用技術的發展和軟件規模的擴張,程序的結構、可重用性、可維護性、可擴展性等因素在設計時顯得尤為重要。現如今,面向對象和面向過程的程序設計是較為常用的兩個成熟的設計方式。

2 面向對象和面向過程的程序設計各自的特點

2.1 面向對象的程序設計

面向對象編程是使用對象的編程范式——包含數據域、方法以及它們之間的交互來設計應用和程序。其程序設計方法包括數據抽象、封裝、通信、模塊化、多態和繼承。簡單來看,我們可以對面向對象編程作出如下幾點理解:首先,它必須將數據抽象為模塊結構;其次,必須存在某種方式來實現代碼的多態執行;最后,它至少能部分壓縮代碼和函數。面向對象的程序設計大都遵循傳遞者模式(Mediator Pattern),并且被設計為從sender中解耦caller,其都提供狀態,且都是模塊化的[1]。

2.2 面向過程的程序設計

面向過程是一種以事件為中心的編程思想,以功能(行為)為導向,按模塊化的設計,分析出解決問題所需要的步驟,然后用函數把這些步驟一步一步實現,在實現過程中一個一個依次調用即可。面向過程的程序設計是自頂而下的,首先他需要設計者將應用程序需要完成的業務按照功能分類,并劃分出子模塊,同時將整個應用程序所要完成的事情寫在一個main函數中,由該main函數對這一系列的子函數的進行調用。對于每個子函數來說,可以對其進行再次分解,使其變為模塊更小的子函數。完成一個過程式的設計從本質上來說就是一直重復該過程。用一句話來概括面向過程的設計方法的特征即為:以函數為中心,并將其作為基本單位來劃分程序,數據在這種設計方法中一般處于從屬的位置。

3 面向對象和面向過程的程序設計的比較

3.1 從在開發過程中的運用來看面向對象和面向過程的程序設計

面向過程的設計方法是通過逐步細化問題的方式來進行設計,該方法符合多數人的邏輯思維方式。但是由于過程式的設計是自頂向下的,這就需要設計人員對要解決的問題有一個整體上的把握,但是現實情況中是很少有人能做到這一點的,尤其是在比較復雜的情況下,因此這種方法對于開發需求比較多的問題或比較復雜的工程項目而言,是不太適用的。開發一個系統的過程是一個創造性的過程,開發者或設計者不僅需要不斷地去了解要開發的系統,還需要學習相應的技術,而過程式的設計方法忽略了這一點。面向對象的設計方法是自底向上的,它不需要在一開始用main概括出整個應用程序,其自底向上的特性允許程序設計者從問題的最底層開始逐步加深對系統整體的理解,開發者在設計過程中遇到的需求變化及得到的新的理解,都會再次作用到系統開發本身,形成一種螺旋式的開發方式。

3.2 從編程語言來看面向對象和面向過程的程序設計

C語言是面向過程的設計方法的代表性語言,其包括定義數據的元素和定義操作的元素,比如在C語言中,要使得數據和操作分離開來,就要單獨來定義數據和操作,數據和操作的元素在C語言中分別用結構和函數來定義。數據和操作的分離可能會造成對一種數據的操作分布在程序的各個角落,那么當我們要對數據和操作進行修改的時候,即便是微小的修改,也會變得非常困難。在面向過程的設計中,main()函數可以調用子函數,對于整個應用程序來說處在一個尤為重要的位置。一般來說在面向過程的設計方式中,對于整個系統的概括性描述開發者會寫在一個main()函數中,之后再逐步細化出整個應用程序。然而,這樣做會使得程序的核心邏輯不夠清晰,易與一些較外延和易變化的邏輯混淆在一起[2]。

封裝性、繼承性和多態性是java語言中的三個典型的面向對象的特性。關于封裝性:在java語言中,與程序相關的變量和方法由對象對其進行相應的封裝,其中變量指對象的狀態,方法指對象具有的行為。通過對象的封裝,如通過對類中的成員設置訪問權限,實現類成員信息的隱藏。關于繼承性:通過繼承可實現代碼重復利用。Java中的類基本都是通過直接或間接地繼承java.lang.Object類而得到的。在父類中,如果成員變量和方法的訪問權限為private,則不能被子類繼承。父類的方法能夠被子類重寫,子類與父類同名的成員變量也能被子類重命名,但Java語言不能夠實現多重繼承。關于多態性:在java語言中,多態性體現在兩個方面:靜態多態性和動態多態性,靜態多態性也稱為編譯時多態,在編譯階段,編譯器會根據參數的不同來靜態確定具體調用哪個被重載的方法,由方法重載實現;動態多態性也稱為運行時多態,由方法重寫實現。程序中凡是使用父類對象的地方,都可以用子類對象來代替。一個對象可以通過引用子類的實例來調用子類的方法。

4 結語

總之,面向對象重視對現實世界的抽象,用于解決“做什么”在面向對象設計中,類封裝了數據,而類的成員函數作為其對外的接口,抽象地描述了類。用類將數據和操作這些數據的函數放在一起,這可以說就是面向對象設計方法的本質。而面向過程的設計方法重視對問題的功能模塊化,用于解決“怎么做”。

參考文獻

[1]譚娟.面向過程和面向對象程序設計的比較[J].湖南科技學院學報,2008,(12):117-118.

[2]石博文.淺談面向對象和面向過程程序設計[J].電子世界,2017,(1):59-60.endprint

主站蜘蛛池模板: 日韩精品毛片人妻AV不卡| 自拍偷拍一区| 欧美日韩国产系列在线观看| 精品国产污污免费网站| 国产精选小视频在线观看| 她的性爱视频| 久久免费观看视频| 国产乱子伦视频在线播放| 欧美色视频日本| 高清无码手机在线观看 | 免费看久久精品99| 97在线国产视频| 国产乱子伦精品视频| 白浆视频在线观看| 欧美日韩在线亚洲国产人| 欧美日韩va| 91精选国产大片| 国内精品久久久久鸭| 色综合中文综合网| 中文字幕日韩丝袜一区| 欧美成一级| 青青草国产在线视频| 精品国产乱码久久久久久一区二区| 多人乱p欧美在线观看| 女高中生自慰污污网站| 亚洲国产精品日韩av专区| 啊嗯不日本网站| 91国内视频在线观看| 青青青亚洲精品国产| 99er这里只有精品| 欧美19综合中文字幕| 99久久国产综合精品2020| 国产午夜福利在线小视频| 亚洲午夜福利精品无码不卡 | 毛片免费高清免费| 欧美亚洲香蕉| 国产精品久久国产精麻豆99网站| 青青操视频在线| 国产成人一区在线播放| 少妇被粗大的猛烈进出免费视频| 国产在线自乱拍播放| 国产精品网址在线观看你懂的| 欧美不卡在线视频| 九九视频免费看| 国产成人1024精品| 日本精品αv中文字幕| 国产成人三级在线观看视频| 免费啪啪网址| 无遮挡国产高潮视频免费观看| 成人噜噜噜视频在线观看| 黄色网页在线播放| 国产欧美又粗又猛又爽老| 国产成人精品第一区二区| 国产女人在线视频| 国产性爱网站| 97久久超碰极品视觉盛宴| 国产成人AV综合久久| 好久久免费视频高清| 国产激情无码一区二区免费| 九色国产在线| 激情综合网激情综合| 国产欧美日韩va另类在线播放 | 国产成人免费观看在线视频| 久久综合五月婷婷| 91欧美在线| 亚洲精品爱草草视频在线| 色综合中文字幕| 精品一区二区三区四区五区| 欧美视频免费一区二区三区| 黄色网址手机国内免费在线观看| 一级毛片免费观看不卡视频| 亚洲天堂精品在线| 亚洲国产成人精品青青草原| 中文字幕在线欧美| 久久视精品| 国产高潮流白浆视频| 啪啪免费视频一区二区| 中文字幕 欧美日韩| 一级毛片在线播放免费| 亚洲国产综合精品一区| 国产黄在线免费观看| 国产主播一区二区三区|