在C 程式設計裡面,什麼叫做物件導向 類 封裝 繼承 訊息 多型性?請具體解釋一下

2021-05-19 12:55:12 字數 4056 閱讀 4105

1樓:匿名使用者

物件導向就是一種程式設計方法,核心是開發物件模型。什麼是類?類是一組物件,這組物件都共享了這個類定義中宣告的一切東西,這些物件具有相同的屬性、行為以及相同的實現方式。

比如高一(1)班所有同學就構成了一個類(高一一班學生)。封裝有兩層含義:1.

將一些相關的屬性(資料)和行為(函式)放在一起,行成一個類;2.將類的實現(私有部分)與介面(公有部分)分離。訊息就是函式呼叫,向一個物件傳送訊息就是呼叫一個物件的成員函式。

繼承是一種結構,這種結構表示了是一種關係或者實現了**重用。多型指的是,一個名字可以代表一些不同的物件,只要這些物件都有共同的基類即可,這樣的話我們可以通過這個名字向這些物件傳送訊息(由基類定義),而這些不同的物件會以不同的方式來響應這個訊息。多型提供了更高階別的封裝(第二層含義),我們可以在基類定義介面,派生類提供實現。

希望能幫到你。

2樓:匿名使用者

解釋清楚這個估計得20萬字

什麼叫做物件導向?

3樓:夜璇宸

物件導向(object oriented,oo)是軟體開發方法。物件導向的概念和應用已超越了程式設計和軟體開發,擴充套件到如資料庫系統、互動式介面、應用結構、應用平臺、分散式系統、網路管理結構、cad技術、人工智慧等領域。物件導向是一種對現實世界理解和抽象的方法,是計算機程式設計技術 發展到一定階段後的產物。

擴充套件資料

存在問題

1、軟體重用性差

重用性是指同一事物不經修改或稍加修改就可多次重複使用的性質。軟體重用性是軟體工程追求的目標之一。

2、軟體可維護性差

軟體工程強調軟體的可維護性,強調文件資料的重要性,規定最終的軟體產品應該由完整、一致的配置成分組成。在軟體開發過程中,始終強調軟體的可讀性、可修改性和可測試性是軟體的重要的質量指標。實踐證明,用傳統方法開發出來的軟體,維護時其費用和成本仍然很高,其原因是可修改性差,維護困難,導致可維護性差。

3、不能滿足使用者需要

用傳統的結構化方法開發大型軟體系統涉及各種不同領域的知識,在開發需求模糊或需求動態變化的系統時,所開發出的軟體系統往往不能真正滿足使用者的需要。

4樓:戰術大師的海角

程序導向:關注點在於做了什麼,描述的是發展的過程

物件導向:關注點在於能做什麼,描述的是物件與物件之間的關係。

物件導向是將功能等通過物件來實現,將功能封裝進物件之中,讓物件去實現具體的細節;這種思想是將資料作為第一位,而方法或者說是演算法作為其次,這是對資料一種優化,操作起來更加的方便,簡化了過程。物件導向有三大特徵:封裝性、繼承性、多型性,其中封裝性指的是隱藏了物件的屬性和實現細節,僅對外提供公共的訪問方式,這樣就隔離了具體的變化,便於使用,提高了複用性和安全性。

對於繼承性,就是兩種事物間存在著一定的所屬關係,那麼繼承的類就可以從被繼承的類中獲得一些屬性和方法;這就提高了**的複用性。繼承是作為多型的前提的。多型是說父類或介面的引用指向了子類物件,這就提高了程式的擴充套件性,也就是說只要實現或繼承了同一個介面或類,那麼就可以使用父類中相應的方法,提高程式擴充套件性。

5樓:匿名使用者

帶介面的,介面自己弄成什麼樣,編譯出來就是什麼樣。

6樓:匿名使用者

vb就是,所見即所得。

c語言和c#,c++三者的區別是什麼?

7樓:哇哎西西

區別是:

1、語言使用難度不同

c++難度大於c#大於c語言。

2、面向的物件不同

c 語言是程序導向的,而 c++ 是物件導向的,c# 是一種完全物件導向的語言。

3、函式形式不同

c 語言有標準的函式庫,它們鬆散的,只是把功能相同的函式放在一個標頭檔案中;而 c++ 對於大多數的函式都是有整合的很緊密,特別是 c 語言中沒有的 c++ 中的 api 是對 window 系統的大多數 api 有機的組合,是一個集體。

c++ 不允許在一個建構函式中呼叫另外一個建構函式(稱為委派建構函式呼叫),而 c# 則允許。

4、圖形處理能力不同

c 語言標準中不包括圖形處理。

8樓:ooo藉口

三者都是計算機的程式語言 c語言是基礎語言 c#和c++是高階程式語言,c語言是程序導向的,主函式和函式的呼叫,但是c#和c++是物件導向的,可以通過類建立物件來實現相關功能,他們具有抽象性、封裝性、 繼承性 、多型性, 比起c語言來說跟複雜些。

c語言是程序導向的。

c++是c語言的升級版,c是c++的子集,c是程序導向的,c++是物件導向的。

