只一个问题,和同学争论了很长时间,VB到底是不是面向对象的?请给一个完全的,权威的解释

解决方案 »

  1.   

    好的面向对象程序设计的优点
    本主题是对开始于“公有集合示例:稻草盖的房子”一节,并在“私有集合示例:树枝盖的房子”和“创建自己的集合类:砖块盖的房子”一节中继续作了讨论的代码示例的结果进行总结。在开始本主题之前,请先阅读一下那些主题。创建 Employees 集合类,其结果是产生了一种非常清晰、模块化的编程风格。这个集合的所有代码都在集合类中(封装),从而减小了 SmallBusiness 类模块的大小。如果 Employee 对象的集合出现在对象分层结构的不止一处,那么重用集合类将不需要复制任何代码。增强集合类
    可以为自己的集合类实现附加的方法和属性。例如,可以实现 Copy 和 Move 方法,或者包含 SmallBusiness 对象引用的只读 Parent 属性。也可以添加事件。例如,每当 Add 或者 Remove 方法更改集合中的项数时,可以产生一个 CountChanged 事件。强健性,强健性,强健性
    并不总是必须以可能的最强健的方式来实现集合。不过,面向对象编程的一个优点是代码重用;重用对象比起复制源代码来要容易的多,而且如果使用的是强健的、封装的代码,则会更安全些。一位精明的人说过:“如果想书写真正强健的代码,一定要假设会发生真正糟糕的事情。”集合类和部件软件
    如果使用的是 Visual Basic 的专业版或者企业版,可以将自己的工程转变成 ActiveX 部件,这样,同组的其他程序员就可以使用已经创建的对象了。实现集合类的步骤
    下面的清单总结了创建集合类所需要的步骤。 将类模块添加到工程中,并为它起一个名字—通常是该集合类将包含的对象名的复数形式。(请参阅本章前面的“命名属性、方法和事件”一节。)
    将私有变量添加进去,该私有变量包含对属性和方法所委派的 Collection 对象的引用。
    在 Class_Initialize 事件过程中,创建 Collection 对象。(如果希望将该对象的创建时间推迟到需要时,可以在第二步中将私有变量声明为 AS New Collection。这样每次访问 Collection 时会增加少量开销。)
    将 Count 属性和 Add、Item 以及 Remove 方法添加到类模块中;在每种情况下,通过调用其相应的成员,委派给私有的 Collection。
    实现 Add 方法时,通过只接受一种类型的对象,可以覆盖 Collection 对象的无鉴别力的 Add 方法。甚至可以不让外部创建的对象添加到自己的集合中,这样Add 方法就完全控制了对象的创建和初始化。
    用“过程属性”对话框,使“Item”方法成为集合类中缺省的方法。
    象下面显示的那样,添加一个“NewEnum”方法。用“过程属性”对话框来将其标志为隐藏的,并将一个值为 -4 的过程标识符给它,这样,它就可以使用 For Each ... Next。 
    Public Function NewEnum() As IUnknown
    Set NewEnum = mcol.[_NewEnum]
    End Function注意   上面的代码假设第二步中的私有变量被命名为 mcol。将自定义属性、方法和事件添加到集合类中。 
    注意   在 Visual Basic 的专业版和企业版所包括的 Class Builder 实用工具,可用来创建集合类。就可以定制所得到的源代码。
      

  2.   

    一句话,VB是基于对象的,不是完全面向对象的,和C++还有JAVA相比,
      

  3.   

    1、非常简单 VB不是完整的面向对象语言(同意yumanqing(共同学习) 的观点)2、需要强调的是 VB 并不支持面向对象三大特性中的 继承性。3、虽然VB并不是完整的面向对象程序设计语言,但这并不影响在 VB 中使用类将程序组织成可重复使用的模块。
      

  4.   

    一句话,VB是基于对象的,不是完全面向对象的,和C++还有JAVA相比,
    我现在也是在用VB来OO呢,
    如果不能实现继承的话就是通过COM来实现。
      

  5.   

    VB6 支持对象的部分特性,以Com为基础,最灵活的对象模型是用C++,最直观的对象模型是java和.net
      

  6.   


    vb是非常接近于自然语言的一种编程语言。容易理解和学习。
    vb支持类的技术,并且支持com对象的扩展。但是vb不支持类的继承和扩展,既然没有继承性,那么就谈不上多态性。一个写好的类就是一个类,你不能对它进行更改和对象层次的变更。
    vb支持子类化技术,但是不支持交互子类化技术,这就使vb的控制能力只能面对已经提供的对象接口。虽然我们可以利用api和dll做很多事情,但是在对对象的操控上,我们困难重重。
    vb是不能和c,c++比的,vb是一种编程语言,而c,c++是一种国际标准,我们可以说vb和vc怎么的,却不能说vb和c++怎么的。
    vb编程语句的不严格的结构化设计,导致vb在对许多重要的数据结构操作的时候,总要想方设法去模仿构造类似的数据结构,在需要精确控制的系统工程上,vb不是理想的语言。 
    PS:我仍然很喜欢vb,超过对.net的喜欢(我真的不喜欢.net,我认为.net是笼子里的舞蹈)
      

  7.   

    VB6的生命力是强大的VB.NET是VB6的延续....................