关于编程类库面向过程等的解释

通俗的说,类即分类的意思。从生物学上我们把生物从大到小的分类为界、门、纲、木、科、属、种。面向对象主要体现的就是分类的概念。其实,在以前的C语言、Basic语言等后现代计算机语言就已经有了分类的概念,比如基本类型分为整数、浮点数、字符、日期等。只不过在面向对象概念中把类型的概念扩大化。不只是利用常用的简单类型,还可以自定义类型(类)。比如圆是一类事物,我们可以通过半径、位置等信息描述他,就可以定义这些信息作为圆这类事物的属性。    例如:苹果就是对象。  它的属性如:颜色,重量,形状等  事件和方法如:你咬苹果,把苹果扔出去,踩扁,削皮等。     一句话解释:早上你去吃早饭,有面包你就尽管吃,不用去管面包的制作过程,也不需要你去一步一步的去制作面包。

      面向对象与面向过程的区别: 1、面向过程:把一个问题分解成若干小问题,再对每个小问题进行分解(分模块),知道每个问题的难度都足以小,能够解决为止,然后再把这些小问题合并,就解决了大问题。 2、面向对象:把世界上的任何事物都看成对象,某些对象之间因为存在共性,所以把他们抽象起来,称之为类,把这些类自身的属性,特点动作给封装到类的内部,比如说: 老师类,学生类老师类的属性有姓名,年龄,工资,学历,教龄,特点动作有:教书,教育学生,组织学生类的属性有姓名,年龄,年级,特点动作有:学习两种方法之间最明显的区别就是面向过程主要是模块化思想,面向对象的是封装的思想。   
了解面向对象,先看实例。比如说张三,即是指一个实体,那么张三个人就有身高,体重,姓名,性别等特性。其实每个人都有。  如果张三是个男人,那从男人的角度来看,是不是都有这些相同的特性呢?答案是肯定的。推而广之,女人也是不是有相同的特性 除了性别不同外。答案也是肯定。    再说面向对象编程。我们知道Windows环境中每个窗口的环境都差不多,都有最大/最小/关闭/标题/状态栏。但窗口的大小都有不  同。在软件开发过程中,我们可以根据窗口的这些共同特性进行归纳,预先设置好这些特性(说属性也可  以),当开发中需要一个窗口的时候。我们只需要设置好所需要窗口的相应特性(如:名称/大小等),系统就会帮助我们生成你需要的窗口。这就是Windows API所做的事。   所谓面向对象编程,就是把实现某些特定功能的功能模块根据其特性进行抽像,抽取出其共同特征进行编码。然后当你需  要这个功能的时候,只需要根据属性适当的调整其特性就可以得到不同的效果。    再来说张三。根据张三是男人这个特性,我们可以抽像出男人和张三有以下关系   男人(男,身高,体重,姓名,发型) -----类 这是抽像出的男人共有的特征 男人叫类 身高体重就叫属性   张三(男,180,180,张三,短发) ------对像 张三是男人中的一个 就是对象了,之所以是张三就是因为他的特征和其他人有不同   李四()----对象 李四为什么是李四呢?因为个体不同,虽然和张三有些共同的特性,如性别相同,更重要的是其他特性有差异,如果两个人所有特性相同,呵 呵是什么结果呢?发挥一下想像吧。    再回到编程中。窗口就是一个类,当你需要一个窗口的时候,只需要指定其窗口名称等特征,就可以得到一个窗口对象,当然你需要  两个窗口怎么办?很简单只要两个窗口名称不同,其他特性也可以相同的。就像双胞胎一样,也许外人看来是一模一样的,但是其 名字肯定是要不同的。 

以上是个人浅见,供参考。其实这些理念更多的是要有自己的理解,每个人理解不同,说出来你不一定能理解的。有兴趣你到网上  找 孙鑫 老师的VC++教程,其中第一二节课就是专门讲到这个问题的。希望对你有帮助,有错误也请指出受教。    譬如说你要开公司,创业初期整个公司就两三个人,所有的事都是你这个老板安排做的,后来发展越来越大了,你一个人不可能管理这么大的公司的每一个细节了,于是就成立了各个部门,制定每个部门的指责以及结构,部门下面还可以再设部门,之后需要完成什么任务只需要对各个部门下达命令,或者协调各个部门之间的交流关系,不需要你一步一步告诉他们怎么做,你需要关注更高层面的问题    伪代码更容易理解…  类 狗{   血统;毛色;体长;体重;性别;年龄;  咬();  叫();  摇尾巴();  看门();  睡觉();  }   类 书{   标题;副标题;作者;出版社;出版时间;封面;目录;所属人;……  翻页();  做笔记();  折角();  被偷();  ……  }   狗1号=狗.构造函数(萨摩耶,白色,一米,五十斤,母,三岁);  书1号=书.构造函数(……);   以上由两个类狗和书实例化了两个对象狗1号和书1号。  狗1号.睡觉();  书1号.翻页();   这样让两个对象做出了动作。   假如不需要这个对象了,或者说狗死了书卖了,则  狗1号.析构函数();  书1号.析构函数();

