后台开发阅读笔记——面向对象

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mingfengshan/article/details/83448107

类是对象的抽象,对象是类的实例。
类的封装性:
把数据和这些数据有关的操作封装在一个类里。还定义了私有,公有,和受保护三种基本访问权限。解决了程序的可扩展性。
析构函数的执行时机:
(1)、在函数中定义了一个对象,当函数调用结束时,对象会被释放,且在对象释放前会自动执行析构函数。
(2)、static局部对象在函数调用结束时对象不释放,所以也不执行析构函数,只有在main函数结束或调用exit函数结束程序时,才调用static局部对象的析构函数。
(3)、全局对象则是在程序流程离开其作用域时,才会执行该全局对象的析构函数。
(4)、用new建立的对象,用delete释放对象时,会调用对象析构函数。

类静态成员拥有一块单独的存储区,而不管创建了多少个该类的对象。所有这些对象的静态数据成员都共享这一块静态存储空间,这就为这些对象提供了一种互相通信的方法。静态数据成员是属于类的,只在类的范围内有效。
如果只声明类而未定义对象,类的一般数据成员是不占用内存空间的,只有在定义对象时才会为对象的数据成员分配空间。但是静态数据成员不属于某一个对象,所以在为对象分配空间时不包括静态数据成员的空间。只要在类中定义了静态数据成员,即使不定义对象,也为静态数据成员分配了空间,可以被引用。
静态成员函数与非静态成员函数的区别是,静态成员函数中没有this指针,所以静态成员函数不能访问非静态成员。静态成员函数常用来访问静态数据成员。
每个对象所占用的存储空间只是该对象的非静态数据成员的总和,其他都不占用存储空间。

this指针的特点:
(1)、只能在成员函数中使用,在全局函数,静态成员函数中都不能使用。
(2)、this指针是在成员函数的开始前构造,在成员函数结束后清除。
(3)、this指针会因编译器的不同而有不同的存储位置,可能是栈,寄存器,全局变量。
(4)、this指针是类的指针。
(5)、this指针只有在成员函数中才有定义,所以获得一个对象后,不能通过对象使用this指针,所以也就无法知道一个对象的this指针的位置。但可以在成员函数中指定this指针的位置。
(6)、普通类函数都不会创建一个函数表来保持函数指针,只有虚函数才会被放到函数表中。

类的继承与派生:
公有继承:基类的公用成员和保护成员在派生类中保持原有的访问属性,其私有成员仍为基类私有。
私有继承:基类的公用成员和保护成员在派生类中成了私有成员,其私有成员仍为基类私有。
保护继承:基类的公用成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有。保护成员意思是不能被外界引用,但可以被派生类的成员引用。
解决了系统的重用性和扩展性。

类的多态:向不同对象发生同一消息,不同对象在接收时会产生不同的行为。
通过虚函数实现。
使用情况:
(1)、看成员函数所在的类是否会作为基类。再看成员函数在类的继承后有无更改的可能。
(2)、看对成员函数的调用时通过基类指针或引用去访问,若是通过基类指针或引用访问则应声明为虚函数。
(4)、定义虚函数时,函数体为空,实现由派生类实现。
使接口有多种不同的实现方式。实现系统的可维护性,可扩展性。

猜你喜欢

转载自blog.csdn.net/mingfengshan/article/details/83448107
今日推荐