精华内容
下载资源
问答
  • 对象三要素

    千次阅读 2019-07-17 20:57:13
    从小故事 里面体现出对象要素,对象三要素分别是:事件 属性 方法 。下面具体的详细的解释什么是对象对象要素。 什么是对象 根据定于:对象是一可以处理数据,并且是一独立的逻辑体。还能通过...

     

    前言:昨天晚上用了将近俩个小时的时间总结和分享,对象的三要素和什么是对象。并且结合vb程序设计的课本与自己的理解,写了一个小故事。从小故事 里面体现出对象的三要素,对象的三要素分别是:事件 属性 方法 。下面具体的详细的解释什么是对象和对象的三要素。

    什么是对象

          根据定于:对象是一个可以处理数据,并且是一个独立的逻辑体。还能通过逻辑把多个对象链接起来,实现某种功能。

           以vb为例:

    可以看到,vb窗体本身就是一个对象。并且窗体上的每一个控件都是通过实例化,创建的对象。这些对象在没有被实例化之前,都是一个抽象的模型。所以在没有被实例化之前这些模型是没有三要素的,被实例化之后才有。 

    三要素:

      事件

             定义: 外界对对象的刺激能引起对象的响应,这种刺激称为事件 ,每一个对象可以响应的事件都不一样。

             例如:窗体加载事件,只有窗体可以识别。而命令按钮无法识别,具体代码如下。

             

    Private Sub Command1_Click() '这是一个命令按钮的单机事件
        Dim max As Integer, min As Integer, sum As Integer, average As Single
        Dim x As Integer, i As Integer
        Randomize '随机数源
        max = 10: min = 99 '设置最大数和最小数的初始值
        sum = 0
        For i = 1 To 20  '产生 20个随机数
            x = Int(90 * Rnd + 10) '产生20个10 到99随机整数
            Label1.Caption = Label1.Caption & x & Space(4) '输入x产生的20个随机值
            If x > max Then max = x '比较产出的数是否大于定于的最大值
            If x < min Then min = x '比较产生的数是否小于定义的最小值
            sum = sum + x '累加
            
        Next i
        average = sum / 20 '平均数
        Text1.Text = max: Text2.Text = min
        Text3.Text = average
    End Sub
    
    Private Sub Form_Load()'这是窗体的加载事件
    
    End Sub

    属性

           定义:所有的对象都具有自己的特征,称为属性

           例如:命令按钮的 caption 名称属性 这些都是通用属性。

     方法

            定义:各种对象具有特定的功能,称为方法。所有的方法都不是平白无故蹦出来的,一定有前因后果。

     

     

    展开全文
  • 三个基本元素:  封装、继承和多态。 1. 封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封

    文章摘自http://blog.csdn.net/Lee_Xq_/article/details/38994047

    在C++ primer及相关书籍中未看到过这个知识点,特此记录一下。


    三个基本元素:

            封装、继承和多态。

    1. 封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
    2. 继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 
    3. 多态: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

        C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。

    五个基本原则(未了解过)

        单一职责原则、开放封闭原则、Liskov替换原则、依赖倒置原则和接口隔离原则

    单一职责原则(Single-Resposibility Principle)
        其核心思想为:一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将导致职责依赖,相互之间就产生影响,从而大大损伤其内聚性和耦合度。通常意义下的单一职责,就是指只有一种单一功能,不要为类实现过多的功能点,以保证实体只有一个引起它变化的原因。
        专注,是一个人优良的品质;同样的,单一也是一个类的优良设计。交杂不清的职责将使得代码看起来特别别扭牵一发而动全身,有失美感和必然导致丑陋的系统错误风险。

    开放封闭原则(Open-Closed principle)
        其核心思想是:软件实体应该是可扩展的,而不可修改的。也就是,对扩展开放,对修改封闭的。开放封闭原则主要体现在两个方面1、对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。2、对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对其进行任何尝试的修改。
        实现开开放封闭原则的核心思想就是对抽象编程,而不对具体编程,因为抽象相对稳定。让类依赖于固定的抽象,所以修改就是封闭的;而通过面向对象的继承和多态机制,又可以实现对抽象类的继承,通过覆写其方法来改变固有行为,实现新的拓展方法,所以就是开放的。
        “需求总是变化”没有不变的软件,所以就需要用封闭开放原则来封闭变化满足需求,同时还能保持软件内部的封装体系稳定,不被需求的变化影响。

    Liskov替换原则(Liskov-Substituion Principle)
        其核心思想是:子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。在父类和子类的具体行为中,必须严格把握继承层次中的关系和特征,将基类替换为子类,程序的行为不会发生任何变化。同时,这一约束反过来则是不成立的,子类可以替换基类,但是基类不一定能替换子类。
        Liskov替换原则,主要着眼于对抽象和多态建立在继承的基础上,因此只有遵循了Liskov替换原则,才能保证继承复用是可靠地。实现的方法是面向接口编程:将公共部分抽象为基类接口或抽象类,通过Extract Abstract Class,在子类中通过覆写父类的方法实现新的方式支持同样的职责。
        Liskov替换原则是关于继承机制的设计原则,违反了Liskov替换原则就必然导致违反开放封闭原则。
        Liskov替换原则能够保证系统具有良好的拓展性,同时实现基于多态的抽象机制,能够减少代码冗余,避免运行期的类型判别。

    依赖倒置原则(Dependecy-Inversion Principle)
        其核心思想是:依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。
        我们知道,依赖一定会存在于类与类、模块与模块之间。当两个模块之间存在紧密的耦合关系时,最好的方法就是分离接口和实现:在依赖之间定义一个抽象的接口使得高层模块调用接口,而底层模块实现接口的定义,以此来有效控制耦合关系,达到依赖于抽象的设计目标。
        抽象的稳定性决定了系统的稳定性,因为抽象是不变的,依赖于抽象是面向对象设计的精髓,也是依赖倒置原则的核心。
        依赖于抽象是一个通用的原则,而某些时候依赖于细节则是在所难免的,必须权衡在抽象和具体之间的取舍,方法不是一层不变的。依赖于抽象,就是对接口编程,不要对实现编程。

    接口隔离原则(Interface-Segregation Principle)
        其核心思想是:使用多个小的专门的接口,而不要使用一个大的总接口。
        具体而言,接口隔离原则体现在:接口应该是内聚的,应该避免“胖”接口。一个类对另外一个类的依赖应该建立在最小的接口上,不要强迫依赖不用的方法,这是一种接口污染。
        接口有效地将细节和抽象隔离,体现了对抽象编程的一切好处,接口隔离强调接口的单一性。而胖接口存在明显的弊端,会导致实现的类型必须完全实现接口的所有方法、属性等;而某些时候,实现类型并非需要所有的接口定义,在设计上这是“浪费”,而且在实施上这会带来潜在的问题,对胖接口的修改将导致一连串的客户端程序需要修改,有时候这是一种灾难。在这种情况下,将胖接口分解为多个特点的定制化方法,使得客户端仅仅依赖于它们的实际调用的方法,从而解除了客户端不会依赖于它们不用的方法。
        分离的手段主要有以下两种:1、委托分离,通过增加一个新的类型来委托客户的请求,隔离客户和接口的直接依赖,但是会增加系统的开销。2、多重继承分离,通过接口多继承来实现客户的需求,这种方式是较好的。


    展开全文
  • 面向对象三个要素,五原则 笔记

    千次阅读 2012-09-27 00:27:13
    三要素:封装、继承、多态 五原则: 单一职责原则(Single Resposibility Principle) 开放封闭原则(Open-Close Principle):对扩展开放,对修改封闭 Liskov 替换原则: 参考...

    三要素:封装、继承、多态

    五原则:

    单一职责原则(Single Resposibility Principle)

    开放封闭原则(Open-Close Principle):对扩展开放,对修改封闭

    Liskov 替换原则: 参考(http://blog.csdn.net/zhengzhb/article/details/7281833)

            里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。包含以下4层含义:

    • 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
    • 子类中可以增加自己特有的方法。
    • 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
    • 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

    依赖倒置原则(Dependency Inversion Principle):

    http://stackoverflow.com/questions/62539/what-is-the-dependency-inversion-principle-and-why-is-it-important

    • High level modules should not depend upon low-level modules. Both should depend upon abstractions.
    • Abstractions should never depend upon details. Details should depend upon abstractions.

    接口隔离原则(Interface Isolation Principle)

    展开全文
  • 面向对象三要素

    千次阅读 2012-10-10 14:41:08
    面向对象三要素是:封装 继承 多态 封装  封装就是事物抽象为类,把对外接口暴露,将实现和内部数据隐藏。 继承 面向对象编程 (OOP) 语言的一主要功能就是“继承”。继承是指这样一种能力:它可以...

    http://www.cnblogs.com/zxjyuan/archive/2009/12/11/1621621.html


    面向对象三要素是:封装 继承 多态

    o_OOBase.gif

    封装

     封装就是事物抽象为类,把对外接口暴露,将实现和内部数据隐藏。

    继承
    面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
    通过继承创建的新类称为“子类”或“派生类”。
    被继承的类称为“基类”、“父类”或“超类”。
    继承的过程,就是从一般到特殊的过程。
    要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。
    在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。
     
    继承概念的实现方式有三类:实现继承、接口继承和可视继承。
    Ø         实现继承是指使用基类的属性和方法而无需额外编码的能力;
    Ø         接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;
    Ø         可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。
    在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,Employee 是一个人,Manager 也是一个人,因此这两个类都可以继承 Person 类。但是 Leg 类却不能继承 Person 类,因为腿并不是一个人。
    抽象类仅定义将由子类创建的一般属性和方法,创建抽象类时,请使用关键字  Interface 而不是  Class。
    OO开发范式大致为:划分对象→抽象类→将类组织成为层次化结构(继承和合成) →用类与实例进行设计和实现几个阶段。
     
    多态
    多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。
    实现多态,有二种方式,覆盖,重载。
    覆盖,是指子类重新定义父类的虚函数的做法。
    重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。
    其实,重载的概念并不属于“面向对象编程”,重载的实现是:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。如,有两个同名函数:function func(p:integer):integer;和function func(p:string):integer;。那么编译器做过修饰后的函数名称可能是这样的:int_func、str_func。对于这两个函数的调用,在编译器间就已经确定了,是静态的(记住:是静态)。也就是说,它们的地址在编译期就绑定了(早绑定),因此,重载和多态无关!真正和多态相关的是“覆盖”。当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态(记住:是动态!)的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。因此,这样的函数地址是在运行期绑定的(晚邦定)。结论就是:重载只是一种语言特性,与多态无关,与面向对象也无关!引用一句Bruce Eckel的话:“不要犯傻,如果它不是晚邦定,它就不是多态。”
    那么,多态的作用是什么呢?我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。
     
    概念讲解
    泛化( Generalization
    o_Generalization.gif
    图表  1 泛化
    在上图中,空心的三角表示继承关系(类继承),在 UML 的术语中,这种关系被称为泛化( Generalization )。 Person( ) 是基类, Teacher( 教师 ) Student( 学生 ) Guest( 来宾 ) 是子类。
    若在逻辑上B是A的“一种”,并且A的所有功能和属性对B而言都有意义,则允许B继承A的功能和属性。
    例如, 教师是人, Teacher  Person 的“一种”( a kind of  )。那么类 Teacher可以从类 Person派生(继承)。
    如果A是基类,B是A的派生类,那么B将继承A的数据和函数。
    如果类A和类B毫不相关,不可以为了使B的功能更多些而让B继承A的功能和属性。
    若在逻辑上B是A的“一种”(a kind of ),则允许B继承A的功能和属性。
     
    聚合(组合)
    o_aggregationBase.gif
    图表  2 组合
    若在逻辑上A是B的“一部分”(a part of),则不允许B从A派生,而是要用A和其它东西组合出B。
    例如,眼(Eye)、鼻(Nose)、口(Mouth)、耳(Ear)是头(Head)的一部分,所以类Head应该由类Eye、Nose、Mouth、Ear组合而成,不是派生(继承)而成。
     
    聚合的类型分为无、共享( 聚合)、复合( 组合)三类。
     
    聚合( aggregation
     
    o_aggregation.gif
    图表  3 共享
    上面图中,有一个菱形(空心)表示聚合( aggregation )(聚合类型为共享),聚合的意义表示 has-a 关系。聚合是一种相对松散的关系,聚合类 B 不需要对被聚合的类 A 负责。
     
    组合( composition
    o_composition.gif
    图表  4 复合
    这幅图与上面的唯一区别是菱形为实心的,它代表了一种更为坚固的关系 —— 组合( composition )(聚合类型为复合)。组合表示的关系也是 has-a ,不过在这里, A 的生命期受 B 控制。即 A 会随着 B 的创建而创建,随 B 的消亡而消亡。
     
    依赖 (Dependency)
    o_Dependency.gif
    图表  5 依赖
    这里 B A 的关系只是一种依赖 (Dependency) 关系,这种关系表明,如果类 A 被修改,那么类 B 会受到影响。


    展开全文
  • 论VB对象三要素

    千次阅读 2019-10-13 09:50:15
    VB对象 1 VB对象是什么 VB全名Visual Basic 对象是机会具有特殊属性(数据)和行为方式(方法)的实体。 对象:将数据和处理该数据的过程(函数和子程序)打包在一起而...面向对象通俗点就是把一要描述的事物(对象)的一些...
  • 面向对象三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只...
  • C#之面向对象三要素

    千次阅读 热门讨论 2018-04-29 21:24:50
    一、面向对象1、什么是面向对象?面向对象是一种思想,面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节,在面向对象中...也就是说面向对象有哪些好处呢?面向对象提高了程序的可复...
  • VB面向对象三要素理解。

    千次阅读 热门讨论 2019-10-13 11:02:20
    面向对象比较通俗的解释:对象使人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可以看做对象,他不仅能表示具体的事物,还能表示抽象的规则,计划或事件。 VB就是使用了面向对象程序设计(OOP)方法,从...
  • 从Python对象三要素来看is和==的区别

    千次阅读 2017-07-06 17:01:34
    Python对象三要素Python对象包含三个基本要素id,type和value: 要素 说明 获取方式 id 身份标识 id(obj) type 数据类型 type(obj) value 值 value{obj} is和==的区别 标识 名称 判断因素 is 同一性...
  • 面向对象三要素五原则六视点 一、面向对象三要素 1、封装; 2、继承; 3、多态。 二、面向对象五原则 1、单一职责原则; 2、开放-封闭原则(对扩展开放;对修改关闭); 3、Liskov替换原则(子类型必须能够...
  • VB中面向对象三要素及实例

    千次阅读 2019-10-13 10:44:05
    复杂的动作主体又是由若干简单的动作体革对象组成。 概念 对象:从程序设计的角度看,对象就是既包含数据又包含接受事件后对数据进行操作的方法并将其封装起的一独立逻辑实体。 属性:属性是指对象的特性,是...
  • 数据模型三个要素

    万次阅读 2018-08-27 11:26:07
    它从语法角度表述了客观世界中数据对象本身的结构和数据对象之间的关联关系,是对系统静态特征的描述。 (2)数据操作 数据操作时对数据库中对象的实例允许执行的操作的集合,主要是指检索和更新(插入、删除、...
  • 面向对象三要素--初窥

    千次阅读 2012-09-20 21:21:01
    首先是封装,其实在最开始学习的时候,我一直没有弄明白所谓的类到底是什么东西,先前只是在课本上看到面向对象三个特征封装,继承,多态。 为了应付考试,结果没有经过多少理解就开始背下来了。结果现在忘得...
  • 面向对象三要素的作用

    千次阅读 2012-07-22 19:00:53
    封装可以隐藏实现细节,使得代码模块化。 继承可以扩展已存在的代码模块(类);...通俗说,多态的本质就是将子类类型的指针赋值给父类类型的指针,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作
  • 数据结构的三个要素

    千次阅读 2020-10-02 12:57:13
    数据结构的三要素: 一、逻辑结构 二、存储结构(物理结构) 、数据的运算 其中,逻辑结构指的是数据与数据之间的逻辑关系,逻辑结构以下四种: (1)数据和数据之间没关系的时候是集合, (2)...
  • UML之概述、结构三要素、面向对象技术

    千次阅读 热门讨论 2018-11-27 19:28:25
    Unified Modeling Language (UML)又称统一建模语言或标准建模语言,它是一个支持模型化和软件系统开发的...UML由3个要素构成:UML的基本构造块、支配这些构造块如何放置在一起的规则和运用于整个语言的公用机制。...
  • python 对象三要素:Id,Type,Value Id:唯一标识一对象 Type:标识对象的类型 Value:对象的值 a is b 判断 a 对象是否就是 b 对象(通过id来判断) a == b 判断 a 对象的值是否和 b 对象的值相等(通过value来...
  • 面向对象的3基本要素:封装、继承、多态  面向对象的5基本设计原则:  单一职责原则(Single-Resposibility Principle)   其核心思想为:一类,最好只做一件事,只有一引起它的变化。单一职责...
  • 面向对象三个基本特征是:封装、继承、多态。 一 封装  封装就是将数据与操作数据的源代码进行有机的结合,形成类,其中数据和函数都是类的成员。隐藏了类的实现,类的使用者只需知道公共的接口,就可以...
  • 试述数据模型的概念,数据模型的作用和数据模型的三个要素: 答案: 模型是对现实世界的抽象。在数据库技术中,表示实体类型及实体类型间联系的模型称为“数据模型”。 数据模型是数据库管理的教学形式框架,是...
  • 事件三要素

    千次阅读 2019-09-29 04:31:28
    1.事件是由部分组成: 事件源 事件类型 事件处理程序 我们也称为事件三要素 (1)事件源 事件被触发的对象 谁被触发 (2)事件类型 如何触发 什么事件 比如鼠标点击(onclick),鼠标经过,键盘按下 (3)事件...
  • 数据模型是数据库中用来对现实世界进行抽象的...因此数据模型通常由数据结构,数据操作和完整性约束部分组成 (1)数据结构 是研究的对象类型的集合,是对系统静态特性的描述。 (2)数据操作 ...
  • 软件工程包括三个要素:方法、工具和过程。 软件工程方法为软件开发提供了“如何做”的技术。它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、...
  • 面向对象分析的三个模型与5个层次

    万次阅读 2017-03-11 17:13:46
    面向对象建模得到的模型包含系统的3个要素,即静态结构(对象模型)、交互次序(动态模型)和数据变换(功能模型)。解决的问题不同,这3个子模型的重要程度也不同。 复杂问题(大型系统)的对象模型通常由下述5个层次...
  • Mybatis的基本要素--核心对象

    千次阅读 2019-04-16 09:34:11
    大家好啊,今天呢来说下Mybatis的核心对象,也就是说基本三要素. 核心接口和类。 Mybatis核心配置文件(mybatis-config.xml) SQL映射文件 一、下面首先介绍Mybatis的核心接口和类。 (1) 每MyBatis的应用程序...
  • Java要素

    千次阅读 2017-11-25 09:13:22
    java要素:继承、封装、多态 继承 每类只能继承一类,object默认为所有类的父类 关键字: 1.extends:表示继承,用法为extends 2.super:表示当前类的父类,用super()表示调用父类的构造方法 3....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 97,742
精华内容 39,096
关键字:

对象有三个要素分别是