类与对象

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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小风_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值