對抽象編程
『壹』 為什麼要開發抽象編程語言
因為這樣可是使代碼永遠不過時(理想)
『貳』 面向切面編程 面向介面編程 面向抽象編程 面向對象編程
面向對象》面向介面》面向切面,越來越「高級」的程序設計方式。面向抽象這個概念相比另三個概念是個抽象概念,既這三者都是面向抽象,這也可以說成是這三者的聯系,區別就是層次不同:面向對象是語言層次的編程方式,面向介面既是語言層次又是設計模式層次,而面向切面編程則可算做是框架層次,越來越「高級」。
至於具體的定義和用法,自己網路吧。
『叄』 為什麼面向對象技術強調要針對抽象編程,而不要針對具體編程
當你已經有一段程序之後,想要在其基礎上做一點功能上的修改來獲得新的代碼,這時就可以繼承之前的基類,然後自己進行一些補充生成新的派生類,可以更為方便的繼承已有的程序。簡單地說面向對象的編程的特點就是封裝、繼承與多態
如果您認可我的答案,請採納。
您的採納,是我答題的動力,O(∩_∩)O謝謝!!
『肆』 請問C++語言的抽象編程問題
行為抽象,比如長方形,其必有的行為就是繪制,那麼繪制這個行為可以抽象成一個函數就是繪制函數(內容就是如何繪制一個長方形)。而數據抽象,長方形基本要素就是長寬,那麼這個兩個值就可以抽象成長方形的兩個基本數據,長和寬。
至於數據結構,上網找吧,真的很多解釋的。最基本的數組就是一種數據結構。
『伍』 求助:Java 面向抽象編程問題
擦....面向抽象編程...........亮瞎了.....
『陸』 在面對對象編程中抽象類的特點什麼
抽象類的特點:
1、抽象類的方法可以是抽象的,也可以是不抽象的。
2、抽象類的方法可以全是抽象的,也可以全是不抽象的。
3、有抽象方法的類必須是抽象類,或者是介面(但是介面的方法定義必須是public static abstract 修飾)。
4、子類繼承抽象類,必須實現抽象類的所有抽象方法。
5、抽象類不能被實例化,沒有構造函數。
6、子類中的抽象方法不能與父類的抽象方法同名。
7、抽象類的默認屬性修飾符是public abstract。
8、抽象類的屬性不能定義成靜態的。
9、如果抽象類的抽象方法不被重寫,那麼子類也必須是抽象類。
『柒』 抽象編程的介紹
抽象編程是通過抽象的方法來減少編程工作量或有效地減輕編程難度稱為抽象編程將問題通過功能分解,各個擊破的編程方法(過程化編程) 是一種以行為抽象為主的抽象編程將問題通過實體分析,分層分類地實現抽象數據類型,從而進行簡單應用編程(基於對象編程)是一種以數據抽象為主的抽象編程這種抽象編程,通過數據類型復用,方便編程,方便維護和擴展,其效果比過程化編程更好編程語言中沒有許多具體的數據類型要解決實際問題,很大部分工作是要建立數據模式與實際問題的對應,也就是建立抽象數據類型的過程對象化編程就是基於分層分類的抽象數據類型之具體編程,它能更好地實現數據結構和演算法,便是將N.Wirth的程序公式:程序=演算法+數據結構具體化為:程序=演算法+抽象數據類型
『捌』 抽象編程的編程質量
(Programming Quality ) 通過使用更好的編程方法可以從本質上改進可讀性通過使用定義良好的演算法和語句控制結構,可以局部改進演算法的可理解性通過學習和使用優秀程序員的編碼習慣,採用一貫的編碼風格,可以增強可讀性。
注意:
高級程序員與初學者對可讀性的把握分寸是不同的易編程性:
只是對採用好的編程方法或更高級語言而言,抽象程度越大,越易編程對象化編程在抽象數據類型的創建上做了大量的工作,因而贏得了應用程序編寫的方便與快捷比如數組,無法整體復制,無法擴容,但是向量則可以。 編程在演算法設計上是挖空心思的勞動過程,而在運用語言對之描述上應該瀟灑自在:容易表達,不容易出錯,運行上更安全。
好的編程方法能夠幫助程序員實現瀟灑編程抽象數據類型中可以將大量安全代碼嵌入其中,從而使應用編程瀟灑自在實現抽象數據類型的過程本身也是使用其他抽象數據類型的應用編程,同樣也充滿著瀟灑與自在
void f(char* s)
{
string s1,s2=s; //第一種
s1=s;
char* st=new char[strlen(s)+1]; //第二種
strcpy(st,s); char a[40]; //第三種
strncpy(a,s,sizeof(a));
a[sizeof(a)-1]=『 』;
} 指局部修改不影響系統全局的總體性能,而系統產生的問題通常可以通過局部維護(修改或更換部件) 來解決。
模塊化編程使程序可拆裝,可局部修改,而不影響整體性能與工作,因而可維護性強,過程化編程是將過程模塊化,具有一定的可維護性;
對象化編程是將數據類型也模塊化,從而導致更方便的維護性能可擴充性:指系統擴展時,只增加擴展代碼,而對原系統的正常運作只作很少的修改甚至不修改功能擴展的影響:
過程化編程,會涉及多處擴展代碼與原系統不和諧所帶來的修改對象化編程,如果是抽象數據類型的功能擴展,則不會影響原系統的正常運行,而只是支持應用程序中增加的一些擴展代碼而已;
如果是應用程序功能擴展,那是使用抽象數據類型的抽象代碼擴展,其修改量比之低級代碼要少效率
『玖』 什麼是抽象編程
顧名思義抽象編程是指在編程的過程中把大象抽出來。
如何在編程的過程中把大象抽出並保持程序的可移植性,這個一直以來是一個困擾全世界各類語言編程的程序員的一個難題。
最早提出抽象這個概念的是 達芬奇 在他的名畫中有著抽象的充分演示。
如果在一個項目中做到抽象編程的話,無疑是完美的。那麼在編譯型的語言中如果做到呢?
首先搭建環境,這個問題怎麼說呢?真是個見仁見智的。
在C語言中和在JAVA又或者在Python中如何搭建這個抽象的環境。
由於筆者最近熱衷於Python的開發。首先談談在Python中如何做到把大象抽出來的同時保證程序的完美的可移植性。
第一 建立一個抽象類庫。
打開IDLE,引入抽象的概念。
第二 告訴大象我們即將把你抽出來。這個對於大象來說是很不公平的,它肯定的回答NO
那麼我們是不是就不能把大象抽出來了呢?當然可以。大象是很笨的,我們可以先構造一個函數。內容包括香蕉芒果等大象愛吃的食物,先把大象「騙」出來。當然這個也是很有技巧的。騙出來以後大象暫時存在什麼地方呢?眾所周知Python講究效率、快捷的開發注重的是解決問題。那麼,我們到哪裡去找個那麼大的空間把大象存進去呢?答案當然是動物園啦。首先與管理員協調暫存事宜。待需要的時候在把大象引入回來。
第三 大象的引入問題
這個時候相信大家對把大象存在什麼位置已經有了個初步的了解,但是如果管理員很熱愛大象的話,給大象提供的伙食比我們先前的要好。那麼這個時候引入無疑會增加成本。必須提供更好的伙食條件大象才有可能原因再次回來我們預先的架構中繼續工作。那麼在作者的BLOG中有著一套比較完整的解決方案。下面的參考地址會給出作者的Blog地址。請大家爭相傳閱。
總結:抽象編程的原理大家都清楚了。需要解決的主要問題就是把大象抽出後的再次引用問題。這個也是本文的難點。希望對大家有所幫助。
『拾』 有看過 斯坦福大學 抽象編程的嗎
銜接編程方法論課程,不是c++語言的課程.而且有大量作業。如果去過stanford的官網可以下載作業,我記得第一個作業是生成一個可移動的圖案,用的是他們自己的庫,不過沒答案也沒講解。只看視頻是不夠的。現在MOOC很流行課程眾多,有視頻,作業,交流。網易的雲課堂,學堂在線,coursera都很好