• java面向对象...


    面向对象

    面向对象设计的过程就是抽象的过程,分为3部来完成

    1)发现类

    2)发现类的属性

    3)发现类的方法

    面向对象方法开发概述:!!

    开发经历 的生命周期

    1)软件分析:分析问题领域,了解用户的需求

    2)软件设计:确定软件的总体构架,把整个软件系统划分为大大小小的多个子系统,设计每个子系统的结构

    3)软件编码:用选定的编程语言来编写程序代码,实现在设计阶段勾画出来的软件蓝图

    4)软件测试:测试软件是否能实现特定的功能,以及测试软件的运行性能

    5)软件部署:为用户安装软件系统,帮助软件正确的使用软件

    6)软件维护:修复软件中存在的bug,当用户需求发生变化时(增加新的功能,或者修改已有的功能的实现方式),修改相应的软件部分.

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

    1)可重用性:减少软件中的重复代码.避免重复编程

    2)可扩展性:当软件必须增加新的功能时,能够在现有的系统结构的基础上,方便的创建新的子系统,而不需要改变软件结构现有的结构,也不会影响已经存在的子系统.

    3)可维护性:当用户需求发生变化时,只需要修改局部的子系统的少量程序代码,而不会牵一发动全身,修改软件系统中多个子系统的程序代码.

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

    1)结构稳定性:软件在设计阶段,在把一个系统划分成更小的子系统时,设计合理,使得系统的结构比较健壮,能够适应用户变化的需求

    2)可扩展性:当软件必须增加新功能时,可在现有子系统的基础上创建出新的子系统,该子系统继承了原有子系统的一些特性,并且还有一些新的特性,从而提高软件的可重用性和可扩展性.

    3)内聚性:每个子系统只能完成特定的功能,不同的子系统之间不会有的重叠.为了避免子系统之间功能的重叠,每个子系统的粒度都尽可能要小,按这种方式构成的系统结构被称为精粒度系统结构.子系统的内聚性会提高软件的可重用性和可维护性

    4)可组合性:若干精粒度的子系统经过组合,就变成了大系统.子系统的可组合性会提高软件的可重用性和可维护性,并且能简化软件的开发过程

    5)松耦合:子系统之间的相互独立,修改一个子系统,不会影响到其他的子系统.当用户需求发生变化时,只需要修改特定子系统的实现方式,从而提高软件的可维护性

    1.1结构化软件开发简介(SASD)

          它首先用结构化分析对软件进行需求分析,然后用结构化设计方法进行总体设计,最后进行结构化变成。这种开发方法使得开发步骤明确,SA、SD和SP相辅相成,一气呵成。

          结构化设计是属于自顶向下的设计,无法灵活的适应用户不变变化的需求。

    例:根据客户输入信息来打印图形,若客户需求改变,需要增加一个画某一种图形的功能,那么需要增加一个常量、增加一个方法、增加一个case分支。

          可见,结构化开发制约了软件的可维护性和可扩展性,模块间的松耦合性不高。

    1.2面向对象的软件开发简介

          面向对象的开发方法把软件系统看成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。具有以下几个优点:

          ①把软件系统看成是各种对象的集合

          ②软件需求的变动往往是功能的变动,二功能的执行者——对象一般不会有大的变化。这使得按照对象设计出来的系统结构比较稳定

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

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

    1.2.1对象模型

          在面向对象的分析和设计阶段,致力于建立模拟问题领域的对象模型。建立对象模型既包括自底向上的抽象过程,也包括自顶向下的分解过程。

          1.自底向上的抽象

          在自底向上的抽象过程中,为使自雷能更合理地继承父类的属性和行为,可能需要自顶向下的修改,从而使整个类体系更加合理。由于这种类体系的构造是从具体到抽象,再从抽象到具体,符合人类的思维规律,因此能更快、更方便的完成任务。

          2.自顶向下的分解

           既能有效的控制系统的复杂性,又能同时避免结构化开发方法中功能分解的困难和不确定性。

    1.2.2UML:可视化建模语言

           UML:是一种定义良好、易与表达、功能强大且普遍适用的可视化建模语言。它吸取了诸多流派的优点,而且又进一步的发展,最终成为大众所共同接受的标准建模语言。

    1.2.3Rational Rose:可视化建模工具

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

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

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

    1.万物皆为对象

    2.每个对象都是唯一的

    3.对象具有属性和行为

    4.对象具有状态

    5.对象都属于某个类

    1.3.2类、类型

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

    1.3.3消息、服务

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

    1.3.4接口

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

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

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

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

    1.3.5

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

    两个原则:

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

    2、把所有的属性藏起来

    1.3.6抽象

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

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

    2、从对象到类的抽象

    3、从子类到父类的抽象

    1.3.7继承、扩展、覆盖

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

    注:

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

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

    ① J2EE

    ② Struts

    ③ JSF

    ④ Spring

    1.3.8组合

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

    1.3.9多态、动态绑定

    1.4UML语言简介

    1.5类之间的关系

         关联:类A与类B的实例之间存在特定的对应关系

         依赖:类A访问类B提供的服务

         聚集:类A为整体类,类B为局部类,类A的对象由类B的对象组合而成

         泛化:类A继承类B

         实现:类A实现了B接口

  • 相关阅读:
    建立名称server
    crm操作货币实体
    JavaScript DOM对象和JQuery对象相互转换
    windows 下实现函数打桩:拦截API方式
    ios开发——仿新版iBooks书本打开与关闭动画
    [Hadoop大数据]——Hive数据的导入导出
    《Hive编程指南》—— 读后总结
    《鬼谷子的局6》—— 读后总结
    [Hadoop大数据]——Hive部署入门教程
    CentOS6.5下安装JDK
  • 原文地址:https://www.cnblogs.com/xiaosedefeng/p/5520191.html
Copyright © 2020-2023  润新知