因为大专只有上两年,就可以出来找工作,而我今年暑假也要出来找工作,很烦。。没什么把握,再加上这学期上三天放四天。。。所以每到周末就开始写代码。。上大学要遇到了最大的问题就是钱的问题,所以我就想写一个记账的软件。可以输入当天的收入和支出,和进行查询和分析。。。。之所以想到要自己写,是因为我在网上找了一个软件,结果是要钱的。。。我就说干脆自己写一个了。。
然后开始写自己需求列表(就是功能表)。。画整个软件的结构图。。。。流程图。。。。接着对结构图进行分析。。画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首先寻找一个可行解,然后在确保可行性的情况下,进一步寻找最优解。如果出现不可行的情况,可能是由于约束条件设置错误或数据输入问题。在解无界的情况下,通常意味着问题的最大利润没有上限...
在这一过程中,我逐步认识到,软件测试不仅仅是简单的查找软件中的bug,更重要的是通过一系列的预防性措施,确保软件的质量达到预期标准。 软件测试课程对提升我解决问题的能力起到了关键作用。在面对各种复杂的...
它为用户提供了一个直观的界面,通过图形化的方式帮助用户解决各种管理问题,如生产计划、运输问题、库存控制等。这款软件尤其适合于学习和应用单纯形法,这是一种解决线性规划问题的经典算法。 在提供的压缩包文件...
软件性能测试之感想软件测试对于性能测试,很多人不以为然!自然我们有时候也把会性能测试==会使用LoadRunner。诚然会使用LoadRunner是不错的,但性能测试不同我们常说的功能测试、界面测试。对于这类测试我们总可以...
1. **文本编辑功能**:软件应提供一个用户友好的界面,让用户能够方便地输入、编辑和格式化文本,以便记录书中的重要信息,如引述、概念解释、感想等。 2. **分类与组织**:为了便于管理和查找笔记,软件可能包含...
正如蹒跚学步的孩子一样,初学写作的我们,也需要有一个支撑点,那可能是老师的经验分享,也可能是经典作品的启发。当我们逐步学会独立思考,不再完全依赖外界的指导,我们就能够像学步的孩子那样,在跌倒之后勇敢地...