一、如何造一个学生?
如何造一个学生,首先要知道学生具备哪些属性。姓名、性别、年龄、学号、身高、体重等等等、、、了解这些属性之后,就可以通过属性创建一个类(CLASS)来将这些属性装填进去;
// 一个学生类
class Student{
public:
char name[20]; // 姓名
char sex; // 性别
char sno[20]; // 学号
float weight; //体重
float high; //身高
bool myopia; //是否近视
//等等等
};
创建好“学生类”之后就可以批量“生产”学生啦、、、、当然初始生产的学生都是未定义的,根据需要再对学生进行定义;
//生产4位学生,分别是s1,s2,s3,s4
Studet s1,s2,s3,s4;
//对学生s1进行赋值
//方法一
s1.name = "xxx";
s1.sex = 'm';
s1.sno = "123456";
s1.weigh = 120.5;
s1.high = 175;
s1.myopia = false;
//方法二
cin >> s2.name >> s2.sex >> s2.sno >> s2.weigh >> s2.high >> s2.myopia;
然后就可以输出学生s1的基本信息啦;
//输出学生s1的基本信息
cout << s1.name << s1.sex << s1.sno << s1.weigh << s1.high << s1.myopia << endl;
小结:这里的Student就是一个类,而s1、s2、s3、s4这些便是对象了,即(Student)类的实体。就像是生产手机一样,根据需求设计好手机(属性:日记、打电话、拍照、听音乐),然后就可以流水线的生产手机了,初始的手机都是未赋值的。。当用户买到之后根据自己的需求就可以使用手机了(相当于对属性进行赋值);
二、类的封装和权限
C++通过 public、protected、private 三个关键字来控制成员变量和成员函数的访问权限,它们分别表示公有的、受保护的、私有的,被称为成员访问限定符。所谓访问权限,就是你能不能使用该类中的成员。
在类的内部(定义类的代码内部),无论成员被声明为 public、protected 还是 private,都是可以互相访问的,没有访问权限的限制。
在类的外部(定义类的代码之外),只能通过对象访问成员,并且通过对象只能访问 public 属性的成员,不能访问 private、protected 属性的成员。
设计一个钟表类,,功能只有一个 --- 显示时间;
class Clock{
private:
int hour;
int minute;
int second;
public:
void showTime(){
cout << hour << ":" << minute << ":" << second << endl;
}
}
Clock c1;
c1.showTime();
这里不用考虑显示时间正确与否,根据需求是仅仅显示时间,因此,将时分秒设置未私有成员就可以避免用户有意或者无意改变时间的值,避免了误操作带来的影响。
增添修改功能
class Clock{
private:
int hour;
int minute;
int second;
public:
// 展示时间
void showTime(){
cout << hour << ":" << minute << ":" << second << endl;
}
// 修改时间
void changeTime(int ChageHour, int ChangeMinute, int ChangeSecond){
hour = ChageHour;
minute = ChangeMinute;
second = ChangeSecond;
}
}
Clock c1;
c1.showTime();
int h, m, s;
cin >> h >> m >> s;
cl.changeTime(h, m, s);
c1.showTime();
小结:就像手机充电口一样,不必了解内部实现原理,虽然只提供一个接口,但是手机内部的电路板都是互通的,这样可以通过这个接口就能实现手机内部所有的供电需求。