大二下学期Java课程小结

     

                                                                                                                                                                                       Java博客课程小结

    今年是大二下学期,六月份下的太阳显得特别热,而在此时,java课程也悄然进入了尾生。大半年来java的学习,感触良生,由最开始什么也不懂的新手,变成现在略懂一些的菜鸟,其中的经厉不言而喻,也许课程学习过程中有些不合理,本人的学习方法也有些不合理,但此时此刻,也不得不来一次小小的总结了。

        Java作业一共包含了九次pta,每次的难度都各有千秋,复杂度也逐渐在提升,由于第三次写博客时未进行总结,所以本文将以第三次作业为主,前两次为辅,并以java知识点以及本人的学习经历为主线进行概述。

    第三次pta作业主要围绕继承、多态的应用;ArrayList泛型的应用方法Comparable接口及泛型的应用以及单一职责原则的应用,“开-闭”原则的应用另外,还涉及到了封装、继承、多态抽象类接口 List、Set或Map等重要知识点来写,我先说一下各次作业的大概内容和所用到的主要知识点。第一次pta三道题分别是图形卡片类排序和分组,主要让我们深入了解Comparable接口及泛型。第二次pta作业是雨刷设计类,用到的是关于类的封装、继承、多态抽象类接口等知识第三次pta作业两道题分别是统计java关键词的字数,主要运用 List、Set或Map等知识。可以看到,本次pta时涵盖了学习java时整个学期所学的重要知识点进行出题,其目的不言而喻。为了让学生们更好的理解java常见知识点及其用法,老师们可谓是煞费苦心,专出一些综合性题目来整理学生,让学生对java学习更加乐此不疲。下面将着重介绍上述所讲内容。

 

一.第七次pta

第一次pta作业是雨刷设计类,之前老师也在课堂上花时间讲了一下如何设计雨刷,以及设计雨刷时的一般思想。当时也写了关于普通雨刷类的程序代码。而本次pta最大的不同就是在当时雨刷代码的基础上,再度添加一些功能,使得该雨刷程序能够满足不一样汽车的要求。为了符合java的程序代码设计规则,需要使用到java中一些常见的代码规则,比如单一职责原则的应用,“开-闭”原则的应用另外,还涉及到了封装、继承、多态抽象类接口等知识

本次的雨刷类uml图如下:

 

 

 

 可以看到,添加了很多程序,但都符合java的单一设计职责,以及封装,继承和多态的使用。代码的测试部分也很正常,

 

 

 

 

       除了一些正常测试外,还加入了必要的非法测试以及部分升档降档测试,本次代码由于之前写过,写起来遇到的问题也不多,同时在一些细节处理上,不会的也和同学探讨了一下,使得本次实验得以顺利完成。再就是遇到几个小问题,一直改不出,特别是临界点的问题,比如输入的是

 

 

 

 

这些关于超出界限的问题,后来干脆放到一个类中,才把问题解决。

 

 

二.第八次pta

    本次pta写的是 统计Java程序中关键词的出现次数 涉及了List、Set或Map等知识,其中有好多种思路可以选择,但是因为自身代码储备量原因,最后不得不写了一个又长又简单的代码,以及使用了list方法。

思路就是把一段文字中的各个字按照逗号,句号等分开,即

StringTokenizer st=newst=new StringTokenizer(list.get(k),  " ,?.!():\"\"''\n#[](){};.") ;// 按逗号/空格/叹号分割,其他字符自行添加  

再把产生的各个分开的单词给存进list数组中,然后在list数组中按照字典顺序进行排序。最后输出即可。

    

