1、封装的意义:
意义一:示例1:设计一个圆类,求圆的周长:
#include<iostream>
using namespace std;
const double pi = 3.14;
//设计一个圆类,求圆的周长
//圆求周长的公式:1*pi*半径
//class 代表设计一个类,类后面紧跟着类的名称
class Circle
{
//访问权限
//公共权限
public:
//属性
int r;
//行为
//获取圆的周长
double calculateZC()
{
return 2 * pi * r;
}
};
int main()
{
//通过圆类创建一个具体的圆——cl(对象)
Circle cl;
//给圆对象 的属性.r进行赋值
cl.r = 10;
cout << "圆的周长为: " << cl.calculateZC() << endl;
system("pause");
return 0;
}
意义一:示例2:设计一个学生类,属性有姓名和学号,可以给姓名和学号赋值,可以显示学生的姓名和学号:
#include<iostream>
using namespace std;
#include<string>
//class 代表设计学生类
class Student
{
//访问权限
//公共权限
public:
//类中的属性和行为都称为成员
//属性:成员属性/成员变量
//类中的行为:成员函数/成员方法
//属性
string Name;
int Number;
//行为
//显示姓名和学号
void showStudent()
{
cout << "姓名为: " << Name << "\t";
cout << "学号为: " << Number << "\t";
}
//给姓名赋值
void setName(string setName)
{
Name = setName;
}
//给学号赋值
void setNumber(int setNumber)
{
Number = setNumber;
}
};
int main()
{
//通过类创建一个具体的——cl(对象):实例化
Student s1;
s1.setName("张三");
s1.setNumber(22207893262);
Student s2;
s2.setName("liro");
s2.setNumber(22204567642);
s1.showStudent();
s2.showStudent();
system("pause");
return 0;
}
#include<iostream>
using namespace std;
#include<string>
//访问权限
//三种
//公共权限 public 成员在类内可以访问 类外也可以访问
//保护权限 protected 成员在类内可以访问 类外不可以访问
//私有权限 private 成员在类内可以访问 类外不可以访问
class Person
{
//访问权限
//公共权限
public:
string m_Name;//姓名
protected:
//保护权限
string m_Car;//汽车
private:
//私有权限
int m_Password;//银行卡密码
public:
void func()//类内可以访问
{
m_Name = "张三";
m_Car = "拖拉机";
m_Password = 123456;
}
};
int main()
{
//实例化具体对象
Person p1;
p1.m_Name = "里斯";
//p1.m_Car= "拖拉机"; //保护权限 protected 类外不可以访问
//p1.m_Password = 123456; //私有权限 private 类外不可以访问
system("pause");
return 0;
}
2、重点:class和struct的区别:
3、成员属性设置为私有
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
#include<string>
//成员属性设置私有
//1、可以自己控制读写权限
//2、对于写可以检测数据有效性
//人类
class Person
{
public://设置姓名
void setName(string Name)
{
m_Name = Name;
}
//获取姓名
string getName()
{
return m_Name;
}
//获取年龄
int getAge()
{
return m_Age;
}
//设置年龄(0~150)
void setAge(int Age)
{
if (Age < 0 || Age>150)
{
cout << "年龄输入有误,赋值失败" << endl;
return;
}
m_Age = Age;
}
//设置偶像
void setIdol(string idol)
{
m_Idol = idol;
}
private:
string m_Name; //姓名 可读可写
int m_Age=18; //年龄 只读 也可以写 (年龄必须在0到150之间)
string m_Idol; //偶像 只写
//访问权限
public:
};
int main()
{
Person p;
p.setName("张三");
cout << "姓名: " << p.getName() << endl;
//设置年龄
p.setAge(160);
//p.m_Age=20;
//
//获取年龄
cout << "年龄: " << p.getAge() << endl;
//偶像设置
p.setIdol("小明");//只写
//cout << "偶像: " << p.setIdol() << endl; //不可读
system("pause");
return 0;
}