一、OOP概念

来源:互联网 发布:南山空同 知乎 编辑:程序博客网 时间:2024/05/01 20:28

OOP基本概念

对象

软件的对象是自然对象的抽象表示,软件就是逼真的表达自然界的实际景象,于是人们心中构思的软件和眼中所见到的世界是一致的。软件是自然界实况的抽象,在编写软件程序时候,世界万物皆是对象。

每个对象之间是有特征的,比如鸟有翅膀、会飞而狗有4条腿,会叫等。

对象特点

----对象的特这或属性

----对象的行为

软件中的对象是由数据(Data)和函数(Function)组成。

对象的类别

俗话说:物以类聚。说明了物和类别的关系,相似的对象常常归于一类。例如:某人是一个对象(is a),而人类就是类别。善于利用类别把对象归类,并且组织起来,是面对对象软件开发的重要技术。


类别是一群共同特性的对象,类别定义就是说明这群对象具有什么重要特性。特性包括对象的特征及行为,软件中的对象以数据来表达特征,以函数来表达行为。


类别的目的是创造新数据型态。在java语言中int、double、char等是基本数据型态。而类别创造出来的数据型态称为“抽象数据型态”,由基本数据型态定义的变量也称为变量,由类别定义的变量称为对象。


Java类别定义为

class Bird{ //...}

创建对象如下

Bird bird=new Bird();

在上述代码中,brid叫引用,相当与一个人的名字,可以在函数间相互传递。而new是一个运算符号,用来创建对象。用new来产生新对象,用bird来引用这个对象。


在软件设计中,通常先决定类别,并且弄清楚类别之间的关系。类别的关系有:“父子关系”和“整天与部分关系”。


父子关系

在自然界中,动物是一种生物,(a kind of),而植物也是一种生物,即动物和植物都是一种生物,此时就可以说动物和植物是生物的子类(sub-class),而生物则是动植物的父类(super-class)。这种父子类别关系是软件中的组织相关对象的重要手段。

日常生活中,父子类别是很常见的关系,又成为继承关系。如图


举个android中的View类别体系:


在Java中描述继承关系用关键字extends:

class Person{      //...}class Student extends Person{}class Teacher extends Person {}
关键字extends后面是父类,前面是子类。子类继承父类的所有特征(属性)和函数;

整体与部分关系

另一个常见的类别关系就是整体与部分关系(whole-part),例如一辆汽车有1个引擎和4个轮胎,如图:


在软件设计中,也常常依照这种结构来组织类别及对象。整体与部分关系也叫聚合关系。

举个android中的View类别体系,典型的聚合关系:










0 0