java1-3总结 19201421-吴志越
关于最近几次作业,从C语言到Java的过渡,也就是从面向过程到面向对象的过渡。其中,一共有三次作业,前俩次可能更加偏向于过程的设计,利用C语言的想法就可以完成,但是,从需要使用类的开始,就逐渐向对象偏离。
前两次作业的主要目的,是学会日期的设计与使用还有一些简单的编程问题,可能更加取向于基础,目的是为了适应Java的编程语言,同时,日期的设计与使用上,是为了下一次作业做铺垫,下一次作业对日期的使用很多,而且都是自行设计的日期,后来的作业也同样需要自行设计日期方法。但是也有不同的地方,后面的作业作用范围更大,需要将代码设计的更加完美,几乎和工业级代码持平。在对面象过程到面向对象的思想上,每一次作业也是在不断的改变推进,不断向面过程的方面过渡。第一和第二次作业都可以选择不使用类,但是第三次作业就必须使用类,类在设计方面目前还不会很复杂,不会出现类之间方法的相互调用,后来的类更是复杂会出现很多调用。比如在日期的设计上,从年月日一起使用到后来的不断分开,使年月日各成为一个对象,就是向面向对象过渡。在第一次的作业完成过程中对于星期几的判断就是用了不同的方法进行测试。最后使用了最笨的方法,将年月日分开使得代码很长,但是运行时间的需求很短。在后面求下n天的时候同样是采用了很笨的方法但代码有所减少。对于第二次作业,这些编程题,都是为了适应Java的编程方法所出,而且都不是很复杂,由于没给测试点所以具体也不知道自己哪里错了。没拿到满分,也是因为自己太粗心所导致的。第三次作业中,主函数已经给出,但是类需要我们自己设计。对于类的设计,第一个题目是为了让我们适应,后面的三题,则是需要根据不同的方法进行设计,三个主函数都相同。但是类却不同,需要根据不同的方法进行设计。在对于前n天的球阀中,虽然和第一次作业很像,但是n的范围很大,所以我采用了不同的方法设计,使用了循环,随让简化了代码,但是增加了时间,导致求最大时运行代码超时。后两题需要使用聚合,使得年月日各为一类。前两次作业花费的时间加起来都没有第三次多,因为自己的编程能力很差同时自己又是个粗心的人,导致后来的代码频频出错,越打越慢。想到以后还需要工作,会更加注意代码的质量,改变自己粗心的毛病。
面向对象与面向过程有很多不同的地方,面向过程强调的更是一个个过程。比如说人和兔子,对于面向过程。就分别将属性和能够完成的动作进行设计,不会对他们进行分类,而对于面向对象来说,就是将人和兔子作为两个类,然后将他们自身具有的属性还有动作,分别放入两个类中,可能他们之间的动作或者属性会相同,这就可以考虑继承关系了。对于面向对象的基本原则,最重要的应该为类,类中会产生数据,或者方法,这样就会对每一个对象进行设计,可以将它们的动作作为方法,将属性作为数据,使得每个类都有它固有的属性与方法,还可以有类的继承,这让不同的类之间又有了联系,他们共同作用,最后根据人们的意愿,完成需要的事情。对于OO编程思维的理解,重要的就是一个整体中,所需要完成的事情,可能这个类很简单,那么只需要更少的代码实现这个类,如果这个对象很复杂,那么就需要更多的方法来实现这个类。如果类之间没有出现继承关系,那么哪个类有错去修改哪个类就行,不需要对整体进行大幅度的修改。
关于测试对于编码的重要性这是不用质疑的,在程序员把代码完成后,主观意义上,他会觉得自己没有任何错误,觉得功能都能够实现,但是客观上,可能会出现很多问题,这些就是被程序员所忽视的,这样就更加利于代码的完善,可以更好的改正错误满足客户的需要。同时也可以提高代码的质量和速度。如果我测试用例,我会首先选择极值,对最小或者最大的数据进行测试,然后再使用大量的正常值对其进行测试,还有大量的错误值也需要进行大量的测试。
关于课程教训,就是一定要有一本自己的参考资料,还要学好每一个计算机语言,不然到后面会越学越困难,可能别人只要花费你一半的时间,他们就可以做得更好。关于课程收获,可能是自己已经入门了一个新的计算机编程语言,让以后可以更好的面对自己的工作台计算机吧。
java1-3总结 19201421-吴志越的更多相关文章
- Java5-7作业总结(第八次作业)19201421-吴志越
前言:关于此次三次作业,相比于前3次难度着实高了一个档次,第五次作业,虽然对于工具类没有很高.但是第一题的复杂程度很高,对于正则表达式有很高的要求,需要使用很多正则表达式的方法,而且不能有一处错误,对 ...
- shufe前辈名师
前辈名师 姓名 现职/原职 郭秉文 中国现代大学之父.国立东南大学校长.哥伦比亚大学教育学博士,该校第一任校长.为了纪念郭秉文先生,勉励优秀学子,郭夏瑜女士在上海财经大学等校设立了“郭秉文奖学金” 马 ...
- 阿里巴巴开源Weex 开发教程
Weex 是什么 Weex是阿里发布的一款用WEB方式开发原生app的开源产品 Weex能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验,并支持iOS.安卓.Yu ...
- Bootstrap布局设计
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 前端开发福音!阿里Weex跨平台移动开发工具开源-b
阿里巴巴今天在Qcon大会上宣布跨平台移动开发工具Weex开放内测邀请.Weex能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验,并支持iOS.安卓.YunOS及 ...
- javascript模块
//使用模块 template = {}; template.createObj = (function(){ //私有成员 var _age = ""; var _name = ...
- Winform 实现像菜单一样弹出层
原文:Winform 实现像菜单一样弹出层 在实际工作中,如果能像菜单一样弹出自定义内容,会方便很多,比如查询时,比如下拉列表显示多列信息时,比如在填写某个信息需要查看一些信息树时.这个时候自定义弹出 ...
- python课时二
通过上个博客的学习,相信大家已经对Python是什么东西应该有了相对应的了解,这里也包括Python的一些语法(比如Python在写for循环和if判断的时候都是会有缩进的).这张博客大概会对Pyth ...
- Openwrt自定义CGI实现
此文已由作者吴志勐授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 安装uhttpd. 在编译openwrt前,输入make memuconfig,查找Network -> ...
随机推荐
- Vertica的这些事(九)——-vertica存储统计信息
vertica存储统计信息: 表数量: select count(distinct table_name) FROM tables; 分区表数量: select count(distinct tabl ...
- Java String与char
1. char类型 + char 类型 = 字符对应的ASCII码值相加(数字): char类型 + String 类型 = 字符对应的ASCII码值相加(数字) + String 类型: Strin ...
- 项目伪模块化开发之:requirejs(AMD)开发
附:伪模块开发,终将会被es6的模块开发取代.其只为过渡阶段使用 一.为什么要用require.js? 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了.后来,代码 ...
- 手把手教你分析Mysql死锁问题
前言 前几天跟一位朋友分析了一个死锁问题,所以有了这篇图文详细的博文,哈哈~ 发生死锁了,如何排查和解决呢?本文将跟你一起探讨这个问题 准备好数据环境 模拟死锁案发 分析死锁日志 分析死锁结果 环境准 ...
- 安装部署Tomcat服务器
安装部署Tomcat服务器 案例1:安装部署Tomcat服务器 案例2:使用Tomcat部署虚拟主机 案例3:使用Varnish加速Web 1案例1:安装部署Tom ...
- Go gRPC教程-客户端流式RPC(四)
前言 上一篇介绍了服务端流式RPC,客户端发送请求到服务器,拿到一个流去读取返回的消息序列. 客户端读取返回的流的数据.本篇将介绍客户端流式RPC. 客户端流式RPC:与服务端流式RPC相反,客户端不 ...
- java中查询某个类已经创建了多少个对象了
这个代码主要是使用类的静态字段和构造函数,可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象? 主要是在构造函数中用到了静态数据,进行显示已经构造了多少个类对 ...
- Java第二天,类的概念,属性和方法的使用
上文中我们已近说到过了,Java是一种面向对象的编程语言,对象是用类来创建的,就比如世界上有无数个父亲,但是他们都有一个共同的属性--男人.也就是说某个父亲这个对象属于男人这个类.类是Java必不可少 ...
- C语言 刷新缓冲区
fflush int fflush(FILE* stream); 用于清空文件缓冲区,如果文件是以写的方式打开 的,则把缓冲区内容写入文件. eg: 1. #include <stdio.h&g ...
- 8.4 StringBuilder的介绍及用法(String 和StringBuilder区别)
* StringBuilder:是一个可变的字符串.字符串缓冲区类.** String和StringBuilder的区别:* String的内容是固定的.(方法区的内容)* StringBuilder ...