在C語言中,你可以使用typedef
關鍵字和struct
來創建一個新的數據類型,從而實現數據封裝。數據封裝是將數據(屬性)和行為(方法)包裝在一起的一種技術,它可以隱藏對象的內部實現細節,只暴露有限的接口供外部訪問。
下面是一個簡單的例子,展示了如何使用typedef struct
實現數據封裝:
#include <stdio.h>
// 定義一個結構體類型
typedef struct {
int age;
float height;
} Person;
// 為結構體類型定義一個訪問函數(getter)
int get_age(Person *p) {
return p->age;
}
float get_height(Person *p) {
return p->height;
}
// 為結構體類型定義一個修改函數(setter)
void set_age(Person *p, int new_age) {
p->age = new_age;
}
void set_height(Person *p, float new_height) {
p->height = new_height;
}
int main() {
// 創建一個Person對象
Person person;
// 使用setter函數設置對象的屬性
set_age(&person, 25);
set_height(&person, 175.5);
// 使用getter函數獲取對象的屬性
printf("Age: %d\n", get_age(&person));
printf("Height: %.2f\n", get_height(&person));
return 0;
}
在這個例子中,我們首先定義了一個名為Person
的結構體類型,它包含兩個成員變量:age
和height
。然后,我們為這個結構體類型定義了四個訪問函數(getter)和修改函數(setter),分別用于獲取和設置age
和height
的值。最后,在main
函數中,我們創建了一個Person
對象,并使用這些函數來訪問和修改它的屬性。
通過這種方式,我們可以將Person
對象的內部實現細節隱藏起來,只暴露出有限的接口供外部訪問。這就是數據封裝的基本思想。