你的位置:首页 > Java教程

[Java教程]《疯狂Java讲义》学习笔记——第2章 理解面向对象


面向对象的三种基本特征:继承,封装,多态

UML(统一建模语言)

2.1 面向对象

2.1.1 结构化程序设计简介

 

                                             

                                                                             图2.1  结构化软件的逻辑结构示意图

 

 

 从图2.1可以看出,结构化设计需要采用自顶向下的设计方式,在设计阶段就需要考虑每个模块应该分解成哪些子模块,每个子模块又分解成哪些更小的模块……以此类推,直至将模块细化成一个个函数。

 

2.1.2   程序的三种基本结构

任何简单或者复杂的算法都可以由 顺序结构, 选择结构 ,循环结构 这三种基本结构组合而成。即基本结构。

 

2.1.3  面向对象程序设计简介

采用面向对象方式开发的软件系统,其最小的程序单元是类。这些类可以生成系统中的多个对象,而这些对象则直接映像成客观世界的各种事物。

         

                                          

                                                                     图2.7   面向对象方式开发的软件系统逻辑上的组成结构

从图2.7可以看出,面向对象的软件系统由多个类组成,类代表了客观世界中具有某种特征的一类事物,这类事物往往有一些内部的状态数据,比如人有身高,体重,年龄,爱好等各种状态数据。类徽提供操作这些状态数据的方法,还会为这类事物的行为特征提供相应的实现,这种实现也是方法。因此,可以得到如下的基本等式

                                                                           成员变量(状态数据) +  方法(行为) =  类定义

 

面向对象和面向过程相比粒度要大些,所以面向对象比面向过程更简单,易用。我们来举个例子来阐述他俩之间的关系:

假设需要组装一台电脑,面向对象提供的是主板、CPU、内存条、硬盘等这种大粒度的组件,而面向过程提供的是一些二极管,三极管,集成电路等小粒度的组件。

从思维方式上我们也举个例子来说明他俩的区别:

比如希望完成“猪八戒吃西瓜”这样一件事。

在面向过程的程序世界中,一切以函数为中心,函数最大,因此这件事情会用这样的语句表达:           吃(猪八戒,西瓜);

在面向对象的程序世界中,一切以对象为中心,对象最大,因此这件事情会用这样的语句表达:           猪八戒,吃(西瓜);

对比两条语句不难发现,面向对象的语句更接近自然语言的语法:主语,谓语,宾语一目了然,很直观。

 

2.1.4  面向对象的基本特征

面向对象有三个基本特征:封装、继承、多态。

封装:将对象的实现细节隐藏起来,然后通过一些公用方法来暴露该对象的功能;

继承:当子类继承父类后,子类作为一种特殊的父类,将直接获得父类的属性和方法;

多态:子类对象可以直接赋给父类变量,但运行时依然表现出子类的行为特征,这意味着同一个类型的对象在执行同一个方法时,可能表现出多种行为特征。

 

对象具有标识唯一性,而类是具有共同属性、共同方法的一类事物。类是对象的抽象,对象则是类的实例。

对象间的相互合作需要一个机制协助进行,这样的机制称为“消息”。消息是一个实例与另一个实例之间相互通信的机制。

 

2.2  UML(统一建模语言)介绍————此节是基础知识,完了会单独提出来

 

2.3  Java的面向对象特征

2.3.2   类和对象

Java语言使用class 关键字来定义类,定义类的时候可使用成员变量来描述该类对象的数据,可使用方法来描述该类对象的行为特征。即定义类的同时可确定该类共同特征的属性和行为。