关于最近几次作业,从C语言到Java的过渡,也就是从面向过程到面向对象的过渡。其中,一共有三次作业,前俩次可能更加偏向于过程的设计,利用C语言的想法就可以完成,但是,从需要使用类的开始,就逐渐向对象偏离。

前两次作业的主要目的,是学会日期的设计与使用还有一些简单的编程问题,可能更加取向于基础,目的是为了适应Java的编程语言,同时,日期的设计与使用上,是为了下一次作业做铺垫,下一次作业对日期的使用很多,而且都是自行设计的日期,后来的作业也同样需要自行设计日期方法。但是也有不同的地方,后面的作业作用范围更大,需要将代码设计的更加完美,几乎和工业级代码持平。在对面象过程到面向对象的思想上,每一次作业也是在不断的改变推进,不断向面过程的方面过渡。第一和第二次作业都可以选择不使用类,但是第三次作业就必须使用类,类在设计方面目前还不会很复杂,不会出现类之间方法的相互调用,后来的类更是复杂会出现很多调用。比如在日期的设计上,从年月日一起使用到后来的不断分开,使年月日各成为一个对象,就是向面向对象过渡。在第一次的作业完成过程中对于星期几的判断就是用了不同的方法进行测试。最后使用了最笨的方法,将年月日分开使得代码很长,但是运行时间的需求很短。在后面求下n天的时候同样是采用了很笨的方法但代码有所减少。对于第二次作业,这些编程题,都是为了适应Java的编程方法所出,而且都不是很复杂,由于没给测试点所以具体也不知道自己哪里错了。没拿到满分,也是因为自己太粗心所导致的。第三次作业中,主函数已经给出,但是类需要我们自己设计。对于类的设计,第一个题目是为了让我们适应,后面的三题,则是需要根据不同的方法进行设计,三个主函数都相同。但是类却不同,需要根据不同的方法进行设计。在对于前n天的球阀中,虽然和第一次作业很像,但是n的范围很大,所以我采用了不同的方法设计,使用了循环,随让简化了代码,但是增加了时间,导致求最大时运行代码超时。后两题需要使用聚合,使得年月日各为一类。前两次作业花费的时间加起来都没有第三次多,因为自己的编程能力很差同时自己又是个粗心的人,导致后来的代码频频出错,越打越慢。想到以后还需要工作,会更加注意代码的质量,改变自己粗心的毛病。

面向对象与面向过程有很多不同的地方,面向过程强调的更是一个个过程。比如说人和兔子,对于面向过程。就分别将属性和能够完成的动作进行设计,不会对他们进行分类,而对于面向对象来说,就是将人和兔子作为两个类,然后将他们自身具有的属性还有动作,分别放入两个类中,可能他们之间的动作或者属性会相同,这就可以考虑继承关系了。对于面向对象的基本原则,最重要的应该为类,类中会产生数据,或者方法,这样就会对每一个对象进行设计,可以将它们的动作作为方法,将属性作为数据,使得每个类都有它固有的属性与方法,还可以有类的继承,这让不同的类之间又有了联系,他们共同作用,最后根据人们的意愿,完成需要的事情。对于OO编程思维的理解,重要的就是一个整体中,所需要完成的事情,可能这个类很简单,那么只需要更少的代码实现这个类,如果这个对象很复杂,那么就需要更多的方法来实现这个类。如果类之间没有出现继承关系,那么哪个类有错去修改哪个类就行,不需要对整体进行大幅度的修改。

关于测试对于编码的重要性这是不用质疑的,在程序员把代码完成后,主观意义上,他会觉得自己没有任何错误,觉得功能都能够实现,但是客观上,可能会出现很多问题,这些就是被程序员所忽视的,这样就更加利于代码的完善,可以更好的改正错误满足客户的需要。同时也可以提高代码的质量和速度。如果我测试用例,我会首先选择极值,对最小或者最大的数据进行测试,然后再使用大量的正常值对其进行测试,还有大量的错误值也需要进行大量的测试。

关于课程教训,就是一定要有一本自己的参考资料,还要学好每一个计算机语言,不然到后面会越学越困难,可能别人只要花费你一半的时间,他们就可以做得更好。关于课程收获,可能是自己已经入门了一个新的计算机编程语言,让以后可以更好的面对自己的工作台计算机吧。

