欢迎来到博主 Apeiron 的博客,祝您旅程愉快 !时止则止,时行则行。动静不失其时,其道光明。
目录
1、缘起
2、封装
3、总结
1、缘起
C++ 面向对象的三大特性为:封装,继承和多态。C++ 认为 万事万物皆为对象,对象有其 属性 和 行为。
例如:
人可以作为对象,属性有姓名,年龄,身高,体重......,行为有唱,跳,rap 和篮球......;
车也可以作为对象,属性有轮胎,方向盘,车灯......,行为有载人,放音乐,放空调......;
猫也可以作为对象,属性有毛色,品种,体型......,行为有吃鱼,抓老鼠,翻垃圾桶......
具有相同性质的对象,我们可以抽象称为类,人属于人类,车属于车类,猫属猫类
类中的属性和行为,我们统一称为 成员,属性又称为 成员属性 或 成员变量,行为又称为 成员函数 或 成员方法。
2、封装
语法:class 类名{ 访问权限:属性 / 行为 };
① 将属性和行为作为一个整体,表现生活中的事物
② 将属性和行为加以权限控制
在设计类的时候,属性和行为写在一起,表现事物。
示例 1 :设计一个圆类,求圆的周长
示例代码:
#include<iostream>
using namespace std;
//圆周率
const double PI = 3.14;
//设计一个圆类,求圆的周长
class Circle
{
//访问权限
public:
//属性
//圆的半径
int r;
//行为
//获取圆的周长
double Perimeter()
{
return 2 * PI * r;
}
};
int main()
{
//通过圆类,创建具体的圆(对象)
Circle c;
//给圆对象的属性进行赋值
c.r = 10;
cout << "圆的周长为:" << c.Perimeter() << endl;
cout << endl;
system("pause");
return 0;
}
示例 2:设计一个学生类,输出学生的相关信息
示例代码 1:
#include<iostream>
#include<string>
using namespace std;
//设计一个学生类,属性有姓名和学号,
//可以给姓名和学号赋值,可以显示学生的姓名和学号。
class Student
{
public:
//属性
string stu_name;
string stu_school;
string stu_id;
string stu_major;
//行为
void print()
{
cout << "姓名:" << stu_name <<" ";
cout << "学校:" << stu_school << " ";
cout << "学号:" << stu_id << " ";
cout << "专业:" << stu_major << endl;
}
};
int main()
{
//创建一个学生实例
Student s;
//属性赋值
s.stu_name = "张三";
s.stu_school = "家里蹲大学";
s.stu_id = "0001";
s.stu_major = "干饭";
//类的调用
s.print();
cout << endl;
system("pause");
return 0;
}
示例代码 2 :通过成员函数给属性赋值
#include<iostream>
#include<string>
using namespace std;
//设计一个学生类,属性有姓名和学号,
//可以给姓名和学号赋值,可以显示学生的姓名和学号。
class Student
{
public:
//属性
string stu_name;
string stu_school;
string stu_id;
string stu_major;
//行为
void print()
{
cout << "姓名:" << stu_name <<" ";
cout << "学校:" << stu_school << " ";
cout << "学号:" << stu_id << " ";
cout << "专业:" << stu_major << endl;
}
//姓名赋值
void SetName(string name)
{
stu_name = name;
}
//学校赋值
void SetSchool(string school)
{
stu_school = school;
}
//学号赋值
void SetId(string id)
{
stu_id = id;
}
//专业赋值
void SetMajor(string major)
{
stu_major = major;
}
};
int main()
{
//创建一个学生实例
Student s;
//属性赋值
s.SetName("张三");
s.SetSchool("家里蹲大学");
s.SetId("0001");
s.SetMajor("干饭");
//类的调用
s.print();
cout << endl;
system("pause");
return 0;
}
3、总结
本期的分享总结就到这里了,如果有疑问的小伙伴,我们在评论区交流嗷,笔者必回,我们下期再见啦 !