9月22日,进行了开学第一堂的java测试,来检验暑假的自学成果。下午的考试中,时间应该是比较充分的,但是我还是有许多功能模块没有完成,功能缺少,在进行测试的时候暴露出了许多漏洞。

  总结一下,在暑假的学习中,自己动手实际编写的太少,遇到的问题太少,一些常见的异常报错,不知道怎么去处理,比如nullpointer异常,这是因为使用null对象来调用方法,对象在初始化中的时候不成功。还有报错静态方法中调用非静态变量,这是因为没有new实例化对象导致的。

  在构建自动柜员机系统时,最初没有头绪,以为像以前的学生信息管理系统一样,输入数据后进行增删改查等操作,但是并不一样。柜员机系统是从TXT文件中读取字符串,再和你输入的账号进行比对,相同则进入密码界面,不同则提示无账号信息。首先是文件操作,对于文件的操作,我在暑假的时候就没有好好实际的操作过,一些要注意的地方都有些遗忘,比如throws IOExption,如果不加上程序会运行不下去,还要导入相应的文件操作依赖包。最重要的是在进行字符串比对是,不能直接使用==运算符比对,字符串是引用类型,这是地址比对。应该使用类似于a.equals(b);的操作进行字符串内容的比较。

  进入密码输入界面后,与TXT文件的密码进行比对,成功进入主界面,否则在三次输入错误后提示卡进行回收。对于这个功能,我主要思路是进行至多三次循环,用变量记录循化的次数,判断是否等于3,进行分支选择,等于三次的话输出提示信息,退出到录入账号界面。

  柜员机的主界面功能,存取款,转账汇款,修改密码,以及显示一些操作信息。这时候才发现,自己写的框架有些问题。在进行文件的读取操作时,应该将读取到的数据,进行初始化赋值,存储在对象数组中,再进行相关操作。操作完成后,最后再将修改后的数据,利用文件操作写入到文件中进行保存。在修改上花费大量时间,以导致于没有构架完成程序。

  在考试中出现的错误太多,一些平常没有注意到的错误接连出现。尤其是在进行文件的读取赋值操作时,不管如何赋值,最后输出的对象数组都只有最后一组的数据。不断地测试也不知道问题出现在什么地方。上网搜索后才知道数组是引用类型,数组赋值时候,取出全是最后一个值。使用的全部是最后的地址,需要不断地new一个新的对象进行引用的正确赋值,否则数组都会指向同一地址,导致不能正确的赋值。

  通过这一次的考试,认识到了自己很多的不足之处。第一,也是最重要的就是题还没有理解透彻,系统的流程还没有看完全就着急编写程序,乱写一通,最后理清思路后推翻旧的程序,重新编写,浪费时间。编写程序首先要静下心,仔细的将系统的流程走一遍,然后寻找切入点,不可盲目的编写,耗时耗力没有用处,构建系统的框架,再在框架的基础上进行增加删除功能,壮大程序。第二,对于编译软件运用的不太熟练,在平时,一直用的是记事本来开发程序,非常的麻烦。改用eclipse软件,一些功能不会用,debug,测试等不会。在寻找错误时,只是单纯的靠自己的逻辑,添加输出变量等语句寻找出错的地方。在今后的学习中,一定要熟练运用开发软件,提升自己的能力。第三,对java的基础还不够扎实牢固,一段时间没有使用java就忘记许多注意点,一些基础知识,某些函数的使用方法。第四,编写程序时没有养成写注释的好习惯,在自己编译时,总是忘记当时定义的这个变量是干什么用的,然后再慢慢读程序,寻找变量的作用,可读性很差。第五,在定义类名,方法名,变量名等标识符时,不能做到见名知意,大小写也不加区分,习惯不好。

  在今后的学习生活中,我要养成好作为一个程序员应该具有的优秀习惯。不断学习新的知识,要记录编程中遇到的困难以及解决的办法。要自己主动的去学习,不能等到老师要求才去学习。保持一颗求知心,做一名优秀的程序员。

