软考中级软件设计师专项-面向对象篇

本文涉及的产品
多模态交互后付费免费试用,全链路、全Agent
简介: 软件设计师考试中,面向对象是核心考点,涵盖类与对象、继承、封装、多态等概念,重点考查UML建模、设计模式及SOLID原则,强调高内聚低耦合与实际应用能力。

简介:

软件设计师考试中,面向对象模块为核心考点,涵盖类与对象、继承、封装、多态等基础概念,重点考查UML建模(类图/时序图/用例图)、设计模式(如工厂、单例模式)及SOLID设计原则。要求考生掌握对象间协作机制,具备需求分析、系统建模能力,并能通过高内聚低耦合设计解决实际问题,强调面向对象思想在软件工程中的实践应用。

一、面向对象和面向过程的区别

  1. 例如:把大象装入冰箱,需要多少步:
  1. 面向过程

  1. 面向对象

二、面向对象的基本概念

  1. 面向对象= 对象+分类+继承+通过消息的通信

(一)、类

  1. 类是对想的抽象,对象是类的实例
  2. 类包含的方法和数据描述一组对象的共同行为和属性
  1. 方法:对应 行为
  2. 数据:对应 属性
public class Person{
    String name;
    String sex;
    void play(){
        // 具体行为
    }
}
  1. 分类
  1. 实体类:关键字(人、物)
  1. 例如:书本、课桌
  1. 接口类(边界类):关键字(媒介)
  1. 为用户提供一种系统合作交互的方式
  1. 例如:人的接口可以是web窗体、菜单、条形码
  1. 系统接口涉及把数据发送到其他系统
  1. 控制类:关键字(协调)
  1. 解释:控制类用来控制活动流,充当协调者
  1. 一般和特殊关系
  1. 一般表示父类或基类
  2. 特殊表示子类或派生类
  1. 例题:

(二)、对象

扩展:

行为的别名:方法、函数

属性的别名:状态

  1. 对象的组成:属性+对象名+方法
// 为一个person类创建一个对象
public class test{
    class Person {
        
    }
    public static void main(String args[]){
        Person p= new Person();
    }
}

(三)、消息

  1. 理解:给这个对象发消息,包含外界的消息
  2. 例如:一个类中有eat方法,
public class test{
   
    public static void main(String args[]){
        Person p= new Person();
        p.eat("汉堡"); // 发送消息
    }
}
  1. 例题:

二、方法重载

前提:方法名相同

  1. 方法重载分为三中情况
  1. 参数个数不同
  2. 参数类型不同
  3. 参数类型顺序不同

三、封装

  1. 记:对象是封装一组属性和行为的整体
  2. 属性私有化,对外提供set和get方法
  3. 方法私有化,使用private关键字修饰
  4. 例如
class Person{
    String name;
    public void setName(String name){
        this.name=name;
    }
    public String getName(){
        return this.name;
    }
    private void fun(){
        // 私有方法
    }
}

四、继承

关键字:extends

注意:私有属性不可背继承

  1. 继承是父类和子类之间共享数据和方法的机制
  2. 单重继承:一个子类继承一个父类
  3. 多重继承:一个子类继承多个父类
  4. 例题:

五、多态

编译:父类

运行:子类

  1. 不同的对象收到同一消息可以产生不同的结果

例如

public class test(){
    class Person{}
    class Student extends Person{}
    public static void main(String[] args){
        Person stu = Student();
    }
}
  1. 多态分类:

  1. 通用:
  1. 参数多态:
  1. 特征:是应用比较广泛的多态,被称为最纯的多态
  1. 包含多态:
  1. 特征:一个类型是另一个类型的子类型
  1. 特定:
  1. 过载多态:
  1. 重载方法
  1. 强制多态:
  1. 特征:强制类型转换
  1. 例题:

  1. 动态绑定和静态绑定

多态在编译时 是静态绑定

多态在运行时 是动态绑定

六、面向对象设计原则

原则:

  1. 单一原则:对一个类来说,只有一个引起它变化的原因
  2. 开放-封闭原则:对扩展开放,对修改封闭
  3. 里式替换原则:基类出现的地方,子类一定也可以出现
  4. 依赖倒置原则:依赖抽象,不依赖细节/实现
  5. 接口分类原则:依赖抽象,不依赖具体
  6. 共同重用原则:重用包中的一个类,就要重用包左手拿个的所有类
  7. 共同封闭原则:一个变化对一个包产生影响,则对包中的所有类都产生影响
  8. 无环依赖原则:包的结构是一个五环图形

例题:

七、面向对象分析(OOA)

分析的目的:确定系统的功能、性能要求

包含5个活动

  1. 认定对象:定义问题,名词转为一个对象
  1. 例如:银行系统中的实质性对象:客户账务、清算。
  1. 组织对象:
  2. 描述对象间的相互作用:
  3. 确定对象的操作:
  4. 定义对象的内部信息:

八、面向对象设计(OOD)

  1. 将OOA锁创建的分析模型转为设计模型
  2. 目的:定义系统构造蓝图
  3. 5个活动
  4. 识别类及对象
  5. 定义属性
  6. 定义服务
  7. 识别关系
  8. 识别包

例题:

九、面向对象设程序设计(OOP)

十、面向对象测试

  1. 面向对象的综合测试是有底向上的测试
  2. 分为四个层次
  3. 算法层
  4. 类层
  5. 模板层
  6. 系统层

