• Java面向对象编程概述


    一、

    01.软件开发经历周期:

    • 软件分析:分析问题领域,了解客户的需求
    • 软件设计:确定软件的总体结构,把整个软件系统划分为大大小小的多个子系统,设计每个子系统的具体结构
    • 软件编码:用选定的编程语言来编写程序代码,实现在设计阶段勾画出来的软件蓝图
    • 软件测试:测试软件是否能实现特定的功能,以及测试软件的运行性能
    • 软件部署:为用户安装软件系统,帮助用户正确使用软件
    • 软件维护:修复软件中已经存在的Bug,当用户需求发生变化时(增加新的功能,或者修改已有功能的实现方式),修改相应的软件部分

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

    • 可重用性
    • 可扩展性
    • 可维护性

    02.Java语言的特点:面向对象、跨平台、直接支持分布式的网络应用、安全性和健壮性;简单性和高效性

    03.可扩展性(Extensiblity)好

      当软件必须增加新的功能时,能够在现有系统结构(系统由多个子系统构成,以及子系统由更多个更小的子系统组成的结构)的基础上,方便的创建新的子系统,这叫可扩展性好

    二、结构化的软件开发方法简介

      在进行结构化程序编程时,程序的主体是方法,方法是最小的功能模块,每个方法都是具有输入输出的子系统,方法的输入数据来自于方法参数,全局变量和常量,方法的输出数据包括方法返回值,以及指针类型的方法参数。一组相关的方法组合成打的功能模块。

    #include<stdio.h>
    
    /**定义常量*/
    #define circle 1
    #define rectangle 2
    #define line 3
    
    /**画圆模块*/
    void drawCircle(){...}   //省略显示实现细节
    
    /**画长方形模块*/
    void drawRectangle(){...}   //省略显示实现细节
    
    /**画直线模块*/
    void drawLine(){...}   //省略显示实现细节
    
    /**选择形状模块*/
    void drawRectangle(){...}  
        int shape;
        scanf("%d",&shape);      //接收用户输入的形状
        switch(shape){
            case circle:
                drawShape();
                    break;
        case rectangle:
                drawRectangle();
                    break;
        case Line:
                drawLine();
                    break;
               default:
                    printf("输入的形状不存在!")
        }    
    }
    /**程序入口方法*/
    void main(){
                 selectShape();  
    }

    结构化开发弊端:

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

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

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

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

    优点:

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

    ② 系统结构稳定

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

    三、对象模型

    1、自底向上的抽象

    2、自顶向下的分解

    3、UML可视化建模语言

    4、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中用带实线的箭头表示

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

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

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

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

    小结:

  • 相关阅读:
    poj3614 Sunscreen 题解报告
    poj2299 Ultra-QuickSort 题解报告
    poj3784 Running Median 题解报告(对顶堆)
    CH103 Cinema 题解报告
    poj1845 Sumdiv 题解报告
    poj2018 Best Cow Fences 题解报告
    $CF311B Cats Transport$ 斜率优化
    斜率优化入门题:任务安排$123$ : )
    $Poj1821 Fence $单调队列优化$DP$
    《算法竞赛》$0×00$基本算法
  • 原文地址:https://www.cnblogs.com/Zhangmin123/p/5520158.html
Copyright © 2020-2023  润新知