Java面向对象编程


面向对象的软件开发:

面向对象的开发把软件系统看成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成复杂的子系统。

面向对象的开发方法具有以下优点:

1.把软件系统看成是各种对象的集合,更接近人类自然思维方式。

2.软件需求的变动往往都是功能的变动,而功能的执行者---对象一般不会有大的变化,按照对象设计出来的结构比较稳定。

3.对象包括属性(数据)和行为(方法),对象把数据及方法的具体实现方式一起封装起来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性,从而提高了软件的可维护性。

4.支持封装,抽象,继承和多态,提高了软件的可重用性,可维护性和可扩展性。


 

软件开发经历的生命周期:

 

①软件分析 ②软件设计 ③软件编码 ④ 软件测试 ⑤ 软件部署 ⑥软件维护 

 

为了提高软件开发效率,降低软件开发成本,一个优良的软件系统应该具备以下特点:

 

① 可重用性 ② 可扩展性 ③ 可维护性

 

系统结构是指系统由多个子系统组成,以及子系统由多个更小的子系统组成的结构

 

软件中的子系统具有以下特点:

 

① 结构稳定性 ②可扩展性 ③内聚性 ④可组合性 ⑤松耦性

 

目前在软件开发领域有两种主流的开发方法:结构化开发和面向对象开发

 

1、结构化开发是一种比较传统的开发方法,随着软件开发的逐步发展,面向对象的编程语言以及面向对象的设计理论应运而生,Java语言就是一种纯面向对象的编程语言

 

结构化开发简介:

 

 

 

 

结构化设计是属于自顶向下的设计。在进行结构化编程时,程序的主体是方法,方法是最小的功能模块。

 

举例说明结构化开发过程,图1-4显示了一个按照功能划分的画板panel系统的结构。

 

包括4个功能模块:选择形状模块、画长方形模块、画圆模块和画直线模块。图1-5为选择形状模块的数据流图

 

 

结构化开发弊端:

 

①自顶向下地按照功能来划分软件模块

 

②软件系统中最小的子系统是方法

 

2、面向对象软件开发方法简介

 

把软件系统看成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。

 

优点:

 

① 把软件系统看成是各种对象的集合,更接近人类的自然思维方式

 

② 系统结构稳定

 

③ 提高软件的可维护性、可重用性、可扩展性

 

对象模型

 

1、自底向上的抽象

 

 

2、自顶向下的分解

 

 

UML可视化建模语言

 

 

Rational Rose 可视化建模工具

 

 

面向对象开发中的核心思想和概念

 

问题领域、对象、属性、状态、行为、方法、实现

 

对象是对问题领域中事物的抽象。对象特征:

 

1.万物皆为对象

 

2.每个对象都是唯一的

 

3.对象具有属性和行为

 

4.对象具有状态

 

5.对象都属于某个类

 

类、类型

 

类是一组具有相同属性和行为的对象的抽象。类及类的关系构成了对象模型的主要内容

 

消息、服务

 

每个对象都具有特定的功能,相对于其他对象而言,它的功能就是为其他对象提供的服务。例如电视机具有的功能包括:开机、关机、选择频道、调节音量和播放VCD等。遥控器为了获得电视机的服务,需要向电视机提出获得特定服务的请求,提出请求的过程被称为发送消息

 

 

接口

 

在现实世界中,接口也是实体,比如电源插口、洗衣机上的按钮和电灯的开关。而在面向对象范畴中,接口是一个抽象的概念,是指系统对外提供的所有服务。

 

在Java语言中,接口有两种意思:

 

1、指系统对外提供的所有服务,在对象中表现为public类型的方法的声明

 

2、指用interface关键字定义的实实在在的接口,也称为接口类型。用于描述系统对外提供的所有服务,更加清晰地把系统的实现细节与接口分离

 

封装、透明

 

封装是指隐藏对象的属性和实现细节。

 

两个原则:

 

1、把尽可能多的东西藏起来,对外提供简捷的接口

 

2、把所有的属性藏起来

 

抽象

 

抽象是一种由具体到抽象、由复杂到简洁的思维方式。在面向对象的开发过程中,抽象体现在以下方面

 

1、从问题领域的事物到软件模型中对象的抽象

 

2、从对象到类的抽象

 

3、从子类到父类的抽象

 

继承、扩展、覆盖

 

在父类和子类之间同时存在着继承和扩展关系。子类继承了父类的属性和方法,同时,子类中还可以扩展出新的属性和方法,并且还可以覆盖父类中方法的实现方式。覆盖也是专业术语,是指在子类中重新实现父类中的方法。

 

注:

 

子类只能继承父类的部分属性和方法,父类中用private修饰的属性和方法对子类是透明的。

 

目前在Java领域比较流行的架构软件包括:

 

① J2EE

 

② Struts

 

③ JSF

 

④ Spring

 

组合

 

组合是一种用多个简单子系统来组装出复杂系统的有效手段。个人计算机系统就是一个典型的组合系统。它由主机、键盘、鼠标、显示器、和外围设备打印机等组成。而主机由处理器、内存、一个或多个硬盘、显卡、网卡和声卡等组成。

 

多态、动态绑定

 

 

UML语言简介

 

 

类之间的关系

 

 

关联、依赖、聚集、泛化、实现

 

关联:指的是类之间的特定对应关系,在UML中用带实线的箭头表示

 

依赖:指的是类之间的调用关系

 

聚集:指的是整体与部分之间的关系

 

泛化:指的是类之间的继承关系

 

实现:指的是类与接口之间的关系

 

小结:

 

 

    没有不进步的人生,只有不进取的人 !!!

posted @ 2016-05-23 14:54  Beyondづ  阅读(150)  评论(0编辑  收藏  举报