一、什么是类? 如果将对象比作房子,那么类就是房子的设计图纸,对象就是类的实现或实例。所以面向对象设计的重点是类的设计,而不是对象的设计。 对于C++程序而言,设计孤立的类是比较容易的,难的是正确设计基类及其派生类。更准确的比方,“食物”是“水果”的基类,“水果”是“食物”的派生类,而“苹果”则是“水果”的派生类,某一个具体的“苹果”就是对象(“苹果”的实例),从基类到派生类再到对象,一步步从抽象到具体。  要我说,无论是面向过程的语言也好,面向对象的语言也罢,我首先要给他讲的都是类和对象!--------“这个世界是由什么组成的?”这个问题如果让不同的人来回答会得到不同的答案。如果是一个化学家,他也许会告诉你“还用问嘛?这个世界是由分子、原子、离子等等的化学物质组成的”。如果是一个画家呢?他也许会告诉你,“这个世界是由不同的颜色所组成的”。„„呵呵,众说纷纭吧!但如果让一个分类学家来考虑问题就有趣的多了,他会告诉你“这个世界是由不同类型的物与事所构成的”好!作为面向对象的程序员来说,我们要站在分类学家的角度去考虑问题!是的,这个世界是由动物、植物等组成的。动物又分为单细胞动物、多细胞动物、哺乳动物等等,哺乳动物又分为人、大象、老虎„„就这样的分下去了!  现在,站在抽象的角度,我们给“类”下个定义吧!我的意思是,站在抽象的角度,你回答我“什么是人类?”首先让我们来看看人类所具有的一些特征,这个特征包括属性(一些参数,数值)以及方法(一些行为,他能干什么!)。每个人都有身高、体重、年龄、血型等等一些属性。人会劳动、人都会直立行走、人都会用自己的头脑去创造工具等等这些方法!人之所以能区别于其它类型的动物,是因为每个人都具有人这个群体的属性与方法。“人类”只是一个抽象的概念,它仅仅是一个概念,它是不存在的实体!但是所有具备“人类”这个群体的属性与方法的对象都叫人!这个对象“人”是实际存在的实体!每个人都是人这个群体的一个对象。老虎为什么不是人?因为它不具备人这个群体的属性与方法,老虎不会直立行走,不会使用工具等等!所以说老虎不是人!

二、什么是面向对象技术?面向对象技术(OOT)是一种软件开发和程序设计技术。所开发的程序是面向对象程序,直接描述客观世界的对象及其相互关系。例如,银行经理、秘书、职员、顾客、帐本、打印机,直接作为对象出现的程序中。他们相互通信,完成诸如存取款、会计结算、打印报表等业务。以往的编程技术只用数据结构和算法来模拟要完成的业务,虽然可以得到所需计算,但经不起修改。如果增加某项业务,如代营股票,则程序几乎要重编。而现在只要把增加的业务加到顾客、帐本、职员、打印机这些对象上就可以了。    

