一、面向对象编程介绍
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属性