类与对象
来源:互联网 发布:中华民族伟大复兴 知乎 编辑:程序博客网 时间: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;
}
- OOP-----类与对象对象
- OOP-----类与对象对象
- 对象与元类对象
- 对象与类类型
- C02(类与对象)
- 类与对象(PHP5)
- 类与对象
- 区分类与对象
- 类与对象
- 类与对象
- 类与对象
- C#类与对象
- 对象与类
- 类与对象总结
- js类与对象
- C++ 类与对象
- 类与对象
- 类与对象概述
- SpringBoot写一个通用的返回类
- python字符串方法
- C语言实现信号打包成二进制文件并在Matlab中读取并画图(VS版)
- 一码归一码
- MySQL5.7: 半同步复制(Semisynchronous Replication)配置
- 类与对象
- C++/C++11中<functional>的使用
- 文章标题
- POJ-3723 Conscription
- JS技术(3)---节点增删
- js实现贪吃蛇小游戏
- CSS盒模式总结
- 一个智障的求逆序对的问题
- LSD-SLAM笔记之一致性约束