三、什么是封装? 对象是封装了数据和操作的程序块。所谓封装是为这个程序块建立显示的界面。其它对象只能向这个界面发消息,不能访问内部的私有数据和操作。比如我们要求某人“坐下”(发消息),某人接受消息后调整自己的肌肉、神经使自己坐下(操作),从而改变了他的状态(描述姿态的数据变了)。外界不必过问惊动了几条神经,收缩了哪几块肌肉。因此,内部的数据和实现操作的算法若有改动,对其它程序对象没有任何影响。封装我们已经接触过,将子程序封装为命令(函数)、在易模块中建立公开子程序编译为易模块就是封装。 四、什么是继承? 封装使程序局部化,易修改、好维护,但许多对象有相同的功能时免不了重复,所以面向对象技术有继承的机制。作为新
类的基础的类称为‘基类’。从基类派生的类称为‘派生类’。派生类继承基类中定义的所有字段、属性、方法和事件。 例如,我们描述了“人”这一对象。人有姓名、年龄、职业、住址等数据和吃饭、乘车、上班等操作。我们再设计一个新对象“中国人”时,它将继承“人”的所有数据和操作,再加上“说汉话”、“写汉字”、“身份证号”等“中国人”特有的数据和操作。这样,设计新对象时只要在原有对象基础上作较少的派生,如果运行无误,便将新对象入库,下次又可继续派生。如从中国人派生出“中国男人”、“中国女人”等。于是,库中各类对象按继承关系可形成一棵倒置的树,分枝不断增加,到一定时候一个新程序要用到的对象类库中全有,只要“摘取”出来就可以直接使用,几乎不用编程。所以说,继承支持高度的软件重用。五、什么是多态性? 此外,由于对象自己操作自己的数据。同一消息不同的对象均以自己的方式响应,使得一种消息可有多种响应方式。这叫多态性。例如,“吃饭”这个消息,“中国人”和“俄国人”响应不同(一用筷子,一用刀叉),按过去的编程方法,要分别编出各自的程序,多态性则使程序增删简化。总结:下面引用goomoo的解释: 类是一个抽象的概念,我们说“食物”是一个类,这个类有共同的属性:可以吃;“水果”是“食物”的一个派生类,它也有共同的属性:含有水分,有果皮,果肉。既然是由食物派生的,那么它一定也继承了“食物”类共同的属性:可以吃;而“苹果”则又是由“水果”派生的,有共同的属性:横截面是圆形,纵向截面是8字型,颜色是红色或绿色或红绿相间;我们说“这个苹果”就是苹果类的一个实例,是看得见摸得着的,它一定有区别于其他苹果的特点,而且它有“苹果类”的所有属性。  那苹果类有哪些方法呢:长大、颜色变化、掉到地上。 封装、继承、多态是面向对象程序的主要特征。正是这些特征使程序安全、可靠、可重用、易维护。把这些思想用于硬件、数据库、人工智能技术、分布式计算、网络、操作系统都显示出其优越性。因而,成为当今新兴的计算机技术。特别是多媒体数据只有与相应的操作相联系才能显现出图、声、像,采用封装数据和操作的办法,有力地促进了多媒体应用技术的发展。

通俗的说,类即分类的意思。从生物学上我们把生物从大到小的分类为界、门、纲、木、科、属、种。面向对象主要体现的就是分类的概念。其实,在以前的C语言、Basic语言等后现代计算机语言就已经有了分类的概念,比如基本类型分为整数、浮点数、字符、日期等。只不过在面向对象概念中把类型的概念扩大化。不只是利用常用的简单类型,还可以自定义类型(类)。比如圆是一类事物,我们可以通过半径、位置等信息描述他,就可以定义这些信息作为圆这类事物的属性。    例如:苹果就是对象。  它的属性如:颜色,重量,形状等  事件和方法如:你咬苹果,把苹果扔出去,踩扁,削皮等。     一句话解释:早上你去吃早饭,有面包你就尽管吃,不用去管面包的制作过程,也不需要你去一步一步的去制作面包。

面向对象与面向过程的区别: 1、面向过程:把一个问题分解成若干小问题,再对每个小问题进行分解(分模块),知道每个问题的难度都足以小,能够解决为止,然后再把这些小问题合并,就解决了大问题。 2、面向对象:把世界上的任何事物都看成对象,某些对象之间因为存在共性,所以把他们抽象起来,称之为类,把这些类自身的属性,特点动作给封装到类的内部,比如说: 老师类,学生类老师类的属性有姓名,年龄,工资,学历,教龄,特点动作有:教书,教育学生,组织学生类的属性有姓名,年龄,年级,特点动作有:学习两种方法之间最明显的区别就是面向过程主要是模块化思想,面向对象的是封装的思想。   
  了解面向对象,先看实例。比如说张三,即是指一个实体,那么张三个人就有身高,体重,姓名,性别等特性。其实每个人都有。  如果张三是个男人,那从男人的角度来看,是不是都有这些相同的特性呢?答案是肯定的。推而广之,女人也是不是有相同的特性 除了性别不同外。答案也是肯定。    再说面向对象编程。我们知道Windows环境中每个窗口的环境都差不多,都有最大/最小/关闭/标题/状态栏。但窗口的大小都有不  同。在软件开发过程中,我们可以根据窗口的这些共同特性进行归纳,预先设置好这些特性(说属性也可  以),当开发中需要一个窗口的时候。我们只需要设置好所需要窗口的相应特性(如:名称/大小等),系统就会帮助我们生成你需要的窗口。这就是Windows API所做的事。   所谓面向对象编程,就是把实现某些特定功能的功能模块根据其特性进行抽像,抽取出其共同特征进行编码。然后当你需  要这个功能的时候,只需要根据属性适当的调整其特性就可以得到不同的效果。    再来说张三。根据张三是男人这个特性,我们可以抽像出男人和张三有以下关系   男人(男,身高,体重,姓名,发型) -----类 这是抽像出的男人共有的特征 男人叫类 身高体重就叫属性   张三(男,180,180,张三,短发) ------对像 张三是男人中的一个 就是对象了,之所以是张三就是因为他的特征和其他人有不同   李四()----对象 李四为什么是李四呢?因为个体不同,虽然和张三有些共同的特性,如性别相同,更重要的是其他特性有差异,如果两个人所有特性相同,呵 呵是什么结果呢?发挥一下想像吧。    再回到编程中。窗口就是一个类,当你需要一个窗口的时候,只需要指定其窗口名称等特征,就可以得到一个窗口对象,当然你需要  两个窗口怎么办?很简单只要两个窗口名称不同,其他特性也可以相同的。就像双胞胎一样,也许外人看来是一模一样的,但是其 名字肯定是要不同的。 

