C 類入門1 物件和類的介紹

2022-05-23 15:06:10 字數 2874 閱讀 7006

物件導向是(oop)是特殊的、設計程式的概念性方法;包含以下特性:

為了實現這些特性並且將這些特性組合在一起,c++所做的最重要的改進是提供了類。

l  如何定義類;

l  如何為類提供公有部分和私有部分;

l  如何建立使用類資料的成員函式;

l  建構函式和析構函式是什麼?是特殊的成員函式;建立和刪除屬於當前類的物件;

l  this指標;

l  運算子過載和繼承,**重用的基礎;

****************************************==

優先考慮如何表示資料,資料的操作;

使用者與資料互動的方式有:初始化、更新和報告;——即使用者介面;

****************************************==

處理生活中複雜性的方法是:簡化和抽象;

將問題的本質特徵抽象出來,並根據特徵來描述解決方案;

介面描述了使用者如何初始化,更新和顯示資料;

指定基本型別完成了三項工作:

l  決定資料物件需要的記憶體數量;

l  決定如何解釋記憶體中的位;

l  決定可使用資料物件執行的操作或方法;

對於內建型別來說,有關操作的資訊被內建到編譯器中。但在c++中定義使用者自定義的型別時,必須自己提供這些資訊。付出這些勞動換來了根據實際需要定製新資料型別的強大功能和靈活性。

是一種將抽象轉換為使用者定義型別的c++工具。它將資料表示和操縱資料的方法組合成乙個整潔的包。

定義類:類規範由兩個部分組成

類宣告:以資料成員的方式描述資料部分,以成員函式的方式描述公有介面;

類方法定義:描述如何實現類成員函式;

什麼是介面

介面是乙個共享框架;供兩個系統互動時使用;

對於類,我們所說的公共介面,由編寫類的人提供的方法組成。介面讓程式設計師能夠編寫與類物件互動的**。公共(public)就是使用類的程式,就是使用者。要使用某個類,必須了解其公共介面;要編寫類,必須建立其公共介面。

開發乙個類,並編寫乙個使用它的程式,需要完成多個步驟。

通常c++程式設計師將介面(類定義)放在標頭檔案中,將實現(類方法的**)放在源**中。

訪問控制

private

public

描述了對類成員的訪問控制。使用類物件的程式都可以直接訪問公有部分,但只能通過公有成員函式來訪問物件的私有成員。公有成員函式時程式和物件的私有成員之間的橋梁,提供了物件和程式之間的介面。防止程式直接訪問資料被稱為資料隱藏。

此外c++還提供了第三個訪問控制關鍵字protected。

類設計盡量將公有介面實現細節分開。公有介面表示設計的抽象元件。將實現細節放在一起並將它們與抽象分開被稱為封裝。資料隱藏(將資料放在類的私有部分)是一種封裝,將實現的細節隱藏在私有部分中,也是一種封裝。封裝的另乙個例子是,將類函式定義和類宣告放在不同的檔案中

oop是一種程式設計風格。資料隱藏防止直接訪問資料,還可以讓開發者無需了解資料是如何被表示的。只需要知道成員函式需要什麼引數及返回什麼型別即可。原則是將實現細節從介面設計中分離出來。

從程式維護角度上來看:如果以後找到更好的資料表示及成員函式細節的方法,可以從細節處修改,而無需修改程式介面。這樣維護起來更加容易。

私有還是公有

無論類成員是資料成員還是成員函式,都可以在類的公有部分或私有部分中宣告它。由於資料隱藏是oop主要的目標之一,因此資料項通常放在私有部分,組成類介面的成員函式放在公有部分。否則就無法從程式中呼叫這個函式。

為類宣告中原型表示的成員函式提供**。

成員函式區別與普通函式的特徵:

定義成員函式時,使用作用域解析運算子(: :)來標識函式所屬的類;

類方法可以訪問類的private元件;

void stock: : update(double price);

update()具有類作用域,stock的其他成員函式不必使用作用域解析運算子就可以使用update()方法,這是因為它們屬於同乙個類,因此update()是可見的。在類宣告和方法定義之外使用update()需要採取特殊措施。

方法的第二個特點是:可以直接訪問類的私有成員。

類宣告中的函式都是會被定義成內聯函式;

建立類的物件

stock kate, joe;

呼叫成員函式,使用物件的成員函式,和使用結構成員一樣,通過成員運算子:

kate.show();

joe.show();

所建立的每個新物件都有自己的儲存空間,用於儲存其內部變數和類成員。但同乙個類的所有物件共享同一組類方法,即每一種方法只有乙個副本。

例如:假設kate,joe都是stock物件,則kate.shares將佔據一塊記憶體,joe.shares將佔據一塊記憶體,但是kate.show()和joe.show()都呼叫同乙個方法,也就是說,它們將執行同乙個**塊,只是將這些**用於不同的資料。

在oop中呼叫成員函式,被稱為傳送訊息。將同樣的訊息傳送給兩個不同的物件將呼叫同乙個方法,但該方法被用於兩個不同的物件。(物件有各自的資料成員,但是共享一套成員函式)

C 入門分享(五) 物件與類

到目前為止,我們介紹了組成c 語言的主要模組,包括變數 資料型別和程式流語句 並簡要介紹了乙個只包含main 方法的完整小例子。但還沒有介紹如何把這些內容組合在一起,構成乙個完整的程式,其關鍵就在於對類的處理。一 類與結構 類和結構實際上都是建立物件的模板,每個物件都包含資料,並提供了處理和訪問資料...

C 學習筆記4 物件和類

最近有點煩有點煩,還是學習使我快樂,嗯,學習使我快樂 過程性程式設計 首先考慮要遵循的步驟,然後考慮如何表示這些資料。物件導向程式設計 首先考慮資料 如何表示資料和如何使用資料 然後使用新的設計方案建立出程式。2.1 類規範 2.2 訪問控制 2.3 類和結構 結構具有與類相同的特性,它們唯一的區別...

2 物件與類

在乙個檔案中,只能有乙個公共類,但是可以有任意數量的非公共類。final修飾的例項,必須在構造物件時初始化 初始化塊 在乙個類的宣告中,可以包含任意多的 塊。只要構造這個類的物件,這些塊就會被執行。class employee public employee public static void m...