类有三大特性:封装,继承,多态。
具有相同属性的对象,称之为类。如人的属性有姓名年龄身高体重,行为有吃喝拉撒。
- 封装
封装的意义:
- 将属性和行为作为一个整体,表现生活中的事物
- 将属性和行为加以权限控制
意义一: 将属性和行为作为一个整体,表现生活中的事物
语法:class 类名{ 访问权限:属性 / 行为 };
- 例一。设计一个圆类,求圆的周长
//圆周长公式:2*PI*半径(可作为一个属性)
const double PI = 3.14;
class circle
{
//访问权限
public: //公共权限
//属性
int r; //半径
//行为
double zhouchang() //获取圆的周长
{
return 2 * PI * r ;
}
}; //这里只是个类,还没有对象
int main()
{
circle c1; //通过圆类创建圆(对象) 实例化一个对象
c1.r = 10; //给圆(对象)属性赋值
cout << c1.zhouchang() << endl; //这里通过c1访问周长函数,所以是zhouchang(),必须有括号
system("pause");
return 0;
}
例二.设计一个学生类,属性有姓名,学号。可以给姓名,学号赋值,再显示
class student
{
//访问权限
public: //公共权限
//属性
string name;
string number;
//行为
void display()
{
cout << name << " " << number << endl;
}
void setname(string m_name) //通过行为函数给属性赋值,不是直接在main函数给属性赋值
{
name = m_name;
}
};
int main()
{
student s1; //实例化一个对象
s1.name = "唐逸汤"; //给对象属性赋值
s1.number = "140650128";
s1.display();
s1.setname("名字"); //通过一个函数,直接给属性赋值
s1.display();
system("pause");
return 0;
}
通常称呼:类中的属性和行为 统一称为成员
属性 成员属性 成员变量
行为 成员函数 成员方法
意义二: 将属性和行为加以权限控制
1.public 公共权限 类内可以访问 类外可以访问
2.protected 保护权限 类内可以访问 类外不可以访问
3.private 私有权限 类内可以访问 类外不可以访问
class student
{
//访问权限
public: //公共权限
string name;
protected: //保护权限
string car;
private: //私有权限
int password;
public:
void func()
{
name = "北加";
car = "自行车";
password = 123345; //类内都可以访问这三个属性
}
};
int main() //类外
{
student s1; //实例化一个对象
s1.name = "唐逸汤";
//s1.car = "飞机"; //因为是保护权限,所以类外无法访问
system("pause");
return 0;
}
3. struct和class的区别(struct也可以写类)
主要区别:默认的访问权限不同
struct默认权限为公共
class默认权限为私有
class c1
{
int a; //默认为私有
};
struct c2
{
int b; //默认为公共
};
int main() //类外
{
c1 temp;
//temp.a = 10; //私有不可访问
c2 temp2;
temp2.b = 10;
cout << temp2.b << endl; //struct 公共可访问
system("pause");
return 0;
}