以上是个人浅见,供参考。其实这些理念更多的是要有自己的理解,每个人理解不同,说出来你不一定能理解的。有兴趣你到网上 
找 孙鑫 老师的VC++教程,其中第一二节课就是专门讲到这个问题的。希望对你有帮助,有错误也请指出受教。   
譬如说你要开公司,创业初期整个公司就两三个人,所有的事都是你这个老板安排做的,后来发展越来越大了,你一个人不可能管理这么大的公司的每一个细节了,于是就成立了各个部门,制定每个部门的指责以及结构,部门下面还可以再设部门,之后需要完成什么任务只需要对各个部门下达命令,或者协调各个部门之间的交流关系,不需要你一步一步告诉他们怎么做,你需要关注更高层面的问题   
伪代码更容易理解…  类 狗{  
血统;毛色;体长;体重;性别;年龄;  咬();  叫();  摇尾巴();  看门();  睡觉();  }  
类 书{  
标题;副标题;作者;出版社;出版时间;封面;目录;所属人;……  翻页();  做笔记();  折角();  被偷();  ……  }  
狗1号=狗.构造函数(萨摩耶,白色,一米,五十斤,母,三岁);  书1号=书.构造函数(……);  
以上由两个类狗和书实例化了两个对象狗1号和书1号。  狗1号.睡觉();  书1号.翻页();  
这样让两个对象做出了动作。  
假如不需要这个对象了,或者说狗死了书卖了,则  狗1号.析构函数();  书1号.析构函数();