其中主要代码如下

   for(int k=0;k<list.size();k++) {

               if (list.get(k).startsWith("//")) continue; //不处理单行注释

      // StringTokenizer st = new StringTokenizer(list.get(k), "/, !*(/*{};[]).+-=`~!@#$%^&?><://") ;// 按逗号/空格/叹号分割,其他字符自行添加        

           StringTokenizer st = new StringTokenizer(list.get(k),  " ,?.!():\"\"''\n#[](){};.") ;// 按逗号/空格/叹号分割,其他字符自行添加  

 

           while (st.hasMoreElements()) {      

             //if(st.nextElement()!="/")

           //System.out.println(st.nextElement());      

           juzi1=(String) st.nextElement();

           list1.add(juzi1);

            //else break;

            }   

           

   }

  添加的额外代码则是把五十多个关键字手动排序,这样子方便以后输出·,而且不用再次排序,唯一的缺点是代码量高,要解决的bug也不少。

        先讲讲代码中提到的可以解决问题的思路,当时和其他人讨论了一下,老师在课堂上也提及了一部分思路,可最后动起手来写代码的时候,才发现动嘴说说是真的不会闪到腰,说起来简单无比。一般大众化的思路是把一篇文章中的各个代码按照空格,逗号句号等各个标点符号分开来,遇到换行的情况则是先把一篇文章中的每一行单独取出,然后对每一行代码进行处理,这样写的缺点是处理多行注释时不好解决,所以后来又改进了代码,使得程=程序得以顺利实现。

  本次pta五百来行的代码真的是不容易写,在处理了一个个bug之后,又要解决各个部分之间的关联情况,解决完之后,还要整体检查代码,使得可以运行无阻。经过一段时间的敲写之后,才得以实现代码的正常运行。

   再来一个运行截图,看看成果:

 

 

 

 

总的来说,这次pta并不简单,一些问题始终没有解决。在时间结束之后,同学们才相互探讨怎么写,代码最终也是运行成功了//。

 

 

三.第九次pta

本次pta写的主要是关于表达式求值的代码,即编写程序,从键盘输入一个合法的表达式,对该表达式进行求值并输出利用的是堆栈的知识点,需要用到各个数据结构中堆栈的应用,

Status InitStack(SqStack *S){

    S->base = (SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));

    if(!S->base)

        exit(OVERFLOW);

    S->top=S->base;

    S->stacksize=STACK_INIT_SIZE;

    return OK;

}

像这个判断栈是否为空等等数据结构中的算法。

以及

Status StackEmpty(SqStack S){

    if(S.top == S.base)

        return TRUE;

    else

        return FALSE;

}

返回栈顶算法

Status GetTop(SqStack S, SElemType *e){

    if(S.top == S.base)

        return ERROR;

    *e = *(S.top-1);

    return OK;

}

和有关栈的插入算法。最后我也就不有所隐瞒了,由于对本次知识点的不熟悉,以及不想写pta之外,所以就随便写了个

System.out.println("Wrong Format");

的代码,同样,也来一个运行结果截图:

 

 

 

 

本次作业也算是到此为止。

 

 

 

 

四.总结

    通过这九次pta的学习,可以看到,pta上的作业主要围绕继承、多态的应用;ArrayList泛型的应用方法Comparable接口及泛型的应用以及单一职责原则的应用,“开-闭”原则的应用另外,还涉及到了封装、继承、多态抽象类接口 List、Set或Map等重要知识点来写,而且可以让我们深入了解Comparable接口及泛型类的封装、继承、多态抽象类接口等知识,以及 List、Set或Map等知识。这些知识点在java中都算是顶梁柱般的存在,

另外,各个pta作业之间的关系我也不多说了,主要是关于封装、继承、多态等旧知识点的运用以及 ArrayList泛型的应用方法Comparable接口及泛型的应用以及单一职责原则的应用,和List、Set或Map等新知识点的运用。

本学期pta也成功使得我们初步学会如何使用以及正确理解掌握封装、继承、多态等旧知识点的运用以及 ArrayList泛型的应用方法Comparable接口及泛型的应用以及单一职责原则的应用,和List、Set或Map等新知识点的运用。也感谢老师和各位同学的辛苦付出,希望各位在代码上的造诣越来越高,能一下写出一个代码,早日成为高手。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

 

posted @ 2020-06-06 19:42  疯人自语  阅读(282)  评论(0编辑  收藏  举报