北航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为主,所以相对前三个单元比较简单 ...
随机推荐
- java 多线程Thread和Runnable的区别
如果一个类继承Thread,则不适合资源共享.但是如果实现了Runable接口的话,则很容易的实现资源共享 实现Runnable接口比继承Thread类所具有的优势:1. 适合多个相同的程序代码的线程 ...
- 第05课:GDB 常用命令详解(上)
本课的核心内容如下: run 命令 continue 命令 break 命令 backtrace 与 frame 命令 info break.enable.disable 和 delete 命令 li ...
- python模块--__future__(向上兼容模块)
py2.7 unicode_literals 将字符串默认视为unicode, 即u'xxx'和'xxx'将是一样的, 而再想表示字节需用b'xxx'表示 division / 将表示正常除法操作 ...
- Xilinx约束学习笔记(三)—— 时序概念
3. 时序概念 发现对于时序基础的介绍这一块,Intel 的文档竟然要比 Xilinx 的详细,因此引用了很多 Intel 的文档内容. 3.1 术语 发送沿(launch edge),指用来发送数据 ...
- 一文带你了解.Net读写锁
本文主要讲解.Net基于ReaderWriterLockSlim讲解读写锁 基础概念 读写锁是一个具有特殊用途的线程锁,适用于频繁读取且读取需要一定时间的场景,共享资源的读取操作通常是可以同时执行的, ...
- CodeForce-792B Counting-out Rhyme(模拟)
Counting-out Rhyme CodeForces - 792B 题意: n 个孩子在玩一个游戏. 孩子们站成一圈,按照顺时针顺序分别被标号为 1 到 n.开始游戏时,第一个孩子成为领导. 游 ...
- 自制计算器 v1.1
之前的v1.0版本功能还不够完善,这个版本一并做了修改. 代码,每个sub表示哪个按钮做了注释. Dim a, temp, ans As Integer Dim op As String Sub sh ...
- 如何写出安全又可靠的PHP脚本
前言 咔咔目前所做的项目是一个saas系统,在开发新功能之后,需要为用户角色添加相应的权限,这时整个系统的所有用户都需要添加相应的权限. 因为以前系统的缺陷现在只能用脚本来处理这些工作,所以接下来咔咔 ...
- PHP垃圾回收机制的一些浅薄理解
相信只要入门学习过一点开发的同学都知道,不管任何编程语言,一个变量都会保存在内存中.其实,我们这些开发者就是在来回不停地操纵内存,相应地,我们如果一直增加新的变量,内存就会一直增加,如果没有一个好的机 ...
- Docker系列(8)- 常用其他命令(1) | 日志、元数据、进程的查看
后台启动容器 # 命令 docker run -d 镜像名 [root@localhost ~]# docker run -d centos #问题:docker ps,发现centos停止了 #常见 ...