面相对象的三大特征:封装、继承、多态
1.封装的意义:
1. 将属性和行为作为一个整体,体现事物
2.将属性和行为加以权限控制
C++中认为万物皆对象,对象有其特有的属性和行为,类中的属性和行为统称为成员,属性(成员属性、成员变量)、行为(成员函数、成员方法)。
class student
{
//访问权限
public:
//类的属性
string name;
int number;
//类的行为
void show() {
cout << name << "的学号为" << number << endl;
}
private:
};
student s1;//实例化一个对象,类名 对象名;
2.类在的权限
类在设计的时候通常把属性和行为放在不同的权限下,访问的权限有三种
class student
{
//公共权限:类内、类外均可访问
public:
//保护权限:类内可访问,类外不可访问,子类可继承
protected:
//私有权限:类内可访问。类外不可访问,子类不可继承
private:
};
2.1.struct 与class的区别(结构体与类的区别)
结构体中默认情况下是公共权限,类中默认为私有权限
3.成员属性设置为私有
优点1:将成员函数设置为私有,我们自己可以控制读写权限
优点2:对于写权限,我们可以检测数据的有效性
#include<iostream>
using namespace std;
class student
{
public:
//名字的写和读权限
void setName( string n) {
name = n;
}
string getName() {
return name;
}
//年龄的只写权限(没有返回值)
int setAge(int a) {
if (a < 0 || a > 100) {
cout << "输入错误" << endl;
}
age = a;
}
private:
string name;
int age;
};
int main() {
student s1;
s1.setName("张三");
s1.setAge(2);
cout << s1.getName() << endl;
system("pause");
return 0;
}