类的组合电脑一般而言是由 CPU, 内存,主板,键盘和硬盘等部件组合而成。思考:学习电脑组装需要多少时间?学习电脑组装是否需要学习显示器,键盘,鼠标,主板,内存等部件的设计与制造?类的封装类通常分为以下两个部分类的实现细节类的使用方式当使用类时,不需要关心其实现细节当创建类时,才需要考虑其内部实现细节例:普通用户使用手机只需要学习如何发短信,打电话,拍照,等等手机开发工程师需要考虑手机内部的实现细节封装的基本概念根据经验: 并不是类的每个属性都是对外开放的如: 女孩子不希望外人知道自己的体重和年龄如: 男孩子不希望别人知道自己的身高和收入而一些类的属性是对外开放的如: 人的姓名,学历,国籍,等必须在类的表示法中定义属性和行为的公开级别类似文件系统中文件的权限C++ 中类的封装成员变量: C++ 中用于表示类属性的变量成员函数: C++ 中用于表示类行为的函数C++ 中可以给成员变量和成员函数定义访问级别public: 成员变量和成员函数都可以在类的内部和外部访问和调用private: 成员变量和成员函数只能在类的内部被访问和调用编程实验: 类成员的访问属性#include <stdio.h>struct Biology { bool living;};struct Animal : Biology { bool movable; void foidFood() { };};struct Plant : Biology { bool growable;};struct Beast : Animal { void sleep() { };};struct Human : Animal { void sleep() { }; void work() { };};struct Girl : Human{private: int age; int weight;public: void print() { age = 22; weight = 48; printf(“I am a girl, I am %d years old.\n”, age); printf(“My weight is %d kg.\n”, age); }};struct Boy : Human{private: int height; int salary;public: int age; int weight; void print() { height = 175; salary = 9000; printf(“I am a boy, my height is %d cm.\n”, height); printf(“My salary is %d RMB.\n”, salary); }};int main(){ Girl g; Boy b; g.print(); b.age = 19; b.weight = 120; b.print(); return 0;}输出:I am a girl, I am 22 years old.My weight is 22 kg.I am a boy, my height is 175 cm.My salary is 9000 RMB.类成员的作用域类成员的作用域只在类的内部,外部无法直接访问成员函数可以直接访问成员变量和调用成员函数类的外部可以通过类变量访问 public 成员类成员的作用域与访问级别没有关系C++ 中用 struct 定义的类中所有成员默认为 public编程实验:类成员的作用域#include <stdio.h>int i = 1;struct Test{private: int i;public: int j; int getI() { i = 3; return i; }};int main(){ int i = 2; Test test; test.j = 4; printf(“i = %d\n”, i); printf("::i = %d\n", ::i); // printf(“test.i = %d\n”, test.i); // Error printf(“j = %d\n”, test.j); printf(“test.getI() = %d\n”, test.getI()); return 0;}输出:i = 2::i = 1j = 4test.getI() = 3如果想访问类的成员变量或成员函数,都必须通过这个类的对象来进行,是否访问成功,需要看类成员变量或成员函数的访问级别。对类而言是有作用域的,仅仅指的是类的成员变量和成员函数的作用域。 作用域与访问级别是不同的概念。小结类通常可以分为使用方式和内部细节两部分类的封装机制使得使用方式和内部细节相分离C++ 中通过定义类成员的访问级别实现封装机制public 成员可以在类的内部和外界访问和调用private 成员只能在类的内部被访问和调用以上内容参考狄泰软件学院系列课程,请大家保护原创!