类与对象

来源:互联网 发布:中华民族伟大复兴 知乎 编辑:程序博客网 时间:2024/06/11 19:40

1.何为抽象

面向对象方法中的抽象,是指对具体问题(对象)进行概括,抽出一类对象的公共性质加以描述的过程。一般来讲,对一个问题的抽象应该包括:数据抽象和行为抽象(功能抽象、代码抽象)
一个简单的例子:
数据抽象:

int hour,int minute,int second;

功能抽象:

showTime(),setTime();

因而,前者描述某类对象的属性或状态,后者描述某类对象的共同行为或功能功能特征;

2.何为封装

封装就是将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据与操作数据的函数代码进行有机的结合,形成“类”,其中的数据和函数都是类的成员.例如:

class Clock{public:    void setTime(int newH,int newM,int newS);    void showTime();private:    int hour,minute,second;};

3.何为继承

解决问题:把特殊与一般的概念间的关系描述清楚,使得特殊概念之间既能共享一般的属性和行为,又能具体特殊的属性和行为
继承可以在一般概念基础上,派生出特殊概念,使得一般概念中的属性和行为可以被特殊概念共享,摆脱重复分析、重复开发的困境。
C++语言中提供了类的继承机制,允许程序员在保持原有类特性的基础上,进行更具体更详细的说明。

4.何为多态

多态性是指一段程序能够处理多种类型对象的能力,在C++中,这种多态性可以通过**强制多态、重载多态、类型参数化多态、包含多态**4种形式实现
强制多态:将一种数据类型转换为另一种数据类型(数据类型转换,隐式或显示)
重载多态:同一名字不同含义(函数重载、运算符重载)
包含多态、类型参数化多态:一般多态性

5.何为类

在面向对象程序设计中,程序模块是由类构成的。类是对逻辑上相关的函数与数据的封装,它是对问题的抽象描述。
再看上面时钟的例子:

class Clock{public:    void setTime(int newH,int newM,int newS);    void showTime();private:    int hour,minute,second;};

其中,时钟的数据和行为分别称为数据成员和函数成员。
定义类的语法形式如下:

class 类名称{public:    外部接口protected:    保护型成员private:    私有成员};

6.访问控制

分为三类:
1.public:
定义了外部接口
在类外只能访问类的公有类型.如setTime( ),showTime( )
2.protected:
保护型成员
性质与私有差不多,差别在于继承过程中对产生的新类影响不同
3.private:
私有成员
私有成员只能被本类的成员函数访问,来自类外部的任何访问即非法

7. 对象

做个比喻,假设公司的雇员为一个类,那么每一个雇员就是该类的一个对象
声明一个对象方式:
类名 对象名;
Clock myclock;
调用函数成员形式:
对象名.数据成员名(参数表)

8.成员函数

实现形式
返回值类型 类名::函数成员名(参数表)
{
函数体
}
目的对象
myClock.showTime()中,myClock为一个目的对象
带默认形参值的成员函数
如:void setTime(int newH=0, int newM=0, int newS=0)
内联函数
目的在于可以减少调用的开销,提高执行效率,只针对简单的成员函数如:
inline void Clock::showTime()
{
cout<<hour<<":"<<minute<<":"<<second<<endl;
}

原创粉丝点击