因为大专只有上两年,就可以出来找工作,而我今年暑假也要出来找工作,很烦。。没什么把握,再加上这学期上三天放四天。。。所以每到周末就开始写代码。。上大学要遇到了最大的问题就是钱的问题,所以我就想写一个记账的软件。可以输入当天的收入和支出,和进行查询和分析。。。。之所以想到要自己写,是因为我在网上找了一个软件,结果是要钱的。。。我就说干脆自己写一个了。。
然后开始写自己需求列表(就是功能表)。。画整个软件的结构图。。。。流程图。。。。接着对结构图进行分析。。画UML的类图(这学期开始学的)。。
说实在在弄上面这些东西的时候,各种痛苦。。。我想应该有人理解我的这种痛苦。。但是因为看过几本工程的书,所以还是坚持了下来。。但是还是深深感觉到了自己的不足,就像--书到用时方恨少----我也深深的感觉到了自己对于JAVA的理解还不够,面对对象的思想还没有到够用的程度。。。。
在将要进行代码的编写的时候,我姑姑去世了,所以我就回家了。。
回来的那天,我把前面的弄的东西又删了又改了。。。
开始写代码。。。
这是我发现当前面的那些做得很详细的时候,写代码变成了只是解决问题的事了,只要去思考如何实现某个方法,某种效果。
感觉像是在做数学应用题。而且当把一些东西抽象出来,变成父类的时候,就会发现不用再去重复写那些代码了。效果都用父类去实现,子类便可以享受他爸爸给他的好处了。代码省了太多了
例如我写了一个数据管理类。。
那么收入数据管理类和支出数据管理类继承他,结果可想而知。。
因为我在学android应用的开发,对于MVC模式有点感觉了。
所以在这个软件中我就应用了,当我把软件耦合度降低时,发现错误的改正和效果的修改变得很简单,因为我不用去思考修改了这个,会不会影响其他的东西。数据的输出和输入也变得很容易了。。
当然除了对编写软件的理解,对于java语法的理解也有所增长。。
当时我正在编写对文件的读写。。出现了一个Bug,我读入数据时,没有数据,但发现文本上是有文字的。
那个bug我调了一晚上,睡了一觉,隔天上课,在学校实验室(当然只是几台破电脑,上的j2me)测试出来。
代码1:
public static void main(String[] args)
{
try {
FileWriter fw = new FileWriter("out_data.txt",false);
FileReader fr = new FileReader("out_data.txt");
BufferedReader br = new BufferedReader(fr);
String str = br.readLine();
System.out.println(str);
fw.write(str);
if(br != null)
{
br.close();
}
if(fr != null)
{
fr.close();
}
if(fw != null)
{
fw.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
代码2:
public static void main(String[] args)
{
try {
FileReader fr = new FileReader("out_datas.txt");
BufferedReader br = new BufferedReader(fr);
String str = br.readLine();
System.out.println(str);
FileWriter fw = new FileWriter("out_datas.txt");
fw.write(str);
if(br != null)
{
br.close();
}
if(fr != null)
{
fr.close();
}
if(fw != null)
{
fw.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
假如文件out_datas.txt中是存在而且有数据的,那么上面两种的代码出现的结果是不一样的。
代码1:输出的null,并抛出空指针异常
代码2:输出原来文件中的数据,并写入文件中。
两个代码的唯一差别在于FileWrite的位置,为什么???或许很多人都已经知道了,但是这是我自己想出来的。。。
当FileWriter的构造函数后面是false时,在创建对象时,就会把文件清空了。。所以才会造成FileReader没有获得数据,我当时也是因为这个原因。。
我喜欢编程的原因或许是因为可以看到自己的进步(当我写出一个以前写不出来的程序时),可以享受解决问题的成就感,
成就感---一种可以让人不断进步的动力。
分享到:
相关推荐
在软件学院进行的软件工程实践中,我们深入地探讨了软件开发的全过程,从需求分析到设计、编码、测试,直至最终的维护与升级。这个过程中,我积累了丰富的知识和实践经验,以下是我对软件工程的一些核心理解和感悟。...
通过这次培训,我认识到,作为一个专业的软件测试人员,我们需要不断学习和掌握新的测试技术和工具,以便适应快速变化的软件环境。同时,我们也需要具备良好的沟通能力,与开发团队紧密协作,共同提高软件的质量。...
软件测试是软件开发过程中的一个非常重要的步骤,它可以确保软件的质量和可靠性。本文将对软件测试的基本概念、测试方法、测试流程和代码审查等方面进行详细的阐述。 一、软件测试的基本概念 软件测试是指对软件的...
如何写支教行活动总结感想.pdf
然而,通过学习,作者认识到软件测试不仅仅是验证程序的正确性或找出错误,而是一个系统性的过程,旨在全面检测软件的各个层面,以确保其质量。 软件测试的过程涵盖了多个阶段,不仅包括错误发现,更重要的是涉及...
写一小段防疫感想.docx
软件工程的兴起,是计算机科学领域的一次革新,它将工程化的思维方式引入到软件开发中,强调以系统化、量化的方法来管理和控制软件开发的全过程。作为软件工程师,既要具备宏观视角,能够把握软件开发的整体脉络,又...
软件测试是IT行业中一个关键的角色,主要负责确保软件产品的质量和功能的正确性。对于初入这个行业的人来说,理解基本的测试概念至关重要。软件测试工程师需要理解测试的目的,即找出软件中的错误、缺陷和漏洞,以...
软件工程导论心得与感想分享.pdf
标题中的“一个程序员的面试感想”意味着这篇文章将聚焦于一个程序员在面试过程中的体验、反思和学习。作为程序员,面试不仅仅是技术技能的展示,也是沟通能力、问题解决能力和个人职业素养的综合体现。这样的文章...
软件测试是软件开发过程中不可或缺的一个环节,其目的是确保软件产品的质量和可靠性。为了提高测试的效率和效果,有必要建立一套标准化的测试流程和规范。本文档旨在总结软件测试的基本规范,包括目的与适用范围、...
这些理论知识为我构建了一个完整的软件测试框架,使我能够系统地理解和执行测试任务。 其次,课程强调了实践操作的重要性。通过实际的测试案例,我学会了如何设计测试用例,如何编写测试计划,以及如何有效地执行和...
这个故事告诉我们,每一个人都应该有梦想,有追求,即使面临困难,也不应轻易放弃。正如那句名言“世上无难事,只怕有心人”,只要我们用心去做,坚持不懈,任何困难都可以克服。 写日记,实际上就是我们向内心深处...
【标题】:“入路感想铁路入职感想.rar”是一个压缩包文件,主要包含了作者对进入铁路行业后的个人感受和体验。从标题来看,我们可以推测这可能是一份新入职铁路行业的人员所写的个人心得体会,涵盖了他或她在铁路...
1. **求解过程**:LINDO首先寻找一个可行解,然后在确保可行性的情况下,进一步寻找最优解。如果出现不可行的情况,可能是由于约束条件设置错误或数据输入问题。在解无界的情况下,通常意味着问题的最大利润没有上限...
它为用户提供了一个直观的界面,通过图形化的方式帮助用户解决各种管理问题,如生产计划、运输问题、库存控制等。这款软件尤其适合于学习和应用单纯形法,这是一种解决线性规划问题的经典算法。 在提供的压缩包文件...
软件性能测试之感想软件测试对于性能测试,很多人不以为然!自然我们有时候也把会性能测试==会使用LoadRunner。诚然会使用LoadRunner是不错的,但性能测试不同我们常说的功能测试、界面测试。对于这类测试我们总可以...
1. **文本编辑功能**:软件应提供一个用户友好的界面,让用户能够方便地输入、编辑和格式化文本,以便记录书中的重要信息,如引述、概念解释、感想等。 2. **分类与组织**:为了便于管理和查找笔记,软件可能包含...