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. ZooKeeper学习笔记三:使用ZooKeeper实现一个简单的配置中心

    作者:Grey 原文地址:ZooKeeper学习笔记三:使用ZooKeeper实现一个简单的配置中心 前置知识 完成ZooKeeper集群搭建以及熟悉ZooKeeperAPI基本使用 需求 很多程序往 ...

  2. Pptx的形状转为WPF的Geometry

    本文是将演示如何解析pptx文件的形状到WPF当中,并且绘制显示出来 安装Openxml sdk 首先,我们先安装nuget的openxml sdk,下面两种方式都可以安装: nuget包管理器控制台 ...

  3. matrix_multiply代码解析

    matrix_multiply代码解析 关于matrix_multiply 程序执行代码里两个矩阵的乘法,并将相乘结果打印在屏幕上. 示例的主要目的是展现怎么实现一个自定义CPU计算任务. 参考:ht ...

  4. 英特尔Intel® Arria® 10 FPGA加速器设计

    英特尔Intel Arria 10 FPGA加速器设计 Introducing the Intel Vision Accelerator Design with Intel Arria 10 FPGA ...

  5. 孟老板 BaseAdapter封装 (二) Healer,footer

    BaseAdapter封装(一) 简单封装 BaseAdapter封装(二) Header,footer BaseAdapter封装(三) 空数据占位图 BaseAdapter封装(四) PageHe ...

  6. .NET平台系列21:云原生时代 .NET5 雄霸天下

    系列目录     [已更新最新开发文章,点击查看详细] 随着互联网持续高歌猛进,相关技术名词也是层出不穷.微服务.容器化.DevOps.ServerLess.FaaS,这两年最火的当属云原生Cloud ...

  7. WebRTC 传输安全机制第二话:深入显出 SRTP 协议

    通过 DTLS 协商后,RTC 通信的双方完成 MasterKey 和 MasterSalt 的协商.接下来,我们继续分析在 WebRTC 中,如何使用交换的密钥,来对 RTP 和 RTCP 进行加密 ...

  8. fiddler抓取手机APP包相关的设置

    一.设置手机的代理服务器 1.前提:手机与电脑用的是同一个网络 2.fiddler设置允许远程连接,并设置好端口 3.查询电脑所在网络的ip地址(windows下,命令行窗口使用:ipconfig进行 ...

  9. [源码解析] 深度学习分布式训练框架 horovod (4) --- 网络基础 & Driver

    [源码解析] 深度学习分布式训练框架 horovod (4) --- 网络基础 & Driver 目录 [源码解析] 深度学习分布式训练框架 horovod (4) --- 网络基础 & ...

  10. 【NX二次开发】Block UI 线性尺寸

    属性说明 常规         类型 描述     BlockID     String 控件ID     Enable     Logical 是否可操作     Group     Logical ...