推开面向对象的大门

   我们不止一次提起过“面向对象”,那么究竟什么是面向对象呢?

   面向对象技术,强调在软件开发过程中面向现实世界中的事物,使用人们在生活中的规律或者方法描述事物。

一、基本概念

1.对象(Object)和类(Class)。

    对象,是一个实体。包括状态、行为和标识。状态就是对象的静态信息,行为描述动态信息,标识说白了,就是对象的名字。

    类,是一组具有相同属性、行为、关系和语义的对象的集合。一个类包括属性和方法。属性描述的是类的静态信息,方法描述动态信息。在面向对象中,我们把事物分成一个个类,用属性和方法描述他们。

    对象,比如一棵树,一台电脑,就是具体的实例。

    类,比如动物类,植物类,微生物类等。就是我们平时生活中分类的那个“类”。

    类和对象的关系:一个类是一组对象的计集合,一个对象是一个类的实例。

        2.属性和操作。

        

            属性,描述的是类的静态信息。类实例化,就是描述一个对象,就是给属性赋值。

            操作,是通过方法实现的。我们通过操作去编辑属性的值。

3.接口。 

   接口,比如我们常用到的USB接口。当然此接口非彼接口。我们可以这样理解,我们把U盘插入USB接口,然后电脑识别了。这个接口就是连接电脑和U盘的。同理,接口,就是连接两个事物的一种规范。

   类和接口有什么区别呢?就是类要给出相应的代码实现,而接口,只需要写出方法的签名。

4.组件。

  组件可以是源程序、运行时的动态库,还可以是可执行程序。

5.包。

  包是一个逻辑划分,把代码分为一个个模块。使更有层次。

6.子系统。

  子系统一般是按照功能划分的。

7.关系。

  这个相信大家都很清楚了:关联、依赖、泛化、实现。在上一篇博客中已经详细介绍了。

二、三个特点


1.封装。

   封装,就是把现实事物封装成抽象的类,并且,类可以使用一定的方法设置权限,只让一部分类或者对象对其进行操作。

   封装的定义:隐藏属性,方法,与方法实现细节的过程称为封装。

   (1)隐藏属性方法。比如在VB中,我们通过label.caption访问一个label的caption属性。但是他的属性并不是全部公开的。这就是封装的一种表现。

   我们可以通过访问修饰符(Public、Private等)实现封装。

  

2.继承。

   继承,就是我们平时说的晚辈对父类的继承。不过在这里继承的是属性和方法。

   继承的定义:在一个类的基础上定义一个新类,原有的类叫父类,新生的类叫做子类。继承的过程,就是从一般到特殊的过程。例如,生物可分为三类:动物、植物和微生物。动物、植物和微生物就是生物的子类。

   继承有以下特点:子类拥有父类的属性和方法;子类可以重写父类的属性和方法;子类可以有自己的属性和方法。

   继承的方式有三种:实现继承、接口继承、可视继承。

     实现继承是指使用父类的属性和方法而无需额外编码的能力;

     接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;

     可视继承是指子类使用父类的外观和实现代码的能力。

3.多态。

   首先,我们要理解,没有继承,就没有多态。

   多态,不同对象收到相同信息产生的行为不同也有的说,子类继承父类,然后重写父类的操作,实现了不同的操作。大同小异。例如,狗和鸡收到“叫”的信息,产生的动作,分为鸡鸣和狗吠。

   多态实现的方式有两种:覆盖和重载。

   覆盖是指子类重新定义父类虚函数的做法。虚函数就是在类的继承中可以被改写的函数。

   重载是指允许存在重名函数,但是其参数表不同。

4.作用

   封装可以隐藏实现细节,使得代码模块化。就是封装后,我们可以修改代码模块的内部,而无需修改该类的客户代码。

   继承可以扩展已存在的类,同时简化对事物的描述,实现代码的重用性。

   封装和继承都实现了代码的重用。

   而多态则是实现了另一目的——接口重用。也就是,接口都是一样的,但是操作的方式和结果不同。


   林林总总,写了很多,对于面向对象,我的理解还很浅。不足之处,希望大家指教!

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值