热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

20172325学号201720182《程序设计与数据结构》实验二报告

20172325学号201720182《程序设计与数据结构》实验二报告课程:《程序设计与数据结构》班级:1723姓名:邓煜坤学号:20172325实验教师:王志强实验日期:2018

20172325 学号 2017-2018-2 《程序设计与数据结构》实验二报告
课程:《程序设计与数据结构》
班级: 1723
姓名: 邓煜坤
学号:20172325
实验教师:王志强
实验日期:2018年4月23日
必修/选修: 必修

1.实验内容

  • 1.初步掌握单元测试和TDD

  • 2.理解并掌握面向对象三要素:封装、继承、多态

  • 3.初步掌握UML建模

  • 4.熟悉S.O.L.I.D原则

  • 5.了解设计模式

  • 6完成蓝墨云上 (1)-(5)实验。


2. 实验过程及结果

实验一:



  • 做实验一的时候是按照老师博客做出来的,在过程上很顺利
    技术分享图片

    代码链接



实验二:



  • 实验二按照教程来也很顺利,对TDD的理解也有所帮助
    技术分享图片

    代码链接



实验三:



  • 实验三的内容是对设计用例进行扩充,按照学号除6的余数进行,从中体会OCP,DIP模式。总的来说,做下来以后主要是内容比较繁琐,要注重很多细节,一个地方错了就会一直不能运行,但是IDEA能够在错误的地方给出提示真的很方便,点赞。

  • 那么这两个是什么知识呢?

  • OCP为Open-Closed Principle,开放-封闭原则技术分享图片
    我的浅显理解是使子类能在一定的限制下更方便的继承父类,这就体现出了抽象的重要性;

  • DIP为Dependency Inversion Principle,依赖倒置原则技术分享图片
    通过这张图已经很好的解释DIP的定义和好处。下面是我的实验三成果和码云连接。技术分享图片

    代码链接



实验四:



  • 在实验四的实践过程中费了很大的劲,主要是在测试类的理解和运用上面,在整个过程中我进行了很多不必要的步骤,使简单的事变得麻烦,但是随着反反复复的修改和讨论,最后在磕磕绊绊中也算勉强成功了,但是加深了我对TDD的理解,就是集中注意力在测试的点,把握好每一个类的继承与修改。技术分享图片
    技术分享图片

    代码链接



实验五:



  • 实验五主要是学会画一个类图,也就是UML图,这种图在教材上有很多,现在也学着自己构建,觉得很有趣。看起来这只是一个画图工具而已,但是他反映出来的却是编程里的核心思想,在编一个程序之前,我们需要对整个过程有一个宏观的把握,之后是对细节的掌控,而UML类图就能够引导我们一步一步分析编程的思路。所以在具体实践之前先构建UML类图能够很好地帮助我们理清思路并且清晰的解析各个过程。技术分享图片


3. 实验过程中遇到的问题和解决过程

? 问题1:才开始接触用Junit测试一个类,不清楚他的原理,所以在编写几个测试类的时候把他分开建了三四个测试类,感觉不仅冗杂,还得一个一个编写,觉得意义不大,帮了倒忙。技术分享图片
? 问题1解决方案:之后弄懂了他的运行原理,在一个测试类里面可以同时进行不同反面问题的测试,而且它能够自己检测测试点,测试结束后哪个点又问题一目了然,就开始发现了它的优点。技术分享图片

? 问题2:在进行试验三的时候,在Double类下面却输出了整型数。技术分享图片
? 问题2解决方案:把各个声明数据类型的地方逐一修改进行尝试,最后发现关键的一步,做了修改,能够正确的输出想要的数据类型。
技术分享图片

3.感悟

  • 这次的实验一下来五个,真的感觉压力挺大的,接受的知识点也很多,但是在一点点啃下来以后的那种释然也很妙。总的来说学到了蛮多的东西,对IDEA的运用也更加熟练了,接下来继续加油吧。

参考资料
?实验二《Java面向对象程序设计》的一点说明
?实验二 Java面向对象程序设计
?Intellj IDEA 简易教程


