4、面向对象-类的封装

一、面向对象编程介绍

1、面向对象的概念

C语言面向过程,需要一步步实现。C++面向对象,将过程封装起来,直接使用完整的功能函数。

2、面向对象的特点

①抽象的作用

抽象是人们认识事物的一种方法;
抓住事物的本质,而不是内部具体的细节或者具体的实现。

②封装的作用

封装是指按照信息屏蔽的原则,把对象的属性和操作结合在一起,构成一个独立的对象

通过限制对属性和操作的访问权限,可以将属性“隐藏”在对象的内部,对外提供一定的接口,在对象之外只能通过接口操作对象 

③继承的作用

当定义了一个类后,又需要定义一个新类,这个新类与原来的类相比,只是增加或修改了部分属性和操作,这时可以用原来的类派生出新类,新类只需要描述自己所特有的属性和操作

④多态的作用

同一个消息被不同对象接收时,产生不同的效果,即实现了同一接口,不同方法。

⑤面向对象优缺点

优点:易维护、质量高、效率高、易扩展
  缺点:运行效率降低

二、类的封装

1、类的概念 

关键字:class

类:(对象的抽象)一类对象的统称(一大群本质一样的学生,类似于c语言结构体)

类定义一个变量:创建具体的一个对象

2、类的封装(创建一个类)

 C++中类的封装
成员变量,C++中用于表示类属性的变量
成员函数,C++中用于表示类行为的函数

  1 #include <iostream>
  2 
  3 using namespace std;
  4 
  5 /*struct Circle      //结构体
  6 {
  7     int r;
  8     double s;
  9 };*/
 10 
 11 class Circle      //类    一类圆
 12 {
 13 private:        //私有的不能随意访问
 14     int r;
 15     double s;       //成员变量
 16 
 17 public:          //公有的可以访问
 18     void setR(int _r)    //成员函数
 19     {
 20         r = _r;
 21     }
 22 
 23     double getS()
 24     {
 25         s = 3.14 * r * r;
 26         return s;
27     }
 28 };
 29 
 30 int main()
 31 {
 32     //Circle c1;     //定义结构体变量(定义圆)
 33     //c1.r;
 34 
 35     Circle c2;     //创建圆对象
 36     //c2.r = 2;    
 37     c2.setR(2);
 38     cout << c2.getS() << endl;
 39 
 40     return 0;
 41 }

3、类的权限

1 #include <iostream>
  2 
  3 using namespace std;
  4 
  5 class Test
  6 {
  7 private:     //私有权限,只能在类的内部访问,不能在类的外部访问
  8     int a;
  9     void f1()
 10     {
 11     }
 12 protected:    //保护权限,由于继承
 13     int b;
 14     void f2()
 15     {
 16         a++;       //内部可以访问
 17     }
 18 public:      //共有权限 类的内部外部都能访问
 19     int c;
 20     void f3()
 21     {
 22     }
 23 };
 25 int main()
 26 {
 27     Test t;
 28 
 29     //t.a = 1;       //类的外部不能访问私有变量
 30     t.c = 1;         //类的外部可以访问共有成员变量
 31 
 32     return 0;
 33 }

4、struct和class区别

struct:默认是public属性

class:默认是private属性

5、类的实现和类的声明分开(声明在头文件)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值