软考(软设师)知识点7-面向对象

面向对象

上午题 7

接口里的方法不实现,需要在实现类来加以实现;而具体的实现类其中的方法必须实现

面向对象&面向过程

  • 面向过程:“我该怎么做?”一步步去实现这个功能
  • 面向对象:“我该让谁去做?”去调用对象的操作来实现这个功能

​ 面向对象=对象+分+继承+通过消息的通信

一个类所包含的方法和数据描述一组对象的共同行为(方法、函数)和属性(状态)

类是在对象之上的抽象;对象是类的具体化,是类的实例;类也存在子类和父类

类分三种:

  • 实体类:现实世界中真实的实体
  • 接口类(边界类):为用户提供一种与系统合作交互的方式
  • 控制类:用来控制活动流,充当协调者

对象

对象=对象名+属性(状态、成员变量)+方法(操作、行为、函数、成员函数)

消息

消息是对象发出的服务请求,一般包含提供服务的对象标识、服务标识、输入信息和应答信息等

方法重载

可建立多个名字相同的方法(函数),满足下列条件即可

  1. 方法名相同,参数个数不同

    1. 方法名相同,参数类型不同
      2. 方法名相同,参数类型顺序不同

封装

一个对象把属性和行为封装为一个整体

目的使对象的使用者和生产者分离

Public class Person{
    //private(权限修饰符)属性只能在当前类的方法里进行访问
    private String name;
    private int age;
    
    //set方法,就近原则————设置值
    public void setName(String name){
        //可加 条件
        this.name=name;
      // 当前.属性=形参
    }
    
    //get方法————获取值
    public String getName(){ // Name是什么属性,便public什么属性
        return name;
    }
    
    //方法
    public void eat(){
        System.out.print(name+"在吃饭中")
    }
}

继承extends

继承是父类(超类)和子类之间共享数据和方法的机制,有“单重继承”和“多重继承”

一个子类可以继承它的父类中非私有化的属性和方法,子类中还可以定义自己的属性和方法,也可重写父类中的方法

多态

不同的对象收到同一消息可以产生完全不同的结果,而实现的细节则由接受对象自行决定——>即 同一消息就可以调用不同的方法(客户类无需知道所调用方法的特定子类的实现)

实例化:父类名 对象名=new 子类名

​ 编译看左 运行看右

多态的形式:

  • 通用的
    • 参数多态:最纯的多态,应用比较广泛的多态
    • 包含多态:子类型化
  • 特定的
    • *过载多态:同一个名字在不同的上下文中所代表的含义不同
    • 强制多态
绑定

绑定是一个把 过程调用 和 响应调用 所需要执行的代码 加以结合的过程,一个给定的过程调用和代码的结合 直到调用发生时才进行

  • 编译时:静态绑定
  • 运行时:动态绑定(根据接受对象的具体情况将请求的操作与实现的方法进行连接,支持多态)

设计原则

  1. 单一责任原则:就一个类而言,应该仅有一个引起它变化的原因
  2. 开放-封闭原则:对扩展开放,对修改关闭
  3. 里氏替换原则:基类(父类)出现的地方,子类一定出现
  4. 依赖倒置原则:依赖于抽象,而不依赖于细节(实现)/ 高层模块不应该依赖于低层模块
  5. 接口分离原则:依赖于抽象,不要依赖于具体
  6. 共同重用原则:重(重新)用了包中的一个类,那么就要重用包中的所有类
  7. 共同封闭原则:一个变化若对一个包产生影响,则将对该包中的所有类产生影响,而对于其他的包不造成任何影响

面向对象分析(OOA)

目的是为了获得对应用 问题的理解,理解的目的是确定系统的功能、性能要求

包含5个活动:

  1. 认定对象 / 确定问题域

定义域(定义问题域) 中,首先将自然存在的**“名词”**作为一个对象,这通常是研究问题、定义域实体的良好开始。实质性对象应包含客户服务、清算等

  1. 组织对象

  2. 描述对象间的相互作用 / 对象间的相互作用

  3. 确定对象的操作 / 基于对象的操作

  4. 定义对象的内部信息

面向对象设计(OOD)

OOD基于面向对象分析(OOA)的结果之上,将OOA所创建的分析模型转化为设计模型(定义系统构造蓝图)

理解解决方案&实现系统的细节

OOD的活动:三识别两定义(复用OOA模型的基础上,包含与OOA对应如下5个活动)

  1. 识别类及对象
  2. 定义属性
  3. 定义服务(操作)
  4. 识别关系
  5. 识别包

面向对象程序设计

选用一种面向对象程序设计语言,采用 对象、类及其相关概念所进行的程序设计

面向对象测试

与其他方法开发的系统测试没有什么不同

面向对象软件的测试分为4个层次:

  1. 算法层
  2. 类层
  3. 模块层
  4. 系统层

分析——>设计——>程序设计——>测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值