一、什么是类? 如果将对象比作房子,那么类就是房子的设计图纸,对象就是类的实现或实例。所以面向对象设计的重点是类的设计,而不是对象的设计。 对于C++程序而言,设计孤立的类是比较容易的,难的是正确设计基类及其派生类。更准确的比方,“食物”是“水果”的基类,“水果”是“食物”的派生类,而“苹果”则是“水果”的派生类,某一个具体的“苹果”就是对象(“苹果”的实例),从基类到派生类再到对象,一步步从抽象到具体。  要我说,无论是面向过程的语言也好,面向对象的语言也罢,我首先要给他讲的都是类和对象!--------“这个世界是由什么组成的?”这个问题如果让不同的人来回答会得到不同的答案。如果是一个化学家,他也许会告诉你“还用问嘛?这个世界是由分子、原子、离子等等的化学物质组成的”。如果是一个画家呢?他也许会告诉你,“这个世界是由不同的颜色所组成的”。„„呵呵,众说纷纭吧!但如果让一个分类学家来考虑问题就有趣的多了,他会告诉你“这个世界是由不同类型的物与事所构成的”好!作为面向对象的程序员来说,我们要站在分类学家的角度去考虑问题!是的,这个世界是由动物、植物等组成的。动物又分为单细胞动物、多细胞动物、哺乳动物等等,哺乳动物又分为人、大象、老虎„„就这样的分下去了!  现在,站在抽象的角度,我们给“类”下个定义吧!我的意思是,站在抽象的角度,你回答我“什么是人类?”首先让我们来看看人类所具有的一些特征,这个特征包括属性(一些参数,数值)以及方法(一些行为,他能干什么!)。每个人都有身高、体重、年龄、血型等等一些属性。人会劳动、人都会直立行走、人都会用自己的头脑去创造工具等等这些方法!人之所以能区别于其它类型的动物,是因为每个人都具有人这个群体的属性与方法。“人类”只是一个抽象的概念,它仅仅是一个概念,它是不存在的实体!但是所有具备“人类”这个群体的属性与方法的对象都叫人!这个对象“人”是实际存在的实体!每个人都是人这个群体的一个对象。老虎为什么不是人?因为它不具备人这个群体的属性与方法,老虎不会直立行走,不会使用工具等等!所以说老虎不是人! 二、什么是面向对象技术?面向对象技术(OOT)是一种软件开发和程序设计技术。所开发的程序是面向对象程序,直接描述客观世界的对象及其相互关系。例如,银行经理、秘书、职员、顾客、帐本、打印机,直接作为对象出现的程序中。他们相互通信,完成诸如存取款、会计结算、打印报表等业务。以往的编程技术只用数据结构和算法来模拟要完成的业务,虽然可以得到所需计算,但经不起修改。如果增加某项业务,如代营股票,则程序几乎要重编。而现在只要把增加的业务加到顾客、帐本、职员、打印机这些对象上就可以了。    三、什么是封装? 对象是封装了数据和操作的程序块。所谓封装是为这个程序块建立显示的界面。其它对象只能向这个界面发消息,不能访问内部的私有数据和操作。比如我们要求某人“坐下”(发消息),某人接受消息后调整自己的肌肉、神经使自己坐下(操作),从而改变了他的状态(描述姿态的数据变了)。外界不必过问惊动了几条神经,收缩了哪几块肌肉。因此,内部的数据和实现操作的算法若有改动,对其它程序对象没有任何影响。封装我们已经接触过,将子程序封装为命令(函数)、在易模块中建立公开子程序编译为易模块就是封装。 四、什么是继承? 封装使程序局部化,易修改、好维护,但许多对象有相同的功能时免不了重复,所以面向对象技术有继承的机制。作为新
类的基础的类称为‘基类’。从基类派生的类称为‘派生类’。派生类继承基类中定义的所有字段、属性、方法和事件。 例如,我们描述了“人”这一对象。人有姓名、年龄、职业、住址等数据和吃饭、乘车、上班等操作。我们再设计一个新对象“中国人”时,它将继承“人”的所有数据和操作,再加上“说汉话”、“写汉字”、“身份证号”等“中国人”特有的数据和操作。这样,设计新对象时只要在原有对象基础上作较少的派生,如果运行无误,便将新对象入库,下次又可继续派生。如从中国人派生出“中国男人”、“中国女人”等。于是,库中各类对象按继承关系可形成一棵倒置的树,分枝不断增加,到一定时候一个新程序要用到的对象类库中全有,只要“摘取”出来就可以直接使用,几乎不用编程。所以说,继承支持高度的软件重用。五、什么是多态性? 此外,由于对象自己操作自己的数据。同一消息不同的对象均以自己的方式响应,使得一种消息可有多种响应方式。这叫多态性。例如,“吃饭”这个消息,“中国人”和“俄国人”响应不同(一用筷子,一用刀叉),按过去的编程方法,要分别编出各自的程序,多态性则使程序增删简化。总结:下面引用goomoo的解释: 类是一个抽象的概念,我们说“食物”是一个类,这个类有共同的属性:可以吃;“水果”是“食物”的一个派生类,它也有共同的属性:含有水分,有果皮,果肉。既然是由食物派生的,那么它一定也继承了“食物”类共同的属性:可以吃;而“苹果”则又是由“水果”派生的,有共同的属性:横截面是圆形,纵向截面是8字型,颜色是红色或绿色或红绿相间;我们说“这个苹果”就是苹果类的一个实例,是看得见摸得着的,它一定有区别于其他苹果的特点,而且它有“苹果类”的所有属性。  那苹果类有哪些方法呢:长大、颜色变化、掉到地上。 封装、继承、多态是面向对象程序的主要特征。正是这些特征使程序安全、可靠、可重用、易维护。把这些思想用于硬件、数据库、人工智能技术、分布式计算、网络、操作系统都显示出其优越性。因而,成为当今新兴的计算机技术。特别是多媒体数据只有与相应的操作相联系才能显现出图、声、像,采用封装数据和操作的办法,有力地促进了多媒体应用技术的发展。








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值