java1-3总结 19201421-吴志越的更多相关文章

  1. Java5-7作业总结(第八次作业)19201421-吴志越

    前言:关于此次三次作业,相比于前3次难度着实高了一个档次,第五次作业,虽然对于工具类没有很高.但是第一题的复杂程度很高,对于正则表达式有很高的要求,需要使用很多正则表达式的方法,而且不能有一处错误,对 ...

  2. shufe前辈名师

    前辈名师 姓名 现职/原职 郭秉文 中国现代大学之父.国立东南大学校长.哥伦比亚大学教育学博士,该校第一任校长.为了纪念郭秉文先生,勉励优秀学子,郭夏瑜女士在上海财经大学等校设立了“郭秉文奖学金” 马 ...

  3. 阿里巴巴开源Weex 开发教程

    Weex 是什么 Weex是阿里发布的一款用WEB方式开发原生app的开源产品 Weex能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验,并支持iOS.安卓.Yu ...

  4. Bootstrap布局设计

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  5. 前端开发福音!阿里Weex跨平台移动开发工具开源-b

    阿里巴巴今天在Qcon大会上宣布跨平台移动开发工具Weex开放内测邀请.Weex能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验,并支持iOS.安卓.YunOS及 ...

  6. javascript模块

    //使用模块 template = {}; template.createObj = (function(){ //私有成员 var _age = ""; var _name = ...

  7. Winform 实现像菜单一样弹出层

    原文:Winform 实现像菜单一样弹出层 在实际工作中,如果能像菜单一样弹出自定义内容,会方便很多,比如查询时,比如下拉列表显示多列信息时,比如在填写某个信息需要查看一些信息树时.这个时候自定义弹出 ...

  8. python课时二

    通过上个博客的学习,相信大家已经对Python是什么东西应该有了相对应的了解,这里也包括Python的一些语法(比如Python在写for循环和if判断的时候都是会有缩进的).这张博客大概会对Pyth ...

  9. Openwrt自定义CGI实现

    此文已由作者吴志勐授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 安装uhttpd. 在编译openwrt前,输入make memuconfig,查找Network -> ...

随机推荐

  1. 自定义yum仓库

                                             自定义yum仓库 案例4:自定义yum软件仓库 4.1问题 本例要求在CentOS真机上利用RHEL7的光盘镜像文件准 ...

  2. Linux网络安全篇,进入SELinux的世界(二)

    一.简单的网页制作 1.启动httpd服务 /etc/init.d/httpd start 2.编写首页网页文件 echo "hello,this is my first webPage&q ...

  3. python 入门 之 Json 序列化

    开发网站,离不了Json 但是一般情况,不支持python的其它对象,怎么办? 有办法:Json 序列化!!! 总体来说,需要序列化的数据类型为 字典,类,嵌套类. 下面是我做的一个demo,都包含了 ...

  4. 【Selenium03篇】python+selenium实现Web自动化:元素三类等待,多窗口切换,警告框处理,下拉框选择

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第三篇博 ...

  5. Linux中vim编辑器 的 快捷键 --- 常用 的 都比较全

    Linux中vim编辑器的功能非常强大,许多常用快捷键用起来非常方便,这里将我学vim入门时学的一些常用的快捷键分享给大家一下,希望可以帮助你们. 这个是我将鸟哥书上的进行了一下整理的,希望不要涉及到 ...

  6. CVE-2020-0796 永恒之蓝?

    0X00漏洞简介 Microsoft Windows和Microsoft Windows Server都是美国微软(Microsoft)公司的产品,Microsoft Windows是一套个人设备使用 ...

  7. 005-循环结构(上)-C语言笔记

    005-循环结构(上)-C语言笔记 学习目标 1.[掌握]switch-case结构 2.[理解]case语句穿透 3.[理解]Xcode断点调试 4.[理解]while循环结构初体验 5.[掌握]w ...

  8. AJ学IOS(02)UI之按钮操作 点击变换 移动 放大缩小 旋转

    不多说,先上图片看效果,AJ分享,必须精品 这个小程序主要实现点击方向键可以让图标上下左右动还有放大缩小以及旋转的功能,点击图片会显示另一张图片. 点击变换 其实用到了按钮的两个状态,再State C ...

  9. Linux 下发送邮件

    由于种种原因,需要由我这个兼职运维每天发送对账单文件给运营同学,故研究下 Linux 发送邮件,希望对大家有所帮助. 安装 # Centos,安装 mailx $ yum install -y mai ...

  10. Map使用foreach遍历方式,Map获取第一个键值

    List<Map<String, Object>> mapList = new ArrayList<>();  for (Map.Entry<String,O ...