OO第四单元作业

1.作业的架构设计
(1)对于第一次作业中,要求我们实现关于类图的查询指令。
在这次作业中,主要采用的储存方法是哈希表。
在查询方法上,大多数要求诸如共有多少类等,利用哈希表进行查询即可。
比较困难的一些指令在于,顶级父类以及类的全部接口这两个。这两个涉及到的更多在于图的遍历问题,所以笔者采取的方式是递归遍历方式。
(2)对于第二次作业中,在继承了类图的查询指令之外,还增添了关于顺序图和状态图的概念,以及三条规则的要求。
在储存信息方面依旧采用的是哈希表,第二次作业和第一次作业的区别最大就在于是遍历上了。第一次作业可以不采用递归,利用循环也能做,第二次作业就是较为纯粹的图的遍历,我用的方法是深度优先遍历的方式。
1616468-20190624204500019-472933976.png

2.四个单元中的架构设计及OO方法的理解演进
(1)第一个单元,基本上架构没有什么特别深入的理解。作为新上手java的小白,第一感觉是java能够提供的函数或者是方法容器比C多了很多,所以在写第一单元的作业时,基本上都是在用C的思维来写的。事实上是第一单元的作业在第三次作业的时候如果采用类的思维来写得话,整体的速度会快很多
(2)第二个单元,多线程电梯问题。从迈入第二单元后,发现的问题就是,我用C写不出多线程(可能是可以的,只是我比较菜)。所以就开始比较困难的学习多线程的知识,在网上找类似的问题,去研究代码,最后在架构上,就开始利用一次一次作业的继承,稍微修改一下就好很多。
(3)第三个单元,规格设计。规格设计,是我三个单元作业中完成最好的一次。在规格作业中,除了研究好的架构,受到CPU时间的限制,就开始研究程序的性能,会不会出现爆掉的情况,这个时候,我觉得就有点学到一点好的架构的感觉。
(4)第四单元,具体的感觉和第三单元差不多,但是难度会更高一点。

3.测试理解和实践的演进
在第一单元中,由于之前的习惯,就比较喜欢用数据去测程序,但然后自己感觉差不多了,就交测评机了,但事实是,测评机的错误有时候是隐藏的数据,如果找不出那个类似的数据错误,就很奔溃。
在第二单元同上。
在第三单元中,因为引入了规格,在理解上就更好了,所以有了一个比较好的理解,构思程序起来就显得比较清楚了,整体去测的时候也没有数据的问题。在这一单元中,影响最大的是对于程序的性能方面,也就是程序的CPU时间和测评时间。
第四单元同上。
4.课程收获
对于OO而言,其实算是学会了关于java上的一些方法,包括多线程,以及java的一些容器。也能够看到很多大佬写程序时候就很严谨,但其实对于我这种新手玩家来讲,也不是说不想写的严谨,就是确实是心有余而力不足,不过能够初步的了解java,已经算是很大的收获了。
5.建议
(1)以后能不能把实验课不要放在单周下午啊,感觉就是上午上完,下午就得现场写,就freestyle的感觉。
(2)关于互测这个问题,说实话讲,两天的时间去读同房间人的代码,能够读1个就很不错了,毕竟你系大二下不只是OO,一周下来也就只有周三周四能休息了,如果愿意牺牲这个时间去找的话,也没什么话讲,今年感觉也不是很狼,但就是,可能会有种不舒服的感觉吧,帮同学找bug,让自己加分,然后让同学看着成堆的bug哭,也不太好。

转载于:https://www.cnblogs.com/pikaqiu-orange/p/11079248.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/448623.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

伤钱伤感情 10件不能和亲戚一起干的事儿

关于亲戚和理财,网友小盒总结了下十大别和亲戚干的事儿,干了之后保管既伤钱又伤感情: 1、别帮亲戚炒股 赚了觉得你赚得不如以前吹的那么多,赔了就剩翻脸了,搭时间搭功夫还不落好。 2、别和亲戚一起做生意 道理同…

李洋疯狂C语言之选择排序

选择排序法 原理: 选择法循环过程与冒泡法一致,它还定义了记号mini,然后依次把a[min]同后面的元素比较,若a[min]>a[j],则使kj. 最后看看ki是否还成立,不成立则交换a[k], a[i],这样就比冒泡法省下许多无用的交换&a…

利用 git 提交代码、git 简单使用(拉取、推送、分支、合并)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1.安装 git sudo apt-get install git 2.查看版本: git --version 我的版本信息: 3. 配置用户名和邮箱 : …

如何在android studio中设置sdk path?

为什么80%的码农都做不了架构师?>>> Press F4 into Project StructureLeft > SDKsPress , add another sdk转载于:https://my.oschina.net/itfanr/blog/195714

面试题之第一部分(Python基础篇) 80题

第一部分(python基础篇)80题 为什么学习Python?* # 1. python应用于很多领域,比如后端,前端,爬虫,机器学习(人工智能)等方面,几乎能涵盖各个开发语言的领域&a…

OpenCL的安装与配置

Windows 步骤 1:在 http://developer.amd.com/pages/default.aspx根据相应的操作系统,下载最新的 AMD driver, AMD APP SDK。AMD APP SDK目前支持Windows VISTA[32][64]bit,Windows 7[32][64]bit操作系统。 步骤 2:如果已经安装了…

解决:java.lang.IllegalStateException: ApplicationEventMulticaster not initialized

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. springboot 项目启动时报错: java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call …

李洋疯狂C语言之求素数的方法

今天课上李洋老师讲到求素数时,讲了一种新的方法,一开始听得我一脸懵逼,但当我理解的时候,眼前一亮,老师的算法省去了不少步骤,话不多说,附上题目:求100到200之间的素数。 输入&…

面试官问我:平常如何对你的 Java 程序进行调优?

阅读本文大概需要 10 分钟。作者:张俊城, 郭理勇, 刘建来源:http://t.cn/AiCTERJzJava 应用性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢、接口超时,服务器负载高、并发数低,数据库频繁死锁等。尤其是在“…

c语言—变量

变量 存储类型auto register static extern 变量在内存空间中的首地址&#xff0c;称为变量的地址。 变量的定义形式&#xff1a;<存储类型> <数据类型> <变量名> 存储类型&#xff1a;auto register static extern auto (不写默认是auto)局部变量auto 变量的…

李洋疯狂C语言之关于自增自减遇到的一些问题

今天讲到自增的时候&#xff0c;遇到个难点&#xff0c;单个的自增自减运算还是挺简单的&#xff0c;但是如果是多个自增自减&#xff0c;就会变得比较麻烦&#xff0c;在windows环境和Linux环境中也会得到不一样的结果&#xff0c;windows中比较简单&#xff0c;他会将所有前缀…

Servlet的入门

什么是Servlet? Servlet是运行在服务端的java小程序,是sun公司提供的一套规范,用来处理客户端请求.响应给浏览器的动态资源.Servlet是JavaWeb三大组件之一(Setvlet.Filter.Listener),且最重要. Servlet的作用? 用来处理从客户端发送过来的请求,并对该请求做出响应. Servlet的…

快速部署ldap服务

快速部署ldap服务 作者&#xff1a;尹正杰 版权声明&#xff1a;原创作品&#xff0c;谢绝转载&#xff01;否则将追究法律责任。 一.LDAP概述 1.什么是目录服务(1)目录是一类为了浏览和搜索数据二十几的特殊的数据库&#xff0c;例如&#xff1a;最知名的的微软公司的活动目录…

expected at least 1 bean which qualifies as autowire candidate. Dependency a...

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 启动 sringboot 项目报错&#xff1a; expected at least 1 bean which qualifies as autowire candidate for this dependency. 原因…

李洋疯狂C语言之break和continue的区别

1、break (1) 只能在循环体内和switch语句体内使用break语句。 (2) 当break出现在循环体中的switch语句体内时&#xff0c;其作用只是跳出该switch语句体。 (3) 当break出现在循环体中&#xff0c;但并不在switch语句体内时&#xff0c;则在执行break后&#xff0c;跳出本层…

Install OpenCL on Debian, Ubuntu and Mint orderly

Libraries – can’t have enough If you read different types of manuals how to compile OpenCL software on Linux, then you can get dizzy of all the LD-parameters. Also when installing the SDKs from AMD, Intel and NVIDIA, you get different locations for libra…

linux7 配置mysql5.7字符集编码

linux 安装后 mysql5.7 字符集默认是拉丁&#xff0c;不能存储中文&#xff0c;修改步骤如下&#xff1a; 在 vim /etc/mysql/my.cnf 修改配置文件 在[mysqld] 下添加如下配置 character-set-serverutf8 init_connectSET NAMES utf8 重启mysql服务 systemctl restart mysqld.…

解决:java.io.IOException: invalid constant type: 15

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 启动 dubbo 服务报错&#xff1a; java.io.IOException: invalid constant type: 15 我的情况是项目本身 是用的1.7 。而我自己用的…

liunx常用命令笔记

安装软件教程 linux安装java&#xff1a;https://www.cnblogs.com/lamp01/p/8932740.html linux安装mysql&#xff1a;https://www.cnblogs.com/daemon-/p/9009360.html linux安装redis&#xff1a;https://blog.csdn.net/qq_30764991/article/details/81564652 linux安装nginx…

李洋疯狂C语言之编程实现统计某年某月份的天数

今天的题目&#xff1a;编程实现统计某年某月的天数 例如&#xff1a; 输入&#xff1a;2017.7 输出&#xff1a;31天 先附上我自己想的方法&#xff0c;由于几个功能放一起太繁琐&#xff0c;于是我想把他们分为三个函数&#xff0c;分别来实现这个功能&#xff1a; #incl…