java课堂考试总结的更多相关文章

  1. 第一次JAVA基础考试后的反思

    今天进行了第一次JAVA基础考试,考查了课本上前面三章和方法的知识,基本没有涉及到数组.通过这次的考试,暴露了自己在学习中的很多问题. 机试题是编写一个学员状态转换器,主要运用的是选择语句和方法,而没 ...

  2. Java课堂测试--实现ATM的基本操作体会

    9月20的周四的Java课堂第一节课上就是有关于实现ATM的考试内容,在实现的过程中我了解到自己本身还是有很多的不足之处,例如在实现工程方面的相似性上面还有些许就的欠缺,再者就是回宿舍拿电源的原因导致 ...

  3. Java课堂笔记(零):内容索引

    回想自己学习和使用Java的时间也是很长了.本科期间课堂上浅尝辄止地学习了点皮毛,后来也是搁置不用,未曾深入研究.研究生期间因为项目和实习的原因,基本算是重新拾起Java这门语言,并且接触到了Spri ...

  4. 20155237 第十一周java课堂程序

    20155237 第十一周java课堂程序 内容一:后缀表达式 abcde/-f+ 内容二:实现Linux下dc的功能,计算后缀表达式的值 填充下列代码: import java.util.Scann ...

  5. 20155308《信息安全系统设计基础 嵌入式C语言课堂考试补博客

    20155308<信息安全系统设计基础 嵌入式C语言课堂考试补博客 知识点 置位 ?bits = bits | (1 << 7) ; /* sets bit 7 */ bits |= ...

  6. 20155320信息安全系统设计第二周课堂考试总结及myod的实现

    20155320 信息安全系统设计第二周课堂考试总结及myod的实现 第二周测试一二已在课上提交 第二周测试3-gdb测试 用gcc -g编译vi输入的代码 在main函数中设置一个行断点 在main ...

  7. Java课堂作业详解

    今天的Java课堂留下了一个作业:使用Eclipse编写一个程序,使输入的两个数进行加和,并且输出他们的和.对于这个题目,我们首先可以把它分解成为三个不同的小步骤 第一步就是输入这两个数,因为我们无需 ...

  8. java课堂动手动脑及课后实验总结

      动手动脑一:枚举   输出结果: false false true SMALL MEDIUM LARGE 分析和总结用法 枚举类型的使用是借助ENUM这样一个类,这个类是JAVA枚举类型的公共基本 ...

  9. Java输出考试前三名

    实现输出考试成绩的前三名 要求: 1. 考试成绩已保存在数组 scores 中,数组元素依次为 89 , -23 , 64 , 91 , 119 , 52 , 73 2. 要求通过自定义方法来实现成绩 ...

随机推荐

  1. 微信架构 & 支付架构(上)

    微信架构 & 支付架构(上) 一. 微信和支付宝对比 这两者现在已经占领了移动支付的90%市场,支付形式也都大抵相同,只是在实现细节上略微不同.这里之所以要专门对比,是因为有些接口的不同在后边 ...

  2. 77GHz 和24GHz Radar性能解析

    77GHz 和24GHz Radar性能解析 一.77GHz MRR 77GHz MRR Automotive Collision Warning Radar Application MRR – Fo ...

  3. python_selenium_键盘事件

    引言 ----在实际的web测试工作中,需要配合键盘按键来操作,webdriver的  keys()类提供键盘上所有按键的操作,还可以模拟组合键Ctrl+a,Ctrl+v等. 举例: #cording ...

  4. 【NX二次开发】判断部件是否已修改(判断部件是否需要保存)UF_PART_is_modified();

    判断部件是否已修改(判断部件是否需要保存)UF_PART_is_modified(); 注意:函数需要输入原型,不要输入事例.事例转原型:UF_ASSEM_ask_prototype_of_occ() ...

  5. 【NX二次开发】 删除面操作

    录制修改封装删除面 DeleteFaces 1 #include <uf_defs.h> 2 #include <NXOpen/NXException.hxx> 3 #incl ...

  6. C++ folly库解读(三)Synchronized —— 比std::lock_guard/std::unique_lock更易用、功能更强大的同步机制

    目录 传统同步方案的缺点 folly/Synchronized.h 简单使用 Synchronized的模板参数 withLock()/withRLock()/withWLock() -- 更易用的加 ...

  7. Pytest学习笔记3-fixture

    前言 个人认为,fixture是pytest最精髓的地方,也是学习pytest必会的知识点. fixture用途 用于执行测试前后的初始化操作,比如打开浏览器.准备测试数据.清除之前的测试数据等等 用 ...

  8. JWT理论知识

    JWT学习文章: 第一篇:JWT原理 第二篇:JWT原理实现代码 简介 JWT全拼是JSON Web Tocken,是目前最流行的跨域身份认证解决方案,特别适合分布式系统,减少用户麻烦,保证账号安全, ...

  9. js笔记7

    1.作用域链 作用域:浏览器给js的一个生存环境(栈内存) 作用域链:js中的关键字var和function都可以提前声明和定义,提前声明和定义的放在我们的内存地址(堆内存)中.然后js从上到下逐行执 ...

  10. Linux中su和sudo的用法

    su -#su - oldboy //当执行这个命令的时候表示切换到oldboy用户,并且重新读取用户环境相关配置文件,具体的来说就是执行下用户家目录下.bash_profile和.bashrc文件, ...