精华内容
下载资源
问答
  • 面向对象的特性
    千次阅读
    2021-11-22 21:20:54

    1  面向对象就是:是一种通过对象的方式,将现实中的事物映射到计算机模型的一种编程方法;如手机就是一个对象

    2  面向对象三大特性:封装、继承和多态。

    • 封装

    封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法。

    如果属性不想被外界访问,我们大可不必提供方法给外界访问。

    但是如果一个类没有提供给外界访问的方法,那么这个类也没有什么意义了。

    • 继承

    继承是使用已存在的类的定义作为基础建立新类的技术。

    新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。

    通过使用继承我们能够非常方便地复用以前的代码。

    关于继承如下 3 点请记住:

    1、子类拥有父类非 private 的属性和方法。

    2、子类可以拥有自己属性和方法,即子类可以对父类进行扩展。

    3、子类可以用自己的方式实现父类的方法(重写)。

    • 多态

    多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定。


     

    更多相关内容
  • javascript 的面向对象特性参考。 这是我学习javascript中面向对象特性的一点总结。希望对具有其他语言的面向对象设计经验的朋友理解javascript的OO有所帮助。我具有c++,java和python的面向对象设计的经验。 总的...
  • 很少有人对JavaScript的面向对象特性进行系统的分析。我希望接下来的文字让你了解到这个语言最少为人知的一面。
  • 主要介绍了javascript面向对象特性代码实例,包括类、静态成员、对象、重载,需要的朋友可以参考下
  • Java语言的面向对象特性.pdf 学习资料 复习资料 教学资源
  • 4_Java面向对象特性.ppt

    2022-03-31 09:00:09
    4_Java面向对象特性.ppt
  • 多媒体数据库的面向对象特性分析
  • javascript面向对象特性代码实例.docx
  • Javascript面向对象特性实现(封装、继承、接口 Javascript面向对象特性实现(封装、继承、接口
  • Java程序开发教学课件:05-Java的面向对象特性.ppt
  • Oracle 8i的面向对象特性及其实现方法.pdf
  • Oracle PL_SQL面向对象特性Web应用研究.pdf
  • java面向对象特性学Java必看PPT教案学习.pptx
  • JAVA教程第三讲JAVA语言中的面向对象特性.pdf
  • 极客学院关于C#的完整视频,由于上传大小限制,分包分享给大家。
  • C语言实现C++中面向对象特性

    千次阅读 2017-09-16 12:49:12
    C语言是面向过程的语言,因此用C语言进行面向对象编程,则需要做一些预处理。 一、使用结构体定义实现对象  面向对象的开发的核心思想就是对象,可以把任何事物抽象成对象,而把程序之间的交互以及调用,对象之间...

           C语言是面向过程的语言,因此用C语言进行面向对象编程,则需要做一些预处理。

    一、使用结构体定义实现对象

           面向对象的开发的核心思想就是对象,可以把任何事物抽象成对象,而把程序之间的交互以及调用,对象之间传递消息(实际上就是对象成员函数的调用)的形式来实现。

    面向对象的语言专门引入了对象类型定义机制,用class关键字实现,C语言中没有专门针对面向对象的思想,也没有引入对象类型定义机制,但C语言中的结构体定义十分适合

    定义对象类型。以下是面向对象class定义类型和面向过程语言sturct定义对象类型:

        class定义一个对象类型

         class  _TYPE_OBJECT
         {
        	  private:
    		DWORD     dwObjectType;
    		DWORD     dwObjectSize;
    	  public:
    		DWORD     GetObjectType();
    		DWORD     GetObjectSize();
         }
        struct定义一个对象类型

           

    	struct  _TYPE_OBJECT
    	{
    		DWORD     	dwObjectType;
    		DWORD		dwObjectSize;
    		
    		DWORD		(*GetObjectType)(_TYPE_OBJECT* lpThis);
    		DWORD		(*GetObjectSize)(_TYPE_OBJECT* lpThis);
    	};
         与C++不同的是,C语言定义的成员函数增加了一个额外的参数:lpThis,这是最关键的一点。实际上,C++语言在调用成员函数的时候,也隐含了一个指向自身的参数(this)

    因为C语言不支持这种隐含机制,因此需要明确的指定指向自身的参数。两种方式调用成员函数的方式如下:

        _TYPE_OBJECT  TypeObject;
        TypeObject.GetObjectType();     //C++调用方式
        TypeObject.GetObjectType(&TypeObject);   //C调用方式
    二、使用宏定义实现继承特性


         面向对象的另外一个重要思想就是实现继承,而C语言不具备这一特性。为了实现这个特性,在定义个对象(结构体)的时候,同时也定义一个宏,用来实现继承

    struct  __TYPE_OBJECT
    {
    	DWORD		dwType;
    	DWORD		dwSize;
    	DWORD		GetType(__TYPE_OBJECT *);
    	DWORD		GetSize(__TYPE_OBJECT*);
    };
    #define  INHERIT_FROM_TYPE_OBJECT		do{
    							DWORD   	dwType;
    							DWORD		dwSize;
    							DWORD		GetType(__TYPE_OBJECT *);
    							DWORD		GetSize(__TYPE_OBJECT*);
    						   }while(0);

    假设另外一个对象从该对象继承,则可以这样定义

    struct  _CHILD_OBJECT
    {
    	INHERIT_FROM_TYPR_OBJECT
            ...
    	...
    };
    这样就实现了对象__CHILD_OBJECT从对象__TYPE_OBJECT继承的目的。显然,这样做的一个弊端是对象尺寸会增大(每个对象的定义都包含了指向成员函数的指针)

    ,但相对给开发造成的便利以及增强代码的可移植性而言,是非常值得的。

    三、使用强制转换实现多态特性

    面向对象语言的另一个重要特性就是多态,子类类型的对象可以适应父类类型的所有情况。为了实现这个特性,可以使用C语言的强制类型转换机制。

    比如__CHILD_OBJECT从对象__TYPE_OBJECT对象继承,从理论上上讲,__CHILD_OBJECT可以作为任何参数类型是__TYPE_OBJECT的函数的参数。

    DWORD GetObjcetName(__TYPE_OBJECT* lpThis);

    那么,以__CHILD_OBJECT对象作为参数是可以的:

    __CHILD_OBJECT     Child;

    GetObjectName((__TYPE_OBJECT*)&Child);

    展开全文
  • 面向对象三大特性知识模板 大家好,我是Ziph! 今天分享下面向对象三大特性的知识内容。 结合思维导图学习效果更佳!点击下方链接进入 Java面向对象三大特性思维导图 一、封装 封装的必要性:在对象的外部为对象的...
  • java面向对象特性简述

    千次阅读 2019-08-20 10:24:49
    面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个“模块”中,也就是一个类中,属性用变量定义,行为用方法进行定义,方法可以直接访问同一个对象中的属性。 简述: 封装的作用就是将某个事物所有的...

    封装

    官方解释:
    面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个“模块”中,也就是一个类中,属性用变量定义,行为用方法进行定义,方法可以直接访问同一个对象中的属性。
    简述:
    封装的作用就是将某个事物所有的属性归为一类,
    对象所有的动作和行为全部由对象自己来完成。

    作用:实现程序的高内聚,低耦合。

    抽象

    官方解释:
    抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处,并且会忽略与当前主题和目标无关的那些方面,将注意力集中在与当前目标有关的方面。

    简述:
    抽象就是将许多事物他们共同的特性,归于一类。

    继承

    官方解释:
    继承就是在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要。
    继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系。
    简述:
    继承和抽象之间存在这一些微妙的关系。
    继承就是在一个已经存在的类的基础之上,在加入或者修改为自己独特的特性。

    作用:提高代码的可重用性和可扩展性。

    多态

    官方解释:
    多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。

    简述:
    理解多态可以从这两方向入手:向上造型、向下造型。
    向上造型:子类–>父类/接口:自动转
    向下造型:父类–>子类:强制转
    强制转型:
    可以通过强制转换将父类型变量转换为子类型变量,前提是该变量指向的对象确实是该子类类型
    可以通过强制转换将变量转换为某种接口类型,前提是该变量指向的对象确实实现了该接口

    作用:增强了软件的灵活性和扩展性。


    在这里插入图片描述

    展开全文
  • 面向对象特性代码解析,三大特性,面向对象思想
  • Java中的面向对象特性

    2012-04-08 10:35:33
    Java中的面向对象特性,含报告,可留言索取
  • 传统方式对JavaScript的应用基本上是基于过程模型的,若在JavaScript中利用面向对象的思想进行代码编写,将会使得代码具有良好的结构和逻辑性,更便于管理和维护。本文让读者看到JavaScript如何实现面向对象编程并...
  • C++面向对象的三大特性

    千次阅读 2021-04-26 21:05:35
    C++ 三大特性是:封装,继承,多态 一、概念和优点 封装(encapsulation):封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中...

    C++ 三大特性是:封装,继承,多态

    一、概念和优点

    封装(encapsulation):封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过 外部接口,一特定的访问权限来使用类的成员。通过封装使一部分成员充当类与外部的接口,而将其他的成员隐蔽起来,这样就达到了对成员访问权限的合理控制,使不同类之间的相互影响减少到最低限度,进而增强数据的安全性和简化程序的编写工作。

    继承:继承是面向对象软件技术当中的一个概念。如果一个类B继承自另一个类A,就把这个B称为A的子类,而把A称为B的父类。**继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。**在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。

    多态(Polymorphisn):多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说:允许将子类类型的指针赋值给父类类型的指针多态性在C++中都是通过虚函数(Virtual Function)实现的虚函数就是允许被其子类重新定义的成员函数。而子类重新定义父类虚函数的做法,称为“覆盖”或者称为“重写”(override)。

    二、封装

    封装实际就是为类中的函数和变量设置访问权限。访问权限包括public,private,protect。其中类对象的默认访问控制权限为private。
    (1)public(共有),所有类均可访问
    (2)protected(保护),可以被自身和子类访问
    (3)private(私有),只能自身和友元函数访问

    说明:
    (1)public成员可以在类外直接访问。
    (2)protected和private成员在类外(在此将这两种限定符都可以看成是私有的,在继承出区别)不能够访问。
    (3)它们的作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止。
    (4)class的默认访问权限是private,而struct为public型(因为struct要兼容C)。C++常用的是class
    (5)类外:即脱离了类的作用域或者说访问时不在类的成员函数中。

    三、继承

    子类继承基类后,可以创建子类对象来调用基类函数,变量等。集成包括以下形式:
    (1)单一继承:继承一个父类,这种继承称为单一继承,一般情况尽量使用单一继承,使用多重继承容易造成混乱易出问题(2)多重继承:继承多个父类,通过逗号进行分隔可以让派生类指定多个基类。例如 狗:public 哺乳动物,public 犬科动物

    (3)菱形继承:多重继承掺杂隔代继承1-n-1模式,此时需要用到虚继承,例如 B,C虚拟继承于A,D再多重继承B,C,否则会出错
    继承的代码表示为:

    class Daughter : public Father
    {
     public: 
      Daughter() {};
    };
    
    

    继承方式规定了如何访问继承的基类的成员。继承方式指定了派生类成员以及类外对象对于从基类继承来的成员的访问权限
    继承权限:子类继承基类除构造和析构函数、基类的重载运算符、基类的友元函数以外的所有成员,继承可以扩展已存在的代码,目的也是为了代码重用。

    另外,继承可分为接口继承和实现继承:
    (1)普通成员函数的接口总是会被继承:  子类继承一份接口和一份强制实现
    (2)普通虚函数被子类重写     :  子类继承一份接口和一份缺省实现
    (3)纯虚函数只能被子类继承接口  :  子类继承一份接口,没有继承实现
    访问权限图如下:

    在这里插入图片描述

    四、多态

    C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。简单地说,多态意味着单个函数可以有多个不同的实现。
    多态是基于虚函数来实现的。多态实现的两大条件为:
    (1)调用函数的对象必须是指针或者引用。
    (2)被调用的函数必须是虚函数,且完成了虚函数的重写。

    #include <iostream>
    
    class Person 
    {
    public:
        virtual void BuyTicket(int)
        {   
            std::cout << "Adult need Full Fare!" << std::endl;
        }   
    };
    
    class Child : public Person
    {
    public:
        virtual void BuyTicket(int)
        {   
            std::cout << "Child Free!" << std::endl;
        }   
    };
    
    void fun(Person& obj)
    {
        obj.BuyTicket(1);                                                                                                                             
    }
    
    int main(void)
    {
        Person p;
        Child c;
    
        fun(p);
        fun(c);
    
        return 0;
    }
    
    
    

    4.1 虚函数

    虚函数是在函数前加了virtual的函数;纯虚函数是前面加了virtual,同时函数被=0的函数,纯虚函数不能被调用。
    虚函数的底层原理可参考以下博客。
    https://blog.csdn.net/zaishaoyi/article/details/101318044

    展开全文
  • java面向对象三大特性

    千次阅读 2021-03-01 19:31:10
    一、面向对象的概念 面向对象是一种符合人类思维习惯的编程思想。现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象来映射现实中的事物使用对象的关系来描述事物之间的联系,...
  • Java的面向对象特性PPT,对于Java的类继承,多态等特性有详细的讲解
  • 很多面向对象的编程语言已经包含这三个特性了,例如 Smalltalk、C++、Java。但是你也可以用几乎所有的编程语言来实现面向对象编程,例如ANSI-C。要记住,面向对象是一种思想,一种方法,不要太拘泥于编程语言。 封装...
  • Python面向对象面向对象基础定义类创建对象添加和获取对象属性魔法方法对象的生命周期私有属性和私有方法面向对象特性封装封装案例演练继承继承的传递性方法的重写父类的私有属性和私有方法多继承新式类与经典类多态...
  • 面向对象的特点和特性说明。并且有代码说明
  • 面向对象的三大特性:封装、继承和多态。这是任何一本面向对象设计的书里都会介绍的,但鲜有讲清楚的,新手看了之后除了记住几个概念外,并没真正了解他们的意义。前几天在youtube上看了Bob大叔讲解的SOLID原则,...
  • JAVA教程 第三讲 Java语言中的面向对象特性

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 441,570
精华内容 176,628
关键字:

面向对象的特性