【C++语法地图】类与对象-封装

  • 类的封装

C++面向对象的三大特性:封装、继承、多态;万事万物都可虚拟为对象,对象有其属性和行为;属性体现为数据行为体现为函数

例如:猫作为液体...啊是对象,属性有品种、体重、年龄...,行为有跑、跳、喵喵喵...

具有相同性质的的对象,可以抽象为类,人属于人类,猫属于猫类,类就是用来构造对象的一个模板

封装的意义1

封装类,将数据和函数写在一起,作为虚拟化的属性和行为,将属性和行为作为一个整体,表现事物

类封装语法:

class 类名访问权限 : 属性/行为 };

Sample:

class Cat{
public:
	int age ,sex;//成员数据
  	int health;
	int damage;
  	int doAttack(){//成员函数
      return damage + health;
    }
};
int main(){
	Cat cat1;//使用Cat类作为模板实例化Cat1对象
	cat1.doAttack();//访问语法:对象.要访问的成员名
} 

封装的意义2:

将属性和行为用权限控制,将数据和函数写在不同的权限下面,加以控制

权限有三种:public、protected、private

public           类内可以访问   类外不可访问

protected     类内可以访问   类外不可以访问   子类对象不可以访问

private         类内可以访问   类外不可以访问   子类对象不可以访问

Caution:上述意味着保护和私有成员只能通过公共权限里的函数作为与类外交流的窗口

要是公共权限里没写函数作为接口,或者是作接口的函数没在公共权限里,那保护成员和私有成员就没有存在意义了(无法进行访问或交互的数据是死数据)

类权限语法:

class 类名{ public : 属性/行为; protected : 属性/行为; private : 属性/行为; };

Sample

class Cat {
public:
int age, sex;//成员数据
  int health;
  int damage;
  int doAttack() {//成员函数
    return damage + health;
  }
};
int main() {
Cat cat1;//使用Cat类作为模板实例化Cat1对象
cat1.damage = 13; cat1.health = 24;//给成员数据赋值
cout<<cat1.doAttack();//访问语法:对象.要访问的成员名 
} 

类外访问语法:在main函数中或者其他函数中访问对象内的成员时,需要在成员名前加“ . ”符号(其实就是英文的句号);上面的案例中,main函数中访问cat1对象的doAttack成员函数,就要写成  cat1.doAtack();  访问并修改cat1对象中成员数据,要写成  cat1.damage = 10; 但是在类内,比如说编写成员函数,成员函数体内就不需要这种特殊语法,直接写名称即可

    illustration: 封面by 紺屋鴉江  作者:M1nor- https://www.bilibili.com/read/cv14221269 出处:bilibili

上一篇:通过mybatis 往数据库存date类型数据报错处理


下一篇:Java学习笔记(十一):类与对象