本文關鍵字:面向對象、面向過程、面向過程編程語言、面向對象編程語言
說到編程,對于初學者來講,可能第一想到的就是敲鍵盤,寫代碼,做游戲,甚至于會聯想到軟件破解、網絡***。另一方面,在學了一些編程的相關知識以后,一個最明顯的感覺就是:這東西有什么用?為什么我明明聽懂了卻還是解決不了實際的問題,甚至于完成不了相應的練習?這其中最主要的原因是什么呢?除了埋怨出的題目跨度太大意外,我們也應該好好的反思一下。
對于以上的問題,最主要的原因就是對于編程了解的不夠深入。這個深入指的不是我們要去了解他的發展歷史以及底層原理,而指的是我們要對編程有一個明確的定位,我們現在學的內容是什么,又能用來做什么?
很多同學在剛開始都會把和計算機相關的所有內容都和編程,敲代碼,程序員聯想到一起,這其中甚至包括:做系統、配路由、修電腦、做病毒等等腦洞大開的想法。這些想法很多是行外人的看法,但是也有一少部分發生在學習者身上,等開始學了才發現和預想的完全不一樣。
通常來說學習編程所對應的崗位就是開發工程師,開發工程師根據工作內容的不同又分為很多種:前端、后端、移動端、嵌入式、游戲開發、大數據等等。相同點在于都是完成一個應用產品,也就是在電腦上運行的軟件、通過瀏覽器訪問的應用、手機端運行的各種APP、各種硬件設備的監控、數據分析產品等等。
由于軟件編程是信息技術的一部分,因此,在學習時通常會用到網絡通信、操作系統、數據結構等等方面的知識,這時候往往就會一個頭兩個大了,因為這些學科可能不會去系統的學習,在接觸的時候會感覺整個體系十分龐雜,難以掌握,學到的東西又不知道什么時候才會派上用場。
對于以上的情況,首先我們需要做的就是先沉下心,越難掌握的東西往往會讓自身的價值更高。這也是為什么程序開發者相對高薪,無論你接受與否,這都是一條充滿挑戰且激動人心的學習之旅。那么,編程到底如何學呢?熟練的掌握基礎語法?背下每一段常用的代碼?當然不是。首先我們要把編程語言當做是工具,做它的主人。
我們現在所學的東西無非是那些偉大的人已經創造出來的東西,有一部分是固定的需要記憶下來的,就比如基礎語法,一些基本的操作步驟。另外一部分就是比較難掌握,也是最充滿魅力的部分,就是用已有的知識去解決一個實際的問題,而且通常這個問題都是自己之前沒有實現過的。歸結起來就是編程思想,對于初學者來說,就是解決一個問題的思路。
吳文俊院士曾經提出過“數學機械化”的概念,很多問題在前進一步之后都有一個確定的、必須選擇的下一步,這樣就可以沿著一條有規律的、刻板的道路,一直達到結論。
在編程和方法設計時我們也可以借鑒這樣一個思路。通常我們按照三個步驟來思考就好,What I want?What I need?How to do?當然這只是本人總結的,如果大家有更清晰的步驟可以分享。
- 第一步(What I want)
一定不要著急寫程序,特別是大腦一片空白不知道如何下手的時候。首先我們最應該做的是明確我們自己要做什么,把這個問題轉換為一個有步驟的邏輯問題,是一個簡單的順序結構,還是一個需要根據不同情況來進行選擇和循環,功能和功能之間存在哪些聯系,這是我們需要理清的。
在完成了第一步后,我們要在我們所學的知識當中來搜索,應該用到哪些基本結構或者已有的工具類和方法。如果還是沒有任何思路,那只能說學的還不夠扎實,或者又一次接觸到了知識的盲區。這個時候并不需要暴躁,去查就可以了,并且幸運的是,在完成了第一步之后我們在搜索時我們的問題會很有針對性。搜索的問題不再是:XX系統怎么做?XX功能怎么實現?而是如何處理XX(步驟),XX技術點(使用方法)。碰到沒有接觸過的東西是一件很正常的事情,你目前所遇到的問題一定是先前別人已經遇到的。即使你遇到的是一個稀有級或者史詩級的BUG,那么通過搜索后得到的信息也一定會對解決問題有所幫助。
完成了前兩步之后,最后一步其實就很簡單了。明確了自己要什么,用什么來做,剩下的就是怎么做了,把思路和工具結合,就是你的結果!所以大家需要明確的是,真正能寫出程序,讓他工作的是我們,不要把計算機想象的太過智能,每一個功能,包括細小的邏輯判斷都是從我們的需要出發來實現的。所以編程才會那么靈活多變,能開發出各種各樣的系統,做各種各樣的應用,這也就是最具魅力的地方。想一想,把自己的一個想法完整的實現出來,是一種什么樣的感覺?
首先我們來說一說面向過程的編程語言,這是一種編程思維,是以過程為中心的編程。主要的特點是先分析出解決問題需要的步驟,然后把每一步定義成一個一個方法,通過逐個調用的方式來完成整個功能。這樣的好處是十分直接,要解決什么問題就寫什么代碼,但是復用性會比較差。
如果使用面向過程的語言來完成,那么我將化身一個全能木匠,從準備原材料開始到家具成品,中間的所有步驟都要自己完成。首先是確定原材料、準備原材料、然后是制作形狀、上漆等步驟。在編程上體現為:主要通過方法調用來完成,一個程序解決一個特定的問題。
那么什么是面向對象編程呢?由于對象這個詞本身就很抽象,只要你不是按照下面這張圖片理解的,那么你還是可以學好面向對象編程的。
面向對象是被目前絕大多數主流編程語言采用的編程思想和軟件開發方法,并且由于這種概念的普適性,也已經在數據庫系統、應用平臺、分布式系統、人工智能等領域普遍使用。那么到底什么是面向對象編程呢?其實很簡單,我們只需要按照我們正常的思維方式去思考就行了,比如還是制作一個木制家具,那么在實際生活中是怎樣辦到的呢?
原材料準備,這應該是采購商的工作,其他的環節他無需插手;家具設計圖,這是設計公司的工作;找到合適的木匠,這是用人單位應該做的。誰來做家具呢?木匠。于是我們把這些人組合到一起就可以完成這樣一個工作,編程者更像是一個項目的負責人,需要知道完成這項工作需要用到哪些人,這些人應該能夠完成哪部分的工作,每個人各司其職。
從直觀來看,面向對象編程都有哪些特點呢?開銷大,這是肯定的,原來一個經驗豐富的老師傅能完成的工作現在要這么多人來完成,要創建這么多對象,內存的占用當然也是較多的。那有什么好處呢?我們把問題看的長遠一點,如果我們要求家具用不同的材質來做,采用更多的式樣來做,不單單是上漆,還要更多的裝飾式樣,這個時候會怎么樣呢?如果使用面向過程的語言,我們需要寫出很多很多個和要求匹配的程序,非常不利于維護。如果換成面向對象的語言呢?我們只需要告訴采購商:我要什么原材料;告訴設計公司:我要什么樣的家具;告訴用人單位:我要什么樣的木匠;告訴木匠:你該怎么做。雖然在前期要編寫很多代碼,但是在完成工作時可能只需要改變調用的參數就能解決很多問題。
總體來說,如果我們追求效率和資源,要以最小的開銷做出符合要求的產品,那拉上一幫人只為做那么幾件東西就顯得有些得不償失了,這個時候我們選擇使用面向過程語言比較合適。如果我們要做的是一個國際公司,可以適應不同國家地區不同人的要求,那么這個時候我們使用面向對象思維是很必要的,你總不能為每個需求都量身定做寫一套程序。
C語言、Fortran等
C++、C#、Java、Python等
另外有需要云服務器可以了解下創新互聯建站www.2m8n56k.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網頁題目:什么是面向對象編程-創新互聯
文章來源:http://www.2m8n56k.cn/article34/gjppe.html
成都網站建設公司_創新互聯,為您提供微信公眾號、網站維護、外貿網站建設、做網站、小程序開發、全網營銷推廣
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