面向对象设计思想20160528
2016-05-28 21:33
274 查看
最近在学习com,涉及到了一些接口、类、继承等概念,这些概念感觉很抽象,因为之前一直接触的是c语言,翻看《c++编程思想》这本书了解了一些关于面向对象的知识,接下来主要介绍面向对象思想以及c语言的结构到c++类的过渡。写这些一来检验自己是否理解了这些知识;二来若以后忘掉了某些相关的知识可以方便学习。
面向对象通俗的讲就是通过程序对实际问题进行建模,对问题进行抽象,比如汇编语言就是对底层机器进行的抽象。通过什么方式建立抽象呢?我们怎么用编程语言去表示具体问题中的对象呢?c++语言中引入了类(class)。类(或者类型)同c语言中的结构(struct)意思差不多。结构能定义各种变量的集合,并把它们视为一个整体,eg:
struct Horse
{
int age;
char name[20];
int height;
} sliver;
这里我从c语言的结构过渡到c++的类。struct定义了一个新的类型Horse,sliber是Horse类型的变量,age、name[20]、height是结构体成员。在c++中class的作用同struct的作用是一样的,可以定义一个新的类(类型),eg:
class IX
{
public:
virtual void Fy1()=0;
virtual void Fy2()=0;
};
IX即是class定义的一个新的类的名字,即类型名。程序元定义类就是为了与具体的问题相适应,本例中未给出IX类型的变量,IX类型的变量又叫做实体(instance)或者对象(object),实体(instance)同上文提到的sliver类似,每一个对象都有一个接口,上文中提到的Fy1()和Fy2()就是对象成员,又可以成为接口函数。接口规定我们能向该对象发送什么样的请求,对象对每一个请求都有相应的执行函数。当向对象发请求时接口就会调用相应的函数,这个过程称作向对象发送消息(提出请求),对象根据这个消息确定做什么(调用什么执行代码)。
类中的成员不是所有程序员都能访问的,比如我们在定义新的类的时候可以控制类的边界,即能访问哪些成员不能访问哪些成员。在c++中使用了三个关键字控制类的边界:
public、private、protected,这些关键字确定谁能用随后的定义。顾名思义,public后面对定义任何人都可以使用;相反private后面的定义除了类型的创建者和内部成员函数之外任何人都不能使用,如果使用编译时就会报错;Protected在继承时用的,在com中尚未见到,暂且未去关注。
本人对面向对象设计了解的比较少,哪里有不对的地方还希望前辈指正,将不胜感激。
面向对象通俗的讲就是通过程序对实际问题进行建模,对问题进行抽象,比如汇编语言就是对底层机器进行的抽象。通过什么方式建立抽象呢?我们怎么用编程语言去表示具体问题中的对象呢?c++语言中引入了类(class)。类(或者类型)同c语言中的结构(struct)意思差不多。结构能定义各种变量的集合,并把它们视为一个整体,eg:
struct Horse
{
int age;
char name[20];
int height;
} sliver;
这里我从c语言的结构过渡到c++的类。struct定义了一个新的类型Horse,sliber是Horse类型的变量,age、name[20]、height是结构体成员。在c++中class的作用同struct的作用是一样的,可以定义一个新的类(类型),eg:
class IX
{
public:
virtual void Fy1()=0;
virtual void Fy2()=0;
};
IX即是class定义的一个新的类的名字,即类型名。程序元定义类就是为了与具体的问题相适应,本例中未给出IX类型的变量,IX类型的变量又叫做实体(instance)或者对象(object),实体(instance)同上文提到的sliver类似,每一个对象都有一个接口,上文中提到的Fy1()和Fy2()就是对象成员,又可以成为接口函数。接口规定我们能向该对象发送什么样的请求,对象对每一个请求都有相应的执行函数。当向对象发请求时接口就会调用相应的函数,这个过程称作向对象发送消息(提出请求),对象根据这个消息确定做什么(调用什么执行代码)。
类中的成员不是所有程序员都能访问的,比如我们在定义新的类的时候可以控制类的边界,即能访问哪些成员不能访问哪些成员。在c++中使用了三个关键字控制类的边界:
public、private、protected,这些关键字确定谁能用随后的定义。顾名思义,public后面对定义任何人都可以使用;相反private后面的定义除了类型的创建者和内部成员函数之外任何人都不能使用,如果使用编译时就会报错;Protected在继承时用的,在com中尚未见到,暂且未去关注。
本人对面向对象设计了解的比较少,哪里有不对的地方还希望前辈指正,将不胜感激。
相关文章推荐
- php7 扩展类的写法[2]
- php7 类的方法传参[3]
- 注册表的组织结构
- 一个简单的asp数据库操作类
- Ruby on Rails所构建的应用程序基本目录结构总结
- Ruby面向对象编程中类与方法的基础学习
- C#实现用于操作wav声音文件的类实例
- C#类的多态性详解
- Lua编程示例(二):面向对象、metatable对表进行扩展
- 在线管理数据库 类
- C#中面向对象编程机制之多态学习笔记
- 浅谈Lua的面向对象特性
- Lua面向对象之类和继承浅析
- Lua中类的实现原理探讨(Lua中实现类的方法)
- Lua中的类编程代码实例
- JavaScript面向对象的两种书写方法以及差别
- 浅谈c# 面向对象之类与对象
- SQLSERVER的非聚集索引结构深度理解
- 调整SQLServer2000运行中数据库结构
- 公文结构