十一、扩展

  1. 一个类要实现一个接口,需要把该接口的所有方法都重写
  2. UML图基本图形
  1. 实现

  1. 继承

  1. 斜体字为:抽象类
  2. 正体字为:类:可被实例化

十二、杂题

目录
相关文章
|
2月前
|
存储 机器学习/深度学习 人工智能
软考中级软件设计师专项-数据结构与算法上篇
软件设计师考试数据结构模块涵盖数组、链表、栈、队列、树、图等基础结构及其操作,重点考查二分查找、快排与归并排序、树/图的DFS/BFS遍历算法,要求掌握时间与空间复杂度分析,理解哈希、堆的应用场景,强调通过合理选择数据结构优化程序性能,解决存储管理与计算效率问题,为系统设计奠定核心逻辑基础。
387 1
软考中级软件设计师专项-数据结构与算法上篇
|
2月前
|
设计模式 算法 Java
软考中级软件设计师专项-设计模式篇
备战软考中级软件设计师?本文聚焦高分设计模式模块,详解23种模式的核心意图与场景,结合UML图、Java代码实例及历年真题,覆盖创建型、结构型、行为型三大类,助你打通理论到实战。
192 1
软考中级软件设计师专项-设计模式篇
|
2月前
|
测试技术 数据库 uml
软考中级软件设计师专项-UML图篇
UML(统一建模语言)是一种用于软件系统建模的标准化语言,能够清晰表达系统的静态结构与动态行为。其核心包括三类构造块:事物、关系和图。事物分为结构事物、行为事物、分组事物和注释事物;关系包括依赖、关联、泛化和实现;图则涵盖了类图、对象图、用例图、序列图、通信图、状态图、活动图、构件图和部署图等,分别用于静态建模、动态建模和物理建模。
271 1
软考中级软件设计师专项-UML图篇
|
2月前
|
安全 网络协议 网络安全
软考中级软件设计师专项-网络安全篇
本文介绍了网络安全核心技术,包括防火墙技术(包过滤、应用代理、状态检测)、病毒类型(蠕虫、木马、宏病毒)及特征、常见网络攻击手段,并涵盖SSL/TLS、HTTPS、IPSec等安全协议,结合实例解析防护机制与应用。
177 1
软考中级软件设计师专项-网络安全篇
|
2月前
|
存储 算法 定位技术
软考中级软件设计师专项-操作系统篇
专为软考打造的操作系统终极攻略,涵盖进程管理、死锁、存储系统等核心考点,结合20+真题与答题模板,助你高效掌握命题规律,提升应试能力。
177 1
软考中级软件设计师专项-操作系统篇
|
2月前
|
敏捷开发 算法 测试技术
软考中级软件设计师专项-软件工程专题上篇
本篇章精讲软考中级软件设计师“软件工程”核心内容,涵盖CMM/CMMI成熟度模型、瀑布/螺旋/敏捷等开发模型、系统测试与维护策略及McCabe复杂度等考点,结合例题解析,助力构建全生命周期知识体系,精准突破考试重难点。
161 1
软考中级软件设计师专项-软件工程专题上篇
|
2月前
|
缓存 监控 Java
SpringBoot @Scheduled 注解详解
使用`@Scheduled`注解实现方法周期性执行,支持固定间隔、延迟或Cron表达式触发,基于Spring Task,适用于日志清理、数据同步等定时任务场景。需启用`@EnableScheduling`,注意线程阻塞与分布式重复问题,推荐结合`@Async`异步处理,提升任务调度效率。
432 128
|
2月前
|
存储 缓存 算法
软考通关密钥:计算机系统核心原理全解剖——软件设计师必懂的底层逻辑
专为软考中级软件设计师打造,深入解析CPU架构、存储体系、进制转换、原码补码、浮点数、寻址方式、校验码、RISC/CISC、流水线、Cache、中断、I/O控制、总线及加密技术等核心知识点,结合真题剖析高频考点,构建计算机系统底层知识体系,提升应试与实践能力。
224 1
软考通关密钥:计算机系统核心原理全解剖——软件设计师必懂的底层逻辑
|
2月前
|
人工智能 Ubuntu 固态存储
《2核2G阿里云神操作!Ubuntu+Ollama低成本部署Deepseek模型实战》
本文详解如何在阿里云2核2G轻量服务器上,通过Ubuntu系统与Ollama框架部署Deepseek-R1-Distill-Qwen-1.5B大模型。涵盖环境搭建、Ollama安装、虚拟内存配置及模型运行全流程,助力开发者以极低成本实现AI模型云端运行。
507 1
《2核2G阿里云神操作!Ubuntu+Ollama低成本部署Deepseek模型实战》
|
2月前
|
SQL 存储 JavaScript
软考中级软件设计师专项-数据库篇
本资料涵盖数据库核心概念,包括结构数据模型(层次、网状、关系模型)、三级模式结构(概念模式、外模式、内模式)、关系模型术语与完整性约束(实体、参照完整性)、笛卡尔积及关系代数操作(投影、选择、连接)、SQL语言基础与查询优化、关系模式规范化(范式1NF、2NF、3NF、BCNF)、E-R图设计与数据库设计流程、事务管理(ACID特性)、并发控制与分布式数据库等内容,适合数据库学习与考试复习。
164 1
软考中级软件设计师专项-数据库篇