北航OO第四单元总结
OO最后一次博客作业——好聚好散
一、单元总结
作业一:
第一次是对类图进行解析,没有太大难度,只要根据讨论区提供的建议,新建两个类来存储相关数据即可实现。
作业二:
第二次作业的难度只有量的提升,然而量的提升直接增加了debug的难度,也正是因为bug太多,烤漆又忙,导致最后没能提交。
第二次作业多了状态图和顺序图,存储方式比较类似,大部分地方可以cv。
这次主要还是总结第四单元的体验。

采用的讨论区的建议,搭建了MyOperation和MyClass两个类。
部分截图


第十四次作业(很像章鱼),我没能打赢伟大的战争,因为怂了。

二、关于四个单元的感慨
学面向对象之前,一直不明白面向对象是什么样的课程。学计组之前,也是不明白计组是什么样的课程。计组学完了,好像就只会搭个CPU,还是被时代淘汰的那种,所教的工程化方法还是没有掌握。学完OO,感觉自己同样没能达到老师与助教的期望,我仍然说不出什么是面向对象,只有一个模糊的概念,这代码该这样写,类要高耦合低内聚,代码风格不要丑到引起同事的杀人动机,学会用junit来debug,学会自己写对拍器。至于其他的,大概就只有写代码的能力提升了,思维上似乎还停留在大一那个懵懂的自己 。
一路走来,风风雨雨。
记得预习部分还是简单的a+b,第一单元就开始让我们疯狂操练正则表达式——而老师和助教的目的则是让我们掌握继承多态封装。我是没有继承的,换一次作业重构一次,也没能感受到这些技能的强大之处,直到后两面的单元,才慢慢对这些概念有了全新的认识。
第二单元的多线程让我狠狠地摔了一跤。理论课似乎明白了什么是多线程,却不会在Java里实现,导致作业写得磕磕碰碰。往事不堪回首,体验很差。
第三单元的JML目的是学会使用java建模语言。主要是操练了根据jml写代码,有点像英语的完形填空。难度较之之前有很大的改善。不过后来的作业由于jml过于冗长,都是直接按照作业指导书的要求完成了一个能实现任务的代码,并没有仔细研读jml,可能和老师助教的初衷相悖。
第四单元是uml。Uml建模实在是妙不可言,把抽象的代码轻而易举地转化成形象的图标,让外行也能看懂一二。而我们的作业则是解析uml文件。第一次作业尚能看懂jml解析出来的文件,第二次完全靠讨论区续命。
三、一些建议
1.帮助我们厘清面向对象和Java学习的区别。在默认我们已经掌握Java的前提下用Java学面向对象,不是一举两得,而是两个学得都不精,当然这是针对我们菜鸡来讲的。
2.建议增加迟交窗口,拖延症患者表示不到ddl不会动手,到了ddl发现来不及......(迟交给个及格也是爱啊)。
3.增加助教数量,感觉助教工作量太大,太辛苦了,在日常贴的回复过程中,有不少无效提问,而无效问题很难从学生端解决(假设学生都是懒的)。
北航OO第四单元总结的更多相关文章
- 2020北航OO第四单元总结
2020北航OO第四单元总结 一.本单元架构设计 本单元作业是实现一个UML图解析器,其中实现接口及主要框架课程组已经提供,只需要我们完成特定功能. 在第一次作业时,感到十分迷茫,不知道如何下手,最后 ...
- 北航OO第四单元——UML图解析
北航OO第四单元--UML图解析 作业要求简析 刚接触本次作业可能需要花上一会才能搞清楚到底是要我们写个啥,在这里简单说一下: UML图的保存格式.mdj文件是以json文件的形式存储的,将每一个Um ...
- 2019年北航OO第四单元(UML任务)及学期总结
第四单元两次作业总结 第十三次作业 需求分析 本次作业需要完成一个UML类图解析器,所需要解析的只有符合UML标准和能够在Java 8中复现的UML类图.查询指令存在两种:仅与所查对象有关的指令,以及 ...
- 北航OO第四单元作业总结(4.1~4.3)及课程总结
前言 在学习过JML规格描述语言之后,本单元进行了UML(Unified Modeling Language)的学习.和JML单纯用语言描述的形式不同,UML通过可视化的图形形式,对一系列有关类的元素 ...
- OO第四单元总结暨期末总结
OO第四单元总结暨期末总结 目录 OO第四单元总结暨期末总结 第四单元三次作业架构与迭代 整体感受 HW1 HW2 HW3 四个单元架构设计与方法演进 Unit1 Unit2 Unit3 Unit4 ...
- 2020北航OO第三单元总结
2020北航OO第三单元总结 本单元要求是根据JML规格完善代码,初看是一个简单的代码照搬实现的东西,但最后才发现由于CPU时间的限制,还考察了大量优化策略及数据结构中关于图的知识,是一次非常注重细节 ...
- 2019年北航OO第1单元(表达式求导)总结
2019年北航OO第1单元(表达式求导)总结 1 基于度量的程序结构分析 量化指标及分析 以下是三次作业的量化指标统计: 关于图中指标在这里简要介绍一下: ev(G):基本复杂度,用来衡量程序非结构化 ...
- 【OO学习】OO第四单元作业总结及OO课程总结
[OO学习]OO第四单元作业总结及OO课程总结 第四单元作业架构设计 第十三次作业 第十四次作业 总结 这两次作业架构思路上是一样的. 通过将需要使用的UmlElement,封装成Element的子类 ...
- OO第四单元(UML)单元总结
OO第四单元(UML)单元总结 这是OO课程的第四个单元,也是最后一个单元.这个单元只有两次作业,相比前三个单元少一次作业.而且从内容上讲这个单元的作业目的以了解UML为主,所以相对前三个单元比较简单 ...
随机推荐
- Intel® QAT加速卡之Linux上编程说明
QAT Software for Linux 1. Introduction 该程序员指南提供了有关软件体系结构和使用指南的信息. 相关的英特尔QAT软件库文档中记录了有关使用英特尔QuickAssi ...
- 基于Ubuntu18.04一站式部署(python-mysql-redis-nginx)
基于Ubuntu18.04一站式部署 Python3.6.8的安装 1. 安装依赖 ~$ sudo apt install openssl* zlib* 2. 安装python3.6.8(个人建议从官 ...
- Identity角色管理三(创建角色)
首先创建视图模型 using System.ComponentModel; using System.ComponentModel.DataAnnotations; namespace Shop.Vi ...
- Android线程池使用介绍
本文主要使用kotlin,讨论Android开发中的线程池用法. 我们想使用线程的时候,可以直接创建子线程并启动 Thread { Log.d("rfDev", "rus ...
- 自定义-starter
目录 说明 编写启动器 新建项目测试我们自己写的启动器 分析完毕了源码以及自动装配的过程,可以尝试自定义一个启动器来玩玩! 自动装配的过程 SpringBoot-静态资源加载-源码 SpringBoo ...
- clickonce的密钥到期问题处理
最近clickonce的密钥到期了,在网上找了些文章用来修改密钥的到期时间,已成功生成新密钥,好不好使暂时未测. 在此小结一下,以备参考: 1.在原密钥所属电脑上cmd执行如下命令 renewcert ...
- split文件切片
文件上传下载过程中经常会遇到网络不稳定,或者传输软件限制传输的文件大小之类的问题.在当今换没有出现很好的软件的时候,一个available方法是将大文件切片,也就是 切成小文件,然后通过其他方法put ...
- visual studio下载速度为0解决方法
步骤: 一,更改网络设置 二,cmd刷新dns 一,更改网络设置 1,点开控制面板,打开网络和Internet 2,点击网络和共享中心 3,点击你连接的网络,那个是你连接的WIFI名字 4,点击属性 ...
- PHP中使用if的时候为什么建议将常量放在前面?
在某些框架或者高手写的代码中,我们会发现有不少人喜欢在进行条件判断的时候将常量写在前面,比如: if(1 == $a){ echo 111; } 这样做有什么好处呢?我们假设一个不小心的粗心大意,少写 ...
- 华为云计算IE面试笔记-eBackup有哪几种备份组网方式,各备份组网方式主要的应用场景及备份流程?
应用场景: LAN-Base一般用于备份数据量小,且对备份窗口没有特殊要求的场景,此类场景下备份服务器和备份代理一般是虚拟机部署. LAN-Free一般用于备份数据量较大,且对备份窗口要求比较严格的场 ...