c#繼承了c和c++的許多東西,但和兩者基本上已經完全不一樣了.可以把它當作一種全新的語言來學. c# 是一種完全物件導向的語言,而 c++ 不是,另外 c# 是基於 il 中間語言和 .

*** framework clr 的,在可移植性,可維護性 和強壯性都比 c++ 有很大的改進 。

9樓:鍋鋼

c語言與c++:c語言程式可直接放到c++的編譯器中編譯,所以說,c++包含了c語言,但在c++中又增加了物件導向的概念,但不是說c語言比不上c++,許多作業系統以及軟體都是用c語言程式設計出來的;

c語言與c#:c#是微軟公司開發出來的物件導向程式語言,繼承了c/c++的許多方面的特點,同時去掉了一些c/c++的複雜特性。

10樓:匿名使用者

java語言是一種完全的面嚮物件語言,雖然它的底層(執行時庫)是用c語言開發的,可是並不依賴於c。因為java的執行是在執行時庫的支援下進行的,所以執行效率比起可以更接近底層的c/c++來說效率會有所影響,不過java的類庫採用很好的設計理念設計,非常好用,也非常實用,已經成為業界的一種標準開發語言。它的跨平臺的特性尤其讓很多開發者歡迎,你只需要開發一次就能在所有安裝了java執行時庫的系統上執行。

java發展了十幾年了,可以應用領域非常之廣泛,web開發有jsp,j2ee,桌面領域現在有javafx。

c#是微軟開發的一種程式語言,語法類似java,幾乎就是從java的翻版。執行原理和java也類似,也是通過執行時庫的支援執行。不過支援的平臺還很有限。

java幾乎被所有平臺支援,而c#目前只被windows和linux支援,windows下的支援當然是由微軟自己開發的,而linux下的支援則有mono支援。實際上,mono也是把c#應用轉化為java應用而已,所以本質上,c#仍然只是被微軟自己的作業系統支援。應用平臺受到限制,是它最大的缺點。

c/c++的優點在於與底層比較接近,可以控制的粒度更加精細,是開發系統級應用的最佳選擇。關於缺點,我想正是源於其優點,因為它們能控制的程式設計元素粒度精細,所以程式設計比較困難,煩瑣,容易出錯。

java和c#都比較高階,可以看作高階語言的高階語言,優點是開發容易,但執行效率不如更為底層的c/c++。

具體選擇使用的時候,可以根據實際的專案需要選擇。執行效率要求高的,底層控制要求高的用c/c++,否則可以選擇java或c#;跨平臺的要求高的可以用java。

關於跨平臺,c/c++也是很好的語言,因為所有平臺都支援,不同的是,不同平臺支援的實現不同,類庫不同,要編寫跨平臺的程式,需要選擇跨平臺的類庫,如標準類庫,如果標準類庫的支援不夠也只需要附加編寫一個跨平臺的支援類庫。

幾種語言內容都很多,在這裡就不詳細列舉了,要學好每一種都需要花費相當大的精力,祝你能有所成就

11樓:匿名使用者

簡單的來說,c++是c 的升級版。在c++中包括兩部分,一部分是程序導向程式設計,另一部分就是物件導向程式設計(這才是c與c++的根本區別)。c是隻有程序導向程式設計的。

如果還不懂,可以這樣說,在沒有c++以前,用c語言程式設計如果遇到很大的內容時,程式設計師要考慮的東西很多,致使很容易出錯,降低的效率,所以就產生了c++,c++用物件導向的方法使在進行大專案程式設計時效率倍增。另外同樣是程序導向的程式設計,c與c++的語法也不盡相同。

12樓:陌路櫻花淚

c是最早的原型,c++是從c的基礎上發展來的,由c的程序導向的語言,到c++物件導向的語言,到了c#就是完全物件導向的了

13樓:匿名使用者

c語言是基礎,c++是從c語言發展的,c#是物件導向的語言

物件導向程式設計語言與程序導向程式設計語言有什麼區別啊

首先要理解什麼是面向對 抄象程式設計和麵向bai過程編 程。至於語言,面du向物件的語言只是在zhi程序導向語言基dao礎上增加了類和物件的概念 即可以同時封裝資料和函式,例如c 的類 之前程序導向的語言只能封裝資料,例如c的結構體。物件導向的語言和麵向過程有什麼區別啊 一 程式設計思bai想不同 ...

什麼是物件導向的程式設計方法,什麼是物件導向物件,什麼是程序導向,什麼是物件導向

我給你說通俗點,首先,物件導向的三大原則是封裝,繼承,多型。物件導向,就是根據實際情況不同的物件自己定義一個型別來配合解釋。也就是自己定義一個型別,比如說我要一個銀行使用者,如果用int char這些來定義他顯然不合適,根據物件導向,我可以自己定義一個合適他的型別來裝他。我給你說的是最基本的和通俗的...

javascript物件導向程式設計有什麼方法

object 物件 最難。因為javascript的object模型很獨特,和其他語言都不一樣,初學者不容易掌握。怎麼提高物件導向程式設計能力?物件導向的概念和應用已超越了程式設計和軟體開發,擴充套件到很寬的範圍。如資料庫系統 互動式介面 應用結構 應用平臺 分散式系統 網路管理結構 cad技術 人...