19 C 類和物件的基本概念

2021-09-28 06:31:31 字數 2424 閱讀 3174

我們編寫程式的目的是為了解決現實中的問題,而這些問題的構成都是由各種事物組成,我們在計算機中要解決這種問題,首先要做就是要將這個問題的參與者:事和物抽象到電腦程式中,也就是用程式語言表示現實的事物。

那麼現在問題是如何用程式語言來表示現實事物?現實世界的事物所具有的共性就是每個事物都具有自身的屬性,一些自身具有的行為,所以如果我們能把事物的屬性和行為表示出來,那麼就可以抽象出來這個事物。

比如我們要表示人這個物件,在c語言中,我們可以這麼表示:

typedef

struct _personperson;

typedef

struct _aninalainmal;

void

personeat

(person* person)

void

animaleat

(ainmal* animal)

intmain()

定義乙個結構體用來表示乙個物件所包含的屬性,函式用來表示乙個物件所具有的行為,這樣我們就表示出來乙個事物,在c語言中,行為和屬性是分開的,也就是說吃飯這個屬性不屬於某類物件,而屬於所有的共同的資料,所以不單單是peopleeat可以呼叫person資料,animaleat也可以呼叫person資料,那麼萬一呼叫錯誤,將會導致問題發生。

從這個案例我們應該可以體會到,屬性和行為應該放在一起,一起表示乙個具有屬性和行為的物件。

假如某物件的某項屬性不想被外界獲知,比如說漂亮女孩的年齡不想被其他人知道,那麼年齡這條屬性應該作為女孩自己知道的屬性;或者女孩的某些行為不想讓外界知道,只需要自己知道就可以。那麼這種情況下,封裝應該再提供一種機制能夠給屬性和行為的訪問許可權控制住。

所以說封裝特性包含兩個方面,乙個是屬性和變數合成乙個整體,乙個是給屬性和函式增加訪問許可權。

2.1 封裝

把變數(屬性)和函式(操作)合成乙個整體,封裝在乙個類中

對變數和函式進行訪問控制

2.2 訪問許可權

在類的內部(作用域範圍內),沒有訪問許可權之分,所有成員可以相互訪問。

在類的外部(作用域範圍外),訪問許可權才有意義:public,private,protected。

在類的外部,只有public修飾的成員才能被訪問,在沒有涉及繼承與派生時, private和protected是同等級的,外部不允許訪問。

//封裝兩層含義

//1. 屬性和行為合成乙個整體

//2. 訪問控制,現實事物本身有些屬性和行為是不對外開放

class

person

//人的屬性(變數)

public

:int mtall;

//多高,可以讓外人知道

protected

:int mmoney;

// 有多少錢,只能兒子孫子知道

private

:int mage;

//年齡,不想讓外人知道};

intmain()

struct和class的區別?class預設訪問許可權為private,struct預設訪問許可權為public.

classa;

struct b

;void

test()

1.可賦予客戶端訪問資料的一致性。如果成員變數不是public,客戶端唯一能夠訪問物件的方法就是通過成員函式。如果類中所有public許可權的成員都是函式,客戶在訪問類成員時只會預設訪問函式,不需要考慮訪問的成員需不需要新增(),這就省下了許多搔首弄耳的時間。

2.可細微劃分訪問控制。

使用成員函式可使得我們對變數的控制處理更加精細。如果我們讓所有的成員變數為public,每個人都可以讀寫它。如果我們設定為private,我們可以實現「不准訪問」、「唯讀訪問」、「讀寫訪問」,甚至你可以寫出「只寫訪問」。

class

accesslevels

//對讀寫屬性進行讀寫訪問

void

setreadwrite

(int val)

intgetreadwrite()

//對只寫屬性進行只寫訪問

void

setwriteonly

(int val)

private

:int readonly;

//對外唯讀訪問

int noaccess;

//外部不可訪問

int readwrite;

//讀寫訪問

int writeonly;

//只寫訪問

};

基本概念 類和物件

class object 類物件 類是對一群有共同特徵的事物或事件的 集合。而類物件就是類的 例項化。類中的成員物件。乙個類的所有物件對應同乙個類物件。如現實世界中的動物是一種類,植物也是一種類,可以理解人就是 動物類的一種物件,草是植物類的一種物件。類物件的生成過程,包括物件的宣告 例項化和初始化...

類和物件(1) 基本概念

類用於指定物件的形式,它包含了資料表示法和用於處理資料的方法。類中的資料和方法稱為類的成員。函式在乙個類中被稱為類的成員。類定義定義乙個類,本質上是定義乙個資料型別的藍圖。這實際上並沒有定義任何資料,但它定義了類的名稱意味著什麼,也就是說,它定義了類的物件包括了什麼,以及可以在這個物件上執行哪些操作...

從c到c 類和物件基本概念(一)

第一步 將某類客觀事物共同特點 屬性 歸納出來,形成乙個資料結構 可以用多個變數描述事物的屬性 將這類事物所能進行的行為也歸納出來,形成乙個個函式,這些函式可以用來運算元據結構 這一步叫 抽象 第二步 然後,通過某種語法形式,將資料結構和操作該資料結構的函式 在一起,形成乙個 類 從而使得資料結構和...