c的面向對象編程
面向對象的編程思想是這樣的:萬事萬物皆對象,說白了就封裝.
將程序所有用的所有東西都封裝起來.
簡單的說:你需要一輛車。
非面向對象的程序是這個樣的:你需要定義一個車屬性(即變數):顏色,時速,車的類型。
當然這是一輛車你可以這樣定義:但是如果10輛車呢,你需要定義30個不同名的變數,復雜可維護性極差,有時候自己都搞不清哪個變數對應的那輛車。
但是面向對象的是容易多了,定義一個車的類:顏色,時速,車的類型。
要10輛車,定義10輛車的變數就可以,10兩車就擁有顏色,時速,車的類型的屬性了。你只需要操作者10個變數就等於操作10車。
㈡ 在C語言中,什麼叫做面向對象,什麼叫做面向過程
面向對象和面向過程都是編程思想,分別以對象和過程為主要目標進行編程。
1、面向對象:面向對象(ObjectOriented)是一種軟體開發方法。ObjectOriented的概念和應用已經超越了編程和軟體開發。面向對象是一種理解和抽象現實世界的方法。它是計算機編程技術發展的產物。
2、面向過程:面向過程(Procere Oriented)是一種以過程為中心的編程思想。面向過程都是以正在發生的過程為主要目標進行編程,與面向對象明顯的不同就是封裝、繼承、類。
(2)c的面向對象編程擴展閱讀:
面向對象和面向過程的區別:
1、分析問題方式的不同:
面向過程是分析解決問題所需的步驟,然後使用函數逐步實現這些步驟,使用時一個接一個。
面向對象是將問題事務分解為各種對象。對象的建立不是為了完成一個步驟,而是為了描述一個事物在解決問題的整個過程中的行為。
2、解決問題的方法的不同:
面向過程其實是最為實際的一種思考方式,就算是面向對象的方法也是含有面向過程的思想。可以說面向過程是一種基礎的方法。它考慮的是實際地實現。一般的面向過程是從上往下步步求精,所以面向過程最重要的是模塊化的思想方法。
對比面向過程,面向對象的方法主要是把事物給對象化,對象包括屬性與行為。當程序規模不是很大時,面向過程的方法還會體現出一種優勢。
參考資料來源:網路-面向對象
參考資料來源:網路-面向過程
㈢ c語言是面向過程的還是面向對象的
c語言是面向過程的。面向過程是著重於其中程序設計的演算法、語言的運用,如設計不同功能的函數。
C++是面向對象的。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。
c語言的特點:
1、代碼具有較好的可移植性
C語言是面向過程的編程語言,用戶只需要關注所被解決問題的本身,而不需要花費過多的精力去了解相關硬體,且針對不同的硬體環境,在用C語言實現相同功能時的代碼基本一致,不需或僅需進行少量改動便可完成移植,這就意味著,對於一台計算機編寫的C程序可以在另一台計算機上輕松地運行,從而極大的減少了程序移植的工作強度。
2、可生成高質量、目標代碼執行效率高的程序
與其他高級語言相比,C語言可以生成高質量和高效率的目標代碼,故通常應用於對代碼質量和執行效率要求較高的嵌入式系統程序的編寫。
㈣ 如何用C語言實現面向對象
可以通過以下方法實現面向對象:
1、封裝
封裝就是把數據和方法打包到一個類裡面。其實C語言編程者應該都已經接觸過了,C 標准庫 中的 fopen(), fclose(), fread(), fwrite()等函數的操作對象就是 FILE。
數據內容就是 FILE,數據的讀寫操作就是 fread()、fwrite(),fopen() 類比於構造函數,fclose() 就是析構函數。
2、繼承
繼承就是基於現有的一個類去定義一個新類,這樣有助於重用代碼,更好的組織代碼。在 C 語言裡面,去實現單繼承也非常簡單,只要把基類放到繼承類的第一個數據成員的位置就行了。
例如,我們現在要創建一個 Rectangle 類,我們只要繼承 Shape 類已經存在的屬性和操作,再添加不同於 Shape 的屬性和操作到 Rectangle 中。
3、多態 C++
語言實現多態就是使用虛函數。在 C 語言裡面,也可以實現多態。 現在,我們又要增加一個圓形,並且在 Shape 要擴展功能,我們要增加 area() 和 draw() 函數。
但是 Shape 相當於抽象類,不知道怎麼去計算自己的面積,更不知道怎麼去畫出來自己。而且,矩形和圓形的面積計算方式和幾何圖像也是不一樣的。
4、虛表和虛指針
虛表(Virtual Table)是這個類所有虛函數的函數指針的集合。
虛指針(Virtual Pointer)是一個指向虛表的指針。這個虛指針必須存在於每個對象實例中,會被所有子類繼承。
5、在構造函數中設置vptr
在每一個對象實例中,vptr 必須被初始化指向其 vtbl。最好的初始化位置就是在類的構造函數中。
事實上,在構造函數中,C++ 編譯器隱式的創建了一個初始化的vptr。在 C 語言裡面, 我們必須顯示的初始化vptr。下面就展示一下,在 Shape 的構造函數裡面,如何去初始化這個 vptr。
㈤ 如何用C語言實現面向對象編程
相對於PASCAL、C一類的語言都是面向過程的語言。它的運行順序是固定的(按順序執行)。但C++面向對象,也就是說它的運行隨著你的觸發。假如你現在按了一個按鈕,那麼程序就會運行觸發按鈕的相應函數,所以它並不是按順序執行的。
㈥ C語言能不能面向對象
C++,objective-c肯定可以。
標准c,普遍的說法是不行。我說我自己的想法,如果編寫過面向對象的代碼,類這個名詞跟用戶不陌生吧!類基本上是面向對象編程的精髓。類無非就是,成員數據與成員方法的集合,通過某個指針我們能訪問到成員與方法。抽象、繼承、多態、重載是類的基本特種。
一般而言,c語言是面向過程的,函數式編程。用標准c求解問題。無非就是,定義結構體、共用體、枚舉、基本數據類型等,再定義一堆函數,來訪問操作這些數據。如果吧這些東西,劃分成在適當的文件,授予適當的許可權。c語言的每個源文件就相當於類。
抽象、多態,利用c99的無類型指針很好實現。繼承實現難度高,實現思想是利用指針可訪問到父對象成員。重載,c實現更簡單!此段別認為我是在瞎B吹牛。objective-c,swift這兩門編程語言,如果你要懂一點。可以看到這個理論的影子。當然這兩門語言有專用編譯器。跟c實現的面向對象編程有區別。
總結下來,用c實現面向對象,編程,難度大,不是寫應用程序開發人員該考慮的。建議別往這方向編寫程序。如java,c++,swift等等這些語言,能面向對象編程:
1、編譯器的難題別人解決了;
2、很多很多的基礎功能,按系統類庫已經提供,我們不用去編寫。
㈦ C語言是面向對象還是面向過程的
「C語言」面向過程和面向對象的區別是:面向過程是著重於其中程序設計的演算法、語言的運用,如設計不同功能的函數。面向對象,按書上說是在C語言的基礎上發展起來的,通俗說也就是更高一級的C語言,也就是C++,保留了大部分C語言的功能,而在設計方面卻著重於對象的處理,獲得更好地性能。
面向過程與面向對象的區別,由「如何把大象裝進冰箱」來看:
一、面向過程
為了把大象裝進冰箱,需要3個過程。
/* 思路:
1、把冰箱門打開(得到打開門的冰箱)。
2、把大象裝進去(打開門後,得到裡面裝著大象的冰箱)。
3、把冰箱門關上(打開門、裝好大象後,獲得關好門的冰箱)。
*/
//每個過程有一個階段性的目標,依次完成這些過程,就能把大象裝進冰箱。
//寫法一:
1:冰箱開門(冰箱)。
2:冰箱裝進(冰箱,大象)。
3:冰箱關門(冰箱) 。
//寫法一變體:
1:(冰箱開門 冰箱)。
2:(冰箱裝進 冰箱大象)。
3:(冰箱關門 冰箱)。
//寫法二:
冰箱關門(冰箱裝進(冰箱開門(冰箱),大象))。
//寫法二變體:
(冰箱關門 (冰箱裝進 (冰箱開門 冰箱) 大象))。
二、面向對象
為了把大象裝進冰箱,需要做三個動作(或者叫行為)。每個動作有一個執行者,它就是對象。
/* 思路:
1、冰箱,你給我把門打開。
2、冰箱,你給我把大象裝進去(或者說,大象,你給我鑽到冰箱里去)。
3、冰箱,你給我把門關上。
*/
//依次完成這些動作,你就可以把大象裝進去。
//寫法一:
1:冰箱.開門()
2:冰箱.裝進(大象)
3:冰箱.關門()
//寫法二:
冰箱.開門().裝進(大象).關門()
㈧ C語言可以實現面向對象編程嗎
c
語言是面向過程的,它不能面向對象,但c++能實現面向對象的程序設計,這涉及到了類和命名空間,只有學了才能具體了解。
㈨ C語言什麼是面向過程,什麼是面向對象
滿意答案冬夜讀書示子聿11級2011-10-29何必理會這個,別指望一個新人會理解面向對象。當你開始工作兩三年後,你自然而然就理解什麼叫面向對象。別整天聽人說面向對象有多麼牛,面向對象的基礎是面向對程。滿意答案大頭鬼4級2011-10-29C語言是面向過程。你了解下面向對象就知道區別了,「對象」大概就是一個程序的零部件,就是把一些函數、欄位、屬性(你暫時就想是C語言的一些函數和變數吧)包裝在一起,這么做的好處是什麼,利於重用,便於管理,好理解,總之好處一坨。就好比一輛車的一個部件,要換就換嗎,不會影響到整個程序的框架吧。
要深入還是比較抽象的,建議學C的時候順便看下C++或者其他面向對象語言
從網上找個項目看看。實踐學的比較快。