⑴ C#編程思想是什麼
C#的編程思想就是面向對象(oop)"面向對象"的核心在於,先把所有要解決的分類!
每一類都是包含有特定的屬性(功能)! 比如說如果你要用程序來模擬一類游戲角色,如游戲中的主角,它們會有男,有女,有戰士有法師等等,但實質上它們都有共同特徵,如所有的角色都有攻,防,生,魔等等相同的屬性,它們唯一不同的是在屬性的數值和屬性的數量上! 那麼,這時"面向對象"的編程思想實際上就是把前面所說的主角,都在程序時建立成一個對象, 該對象里用某一數據類型對應各主角所有屬性! 之後, 以後如果想建立一個戰士的話,那麼,就定義一個名字為"戰士"的對象,對象的結構就是剛才所說的結構! 然後再根據戰士的特點賦初值...之後,一個完整的角色就建立完成了...其它的,弓手,法師都是一樣的方法建立,不同的只是它們的屬性初始值!!!
從上面可以很明顯的看出,這樣的程式設計方法,在以後維護起來是非常直觀和簡便的...(因為,程序的結構和人對現實所理解的結構是很相近的)...當然,這種思想也有缺點...從上面就可以看出,盡管戰士可能沒有法師的魔法技能,但是在設計上,也得包含進去! 否則就很難統一在一起了! (當然,這個問題也可以把戰士,弓手,法師各自分類建立來解決,但這樣一來,當一個共同屬性要修改的時候,那麼就會從以前只需修改一個對象變成現成需要修改N個了,這樣一來,無異加大了以後的維護量!!! 其實,在用"面向對象"的編程思想來設計程序時,剛才的那個缺點是無可避免的. 因為,在同一類里,大多數情況都會有某一個個體對像的某個屬性是多餘的!!!,也就是,這樣肯定會浪費一定的系統資源!!!,當然,由這樣的方法帶來的方便和易維護也是非常直接實用的! 到底怎樣去設計,最後還得看具體情況)
⑵ 誰能解釋下面向對象編程思想啊
面向對象的基本觀點 :客觀世界由對象組成,任何客觀實體都是對象,復雜對象可以由簡單對象組成。具有相同數據和操作的對象可以歸納成類,對象是類的實例。類可以派生出子類,子類除了父類的全部特性外還有自身的特性。對象之間的聯系通過消息來聯系,類的封裝性決定了其數據只能通過消息請求調用可見方法來訪問。
⑶ 在c語言中,什麼叫做面向對象,什麼叫做面向過程
面向對象和面向過程都是編程思想,分別以對象和過程為主要目標進行編程。
1、面向對象:面向對象(ObjectOriented)是一種軟體開發方法。ObjectOriented的概念和應用已經超越了編程和軟體開發。面向對象是一種理解和抽象現實世界的方法。它是計算機編程技術發展的產物。
2、面向過程:面向過程(Procere Oriented)是一種以過程為中心的編程思想。面向過程都是以正在發生的過程為主要目標進行編程,與面向對象明顯的不同就是封裝、繼承、類。
(3)c語言中的面向對象的編程思想擴展閱讀:
面向對象和面向過程的區別:
1、分析問題方式的不同:
面向過程是分析解決問題所需的步驟,然後使用函數逐步實現這些步驟,使用時一個接一個。
面向對象是將問題事務分解為各種對象。對象的建立不是為了完成一個步驟,而是為了描述一個事物在解決問題的整個過程中的行為。
2、解決問題的方法的不同:
面向過程其實是最為實際的一種思考方式,就算是面向對象的方法也是含有面向過程的思想。可以說面向過程是一種基礎的方法。它考慮的是實際地實現。一般的面向過程是從上往下步步求精,所以面向過程最重要的是模塊化的思想方法。
對比面向過程,面向對象的方法主要是把事物給對象化,對象包括屬性與行為。當程序規模不是很大時,面向過程的方法還會體現出一種優勢。
參考資料來源:網路-面向對象
參考資料來源:網路-面向過程
⑷ 什麼是面向對象的編程思想可以用一個形象的例子說明一下么
時間萬物皆是對象,也就是說你能看得見的或者看不見的東西,只要實際存在,它就是對象。對象是就某個具體個體而言的。
比如你自己的班級,對於你來說,你們班就是一個班級對象。而班級中的某個具體的人,他也是一個對象。
面向對象的編程思想就是把你需要解決的問題中的所有具體的東西,都看成一個對象,然後把所有具有相同性質的對象組成一個類,那些與問題無關的對象則忽略。
舉個簡單的例子:計算你們班所有人某次測驗數學的總成績。從下到上分析這個問題的所有對象。
要計算成績,成績必須有吧,那麼一份成績就是一份對象; 成績哪裡來呢,你們班同學的,如果你們班33個人,那麼就是33個同學對象;既然計算你們班整體成績,那麼你們班級也是個對象。
其他與這個問題無關的對象可以不管,也就是說,這個時候他們是不是對象跟你無關,
比如如果只要計算你個人的成績,那麼班級這個對象,就與這個問題無關,這時候只需要兩個對象。但是如果就每個對象編程的話,33個人就是33個對象,都寫一遍,寫死你都不夠。
雖然每個人的個性不一樣,但是跟我們的問題無關,每個人都有成績這點是相同的,所以33個人其實在這個時候就是一個人。只要把他們定義成一個變數就行了,這就是類的概念。
比如對於數字,11,2,3,4,5,每個數字都是一個對象,但是他們具有相同的特點,把他們分成一個int類,用變數的形式表示具體的對象就可以了。
語言表達不行,不知道有沒有說清楚,希望對你有點幫助。
⑸ 簡述面向對象編程思想的三大特徵
1*繼承
繼承是一種聯合類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表達共性的方法。對象的一個新類可以從現有的類派中產生這個過程叫做類繼承。新類繼承了原始類的特性,新類成為原始類的派生類即子類,而原始類稱為新類的基類即父類。派生類可以從它的基類那裡繼承方法和實例變數,並且類可以修改或增加新的方法使之更加適合特殊的需求。
2*封裝
封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的畫面。面對對象計算始終與這個基礎概念及現實世界可以被描繪成一系列完全自治封閉的對象,這些對象通過一個受保護的介面訪問其他對象。
3*多態性
多態性是指不同類的對象對同一消息做出響應多態性包括參數化多態性和包含多態性。多態性語言具有靈活抽象行為共享代碼共享的優勢很好地解決了應用程序函數同名問題。
⑹ 面向對象(1)
1、面向對象是一種編程思想, 把一切東西看成一個個對象 。把這些類擁有的 屬性變數 和操作這些屬性變數的 函數 打包成一個類。
2、面向過程和面向對象區別
面向過程 :根據業務邏輯從上到下編寫代碼
面向對象 :將數據和函數進行封裝,可以快速開發,減少重復代碼的重寫。
封裝 、 繼承 、 多態
1、封裝
將數據和操作數據方法進行結合,隱藏對象的屬性和實現細節,僅對外公開介面來和對象進行交互。 封裝的本質就是管理 。
2、繼承
可以使用現有類的所有功能,並在不需要重寫原理類的情況下進行功能擴展。
繼承方式:
3、多態
同 一操作作用於 不同 的對象,可以有 不同 的解釋,產生 不同 的執行結果,這就是多態性。就是用 基類的引用指向子類的對象 。
多態實現: 重寫 、 重載
1、重寫
指 派生類 中存在重新定義的函數。其 函數名 、 參數列表 、 返回值類型 ,所有都必須同 基類 中被重寫的函數 一致 ,派生類對象調用時會調用派生類的重寫函數,不會調用被重寫函數。
重寫的基類中被重寫的函數必須有 virtual修飾 。
示例:
2、重載
我們在平時寫代碼中會用到幾個函數但是他們的實現功能相同,但是有些細節卻不同。在 C++中人們提出了 用一個函數名定義多個函數,也就是所謂的函數重載 。
1 、 C++利用 命名傾軋(name mangling)技術 ,來改名函數名,區分參數不同的同名函數。 命名傾軋是在編譯階段完成的。
2 、 在 基類的函數前加上virtual關鍵字 ,在派生類中重寫該函數,運行時將會根據對象的實際類型來調用相應的函數。
對象類型是派生類,就調用派生類的函數;對象類型是基類,就調用基類的函數。
c語言中不允許有同名函數,因為編譯時函數命名是一樣的,不像c++會添加參數類型和返回類型作為函數編譯後的名稱,進而實現重載。如果要用c語言顯現函數重載,可通過以下方式來實現:
1、使用 函數指針來實現 ,重載的函數不能使用同名稱,只是類似的實現了函數重載功能。
2、 重載函數使用可變參數 ,方式如打開文件open函數。
3、 gcc有內置函數 ,程序使用 編譯函數 可以實現函數重載
示例:
1、默認構造和初始化構造 。定義類的對象時完成初始化工作。
示例:
有有參構造,編譯器不再提供默認的構造函數。
2、拷貝構造
3、 移動構造函數。 用於將其他類型的變數,隱式轉換為本類對象 。下面的轉換構造函數,將int類型的r轉換為Student類型的對象,對象的age為r,num為1004。
無參的構造函數、拷貝構造函數、賦值運算符、析構函數(非虛 )。
總結 :
父類構造函數 –> 成員類對象構造函數 –> 自身構造函數
析構順序和構造順序相反
⑺ 什麼是面向對象編程思想
面相對象不是某一種語言的特性,而是一種編程思想。面向對象的編程的主要思想是把構成問題的各個事物分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描述一個事物在解決問題的過程中經歷的步驟和行為。
面向對象的三大特徵分別是:封裝、繼承、多態,這三者是面向對象編程的基本要素
面向對象編程(Object-oriented Programming,縮寫:OOP)
是軟體工程中一種具有對象概念的編程範式(Programming Paradigm),同時也是一種程序開發的抽象方針,與之對應的編程範式還有:函數式編程(Functional Programming)、過程式編程(Proceral Programming)、響應式編程(Reactive Programming)等。
⑻ 真正的面向對象編程思想是怎樣的
真正的面向對象編程思想就是忘掉一切關於計算機的東西,從問題領域考慮問題.
1、將分析過程為抽象的過程:簡言之:分成多個小問題(組成部分),直到無法再細;
2、對每個對象(小問題)進行分析,抽象,提取處共同的內容(數據成員和操作方法),
3、有相似的對象的,構造基類;再有基類派生出各個確定的對象(小問題);
4、解決問題的過程就是操作這些對象的過程
⑼ C語言的面向過程和C++的面向對象分別是什麼意思
C++和C的差別還是比較多的。
初學的話,可以認為C++是C的超集,除了支持C的面向過程,還支持面向對象編程。
面向過程就是以過程為中心的編程思想。分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了。以公共汽車為例,在面向過程的思想里,汽車啟動是一個事件,汽車到站是另一個事件。在編程序的時候我們關心的是某一個事件,而不是汽車本身,所以要分別對啟動和到站編寫程序。
面向對象是一種以事物為中心的編程思想。以公共汽車為例,我們關心的是由汽車抽象成的對象,這個對象有自己的屬性,像輪胎、顏色等;有自己的方法,像象啟動、行駛等,方法是汽車的行為,而不是汽車的每個事件。面向對象需要建立一個汽車的實體,由實體引發事件,所以要分別針對汽車的屬性和行為編寫程序。
⑽ JAVA和C#中面向對象編程思想是什麼
從現實世界中客觀存在的事物(即對象)出發來構造軟體系統,並在系統構造中盡可能運用人類的自然思維方式,強調直接以問題域(現實世界)中的事物為中心來思考問題,認識問題,並根據這些事物的本質特點,把它們抽象地表示為系統中的對象,作為系統的基本構成單位(而不是用一些與現實世界中的事物相關比較遠,並且沒有對應關系的其它概念來構造系統)。這可以使系統直接地映射問題域,保持問題域中事物及其相互關系的本來面貌。 說白了就是~一切皆為對象但是真正理解還是需要長期編碼,然後你某一天突然覺得頓悟了