我眼中的面向对象技术


面向对象技术(Object-Oriented Technology) 看英语的字面翻译似乎是物体面向技术,其实也就是说采用人类在认识客观世界的过程中普遍运用的思维方法、直观自然地用计算机语言来描述客观世界中的有关事务。例如。银行经理、秘书、职员、顾客、账本、打印机这些客观事物就可以直接出现在程序中。

                                       

   在理解面向对象时,首先要了解什么是 、对象  以及二者之间的关系。

    是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内容包括属性和服务两个部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名包括属性说明和服务说明两个主要部分。

   类的定义:

 

class 类名

    ......

}

 

  使用关键字class + 类名+大括号就可以定义出来类的结构了,而大括号中写什么就要根据具体的需求了,例如一个人就是一个对象,如何将这个人介绍给别人

    首先, 你会介绍这个人姓名、性别、年龄、身高、体重、电话、家庭住址等等。

    然后,你要介绍这个人能做什么, 可以开车, 会说英语, 可以使用电脑等等。

    介绍的越详细,别人了解的就越清晰。所有类都是从属性和方法这两方面去写,属性又叫做这个类的成员属性,方法叫做这个类的成员方法。


    对象:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。客观世界是由对象和对象之间的联系组成的。

   类与对象的关系:类的实例化结果就是对象,而对一类对象的抽象就是类.类描述了一组有相同特性(属性)和相同行为(方法)的对象。

   乍一看这些概念真的很难懂,但是联系到生活中,似乎就容易了很多。

   如果将对象比作房子,那么类就是房子的设计图纸,对象就是类的实现。

假如说我们买了自行车,还未组装,那么我们就需要叫专业人士组装,所以你的配置组装单就是一个类,然后工人按照组装单上的信息去完成工作。而组装出来的自行车就是一个对象,也就是类实例化的结果。假如说我们买十个自行车,都是按照一个配置单完成的,那么这十台自行车就是一个类型即一个类,而类的实例化结果就是对象。

 

  理解了类和对象在说说什么是面向对象编程?

  假如说你想建立一个计算机教室,首先要有一个房间,房间内要有多台计算机,多个桌子、椅子等等一些必须的设施,这些就是对象,是一个能看到的实体。而这个电脑教室的单位就是一个实体对象,他们共同组成了这个电脑教室。联系到利用这个技术编程序,开发一个系统程序和建一个机房类似 ,需要我们把独立的功能模块抽象成类形成对象,由多个对象组成这个系统,这些对象之间都能够接收信息、处理数据和向其他对象发送信息等,这也就构成了面向对象。

 

  通过 类和对象去了解面向对象设计,同时面向对象设计还包含自己的特性

  1.抽象性 

  把众多的事物进行归纳、分类是人们在认识客观世界时经常采用的思维方法,“物以类聚,人以群分”就是分类的意思,分类所依据的原则是抽象。抽象(Abstract)就是忽略事物中与当前目标无关的非本质特征,更充分地注意与当前目标有关的本质特征。从而找出事物的共性,并把具有共性的事物划为一类,得到一个抽象的概念。例如,在设计一个学生成绩管理系统的过程中,考察学生张华这个对象时,就只关心他的班级、学号、成绩等,而忽略他的身高、体重等信息。因此,抽象性是对事物的抽象概括描述,实现了客观世界向计算机世界的转化。将客观事物抽象成对象及类是比较难的过程,也是面向对象方法的第一步。

 

  2.封装性

  封装(Encapsulation)就是把对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。

  封装有两个含义:

      一是把对象的全部属性和行为结合在一起,形成一个不可分割的独立单位。对象的属性值(除了公有的属性值)只能由这个对象的行为来读取和修改;

      二是尽可能隐蔽对象的内部细节,对外形成一道屏障,与外部的联系只能通过外部接口实现。

 3. 继承性

 

   继承(Inheritance)是一种联结类与类的层次模型。继承性是指特殊类的对象拥有其一般类的属性和行为。继承意味着“自动地拥有”,即特殊类中不必重新定义已在一般类中定义过的属性和行为,而它却自动地、隐含地拥有其一般类的属性与行为。继承允许和鼓励类的重用,提供了一种明确表述共性的方法。一个特殊类既有自己新定义的属性和行为,又有继承下来的属性和行为。尽管继承下来的属性和行为是隐式的,但无论在概念上还是在实际效果上,都是这个类的属性和行为。当这个特殊类又被它更下层的特殊类继承时,它继承来的和自己定义的属性和行为又被下一层的特殊类继承下去。因此,继承是传递的,体现了大自然中特殊与一般的关系。在软件开发过程中,继承性实现了软件模块的可重用性、独立性,缩短了开发周期,提高了软件开发的效率,同时使软件易于维护和修改。这是因为要修改或增加某一属性或行为,只需在相应的类中进行改动,而它派生的所有类都自动地、隐含地作了相应的改动。

继承是对客观世界的直接反映,通过类的继承,能够实现对问题的深入抽象描述,反映出人类认识问题的发展过程。

 4.多态性

 多态性(Polymorphism)是指类中同一函数名对应多个具有相似功能的不同函数,可以使用相同的调用方式来调用这些具有不同功能的同名函数。

 

 

关于面向对象或是面向过程还有许多需要我去学习,为自己加油!

你可能感兴趣的:(我眼中的面向对象技术)