推荐阅读
  • 将解压缩版Tomcat集成至系统服务
    将解压缩版Tomcat集成至系统服务的方法如下:首先,在命令行中导航至Tomcat的`bin`目录,运行`service.bat install`命令以安装服务。需要注意的是,服务名称和显示名称已在`service.bat`脚本中预设,默认情况下会随不同版本有所变化。此外,建议检查并配置相关参数,确保服务能够稳定运行。 ... [详细]
  • 资源管理器的基础架构包括三个核心组件:1)资源池,用于将CPU和内存等资源分配给不同的容器;2)负载组,负责承载任务并将其分配到相应的资源池;3)分类函数,用于将不同的会话映射到合适的负载组。该系统提供了两种主要的资源管理策略。 ... [详细]
  • 本文深入解析了Java面向对象编程的核心概念及其应用,重点探讨了面向对象的三大特性:封装、继承和多态。封装确保了数据的安全性和代码的可维护性;继承支持代码的重用和扩展;多态则增强了程序的灵活性和可扩展性。通过具体示例,文章详细阐述了这些特性在实际开发中的应用和优势。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • 单链表的高效遍历及性能优化策略
    本文探讨了单链表的高效遍历方法及其性能优化策略。在单链表的数据结构中,插入操作的时间复杂度为O(n),而遍历操作的时间复杂度为O(n^2)。通过在 `LinkList.h` 和 `main.cpp` 文件中对单链表进行封装,我们实现了创建和销毁功能的优化,提高了单链表的使用效率。此外,文章还介绍了几种常见的优化技术,如缓存节点指针和批量处理,以进一步提升遍历性能。 ... [详细]
  • 初探性能优化:入门指南与实践技巧
    在编程领域,常有“尚未精通编码便急于优化”的声音。为了从性能优化的角度提升代码质量,本文将带领读者初步探索性能优化的基本概念与实践技巧。即使程序看似运行良好,数据处理效率仍有待提高,通过系统学习性能优化,能够帮助开发者编写更加高效、稳定的代码。文章不仅介绍了性能优化的基础知识,还提供了实用的调优方法和工具,帮助读者在实际项目中应用这些技术。 ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • 在众多市场调研公司中,如何选择一家值得信赖的合作伙伴至关重要。基于我在市场调查行业近二十年的经验,我将推荐几家国内知名的市场调研机构,供您参考:1. 开元研究——专注于零售报刊发行研究、媒体广告价值评估及网络营销分析等领域,以其专业性和准确性赢得了广泛认可。 ... [详细]
  • POJ3669题目解析:基于广度优先搜索的详细解答
    POJ3669(http://poj.org/problem?id=3669)是一道典型的广度优先搜索(BFS)问题。由于陨石的降落具有时间属性,导致地图状态会随时间动态变化。因此,可以利用结构体来记录每个陨石的降落时间和位置,从而有效地进行状态更新和路径搜索。 ... [详细]
  • C# .NET 4.1 版本大型信息化系统集成平台中的主从表事务处理标准示例
    在C# .NET 4.1版本的大型信息化系统集成平台中,本文详细介绍了主从表事务处理的标准示例。通过确保所有操作要么全部成功,要么全部失败,实现主表和关联子表的同步插入。主表插入时会返回当前生成的主键,该主键随后用于子表插入时的关联。以下是一个示例代码片段,展示了如何在一个数据库事务中同时添加角色和相关用户。 ... [详细]
  • iOS 设备唯一标识获取的高效解决方案与实践
    在iOS 7中,苹果公司再次禁止了对MAC地址的访问,使得开发者无法直接获取设备的物理地址。为了在开发过程中实现设备的唯一标识,苹果推荐使用Keychain服务来存储和管理唯一的标识符。此外,还可以结合其他技术手段,如UUID和广告标识符(IDFA),以确保设备的唯一性和安全性。这些方法不仅能够满足应用的需求,还能保护用户的隐私。 ... [详细]
  • DRF框架中Serializer反序列化验证机制详解:深入探讨Validators的应用与优化
    在DRF框架的反序列化验证机制中,除了基本的字段类型和长度校验外,还常常需要进行更为复杂的条件限制校验。通过引入`validators`模块,可以实现自定义校验逻辑,如唯一字段校验等。本文将详细探讨`validators`的使用方法及其优化策略,帮助开发者更好地理解和应用这一重要功能。 ... [详细]
  • ### 摘要`mkdir` 命令用于在指定位置创建新的目录。其基本格式为 `mkdir [选项] 目录名称`。通过该命令,用户可以在文件系统中创建一个或多个以指定名称命名的文件夹。执行此操作的用户需要具备相应的权限。此外,`mkdir` 还支持多种选项,如 `-p` 用于递归创建多级目录,确保路径中的所有层级都存在。掌握这些基本用法和选项,有助于提高在 Linux 系统中的文件管理效率。 ... [详细]
  • 在Android平台上,视频监控系统的优化与应用具有重要意义。尽管已有相关示例(如http:www.open-open.comlibviewopen1346400423609.html)展示了基本的监控功能实现,但若要提升系统的稳定性和性能,仍需进行深入研究和优化。本文探讨了如何通过改进算法、优化网络传输和增强用户界面来提高Android视频监控系统的整体效能,以满足更复杂的应用需求。 ... [详细]
  • 题目探讨了在无向图中求解点连通数的问题,具体涉及UVA1660和POJ1966两个经典问题。通过最小割算法的应用,分析了如何高效地确定网络中的关键节点和路径,为电缆电视网络的优化设计提供了理论支持。该研究不仅验证了最小割算法的有效性,还为进一步探索复杂网络的连通性和鲁棒性奠定了基础。 ... [详细]
author-avatar
carmen青春-潮人帮
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有