oo课程总结

 

写在前面

  java课程快要结束了,哈巴哈巴,时间过得贼儿快,现在想起来第一次java课堂作业老师要求写两个类实验功能还叫苦连天绞尽脑汁得废寝忘食地干,再到后面被迫n个类串一串同心圆,再到更之后n多个UML图大串烧搞接龙;这一切都感觉发生在昨儿个。然而时间是过得贼快,我的水平却没有跟着起飞强势一波做个疫情后的大黑马。写来写去每次pta作业都交的贼慢,活脱脱像个19级小白,可能是疫情的原因吧!大家都偷偷崛起,唯我一人蒙在鼓里痛快的玩(靓仔落泪)。。。

  哈哈开玩笑,大家都有努力,但你永远要相信比你优秀的人比你还努力(突然充满了干劲)我还得加油,朝着真大佬继续努力,Java课程快要结束,面向对象的大山还只是冰山一角,,,路漫漫其修远兮,吾将上下而求索......

  作业过程总结

  1. 知识迭代关系
    老师发布的作业和作业顺序恰到好处,个人感觉在能有效帮助包括我在类初学java的小白对java有一个启蒙似理解;而且作业的连贯性不至于我们初学者觉得困难不易掌握。
    第一阶段作业像是引导我们进入oo世界的起点,让我们第一次从实战的角度体会面向对象的魅力。
    第二阶段作业在掌握类的继承、多态性使用方法的基础上了解学习java接口的应用。丰富了我们对Java组件的交接和贯通。
  2. 作业过程中遇到的问题及解决方法

    第一次作业让我们用简单的编程语句进行功能实现它的第四题判断三角形类型有个点始终不能通过,事后查阅资料了解到java处理浮点数有固定位数,无法无限循环;

    后添加一个判断有限为浮点数的语句即可;

    import java.util.Scanner;
    public class Main {
        
        public static void main(String[] args) {
            Scanner in=new Scanner(System.in);
            double ai=in.nextDouble();
            double bi=in.nextDouble();
            double ci=in.nextDouble();
            double a=0,b=0,c=0,k=0;
            a=ai;
            if(bi>a) {
                k=a;
                a=bi;
                bi=k;
            }
            if(ci>a) {
                k=a;
                a=ci;
                ci=k;
            }    
            if(bi>ci) {
                b=bi;
                c=ci;
            }
            else {
                b=ci;

     

  3.  第二次作业第二题:

      问题1:分隔多项式时无法区分减号和指数的“-“符号。

      解决方法:通过负号和减号前一位字符的不同判别。

    1
    2
    3
    4
    5
    6
    7
    8
    List<Tern> list = new LinkedList<Tern>();
            data=data.replaceAll(" {1,}","").replaceAll("\\^-","\\^b").replaceAll("-","c-").replaceAll("\\+","d\\+");
            if(data.charAt(0)=='c')
                data=data.replaceFirst("c-","-");
            String[] PoverFunction=data.split("[dc]");
            for(int i=0;i<PoverFunction.length;i++) {
                PoverFunction[i]=PoverFunction[i].replaceAll("b", "-");
            }

 

   3. 每次作业花费的时间比例

     虽然是真小白,但小白也有倔强,随着oo含义深入理解和编程练习的累积,完成作业的情况指定越来越好,代码质量相比前一次更有提升。

   4. 对编程过程的严谨性的认识及教训

     严谨性即健壮性,健壮性有时也和容错性,可移植性,正确性有交叉的地放。比如,一个软件可以从错误的输入推断出正确合理的输入,这属于容错性量度标准,但是也可以认为这个软件是健壮的

逻辑严谨性十分重要;缺乏严谨的代码就缺少价值存在意义。编程的严谨十分重要,一份不严谨马马虎虎的程序代码健壮性必然不合格,一旦出现错误情况调试修改十分麻烦。而一份严谨的代码存在严格的检验机制和精简不拖沓的代码组成,严谨的代码简洁性也更高复用性更强!

 实验总结

  本学期共有五次Java实验,实验难度也是逐次递增,不过实验是紧跟课堂和作页进度。所以完成情况倒是不会太难看。

  • 实验一

  通过实验—“java程序控制结构”,我学会使用记事本工具编写java程序,这么做可以让我们更好地在java学习前期培养良好的代码习惯,更容易让我们理解java的编程原理,摆脱对IDE的依赖

  • 实验二:

    经过第二阶段的学习,使用记事本工具编写java程序更加熟练,对类,方法,对象的运用有了基础的了解。学会java语言包和jdk中类中一些基础语句的使用,有了一定了解

  • 实验三:

    通过本次实验,理解继承了与组合的区别;

    理解了程序设计中代码复用的重要性。

    对Java语言中多态的基本概念及使用方法更加了解;

    基本清楚了上转型和下转型的基本概念及使用方法;

  • 实验四:

    通过本次实验,掌握了leJava语言中final关键字的含义及使用方法;掌握了Java语言中抽象类的基本概念及使用方法;理解了程序设计中异常处理的重要性;掌握了Java语言中接口的基本概念及使用方法;理解了程序设计中常用数据结构的用法;掌握了Java语言中List相关类的使用方法;掌握了Java语言中Map相关类的使用方法。

  • 实验五:

    认真完成本次实验后, 对JavaFX的基本原理和基本组件有了更全面的了解;能够熟练应用JavaFX组件进行界面设计;掌握了Java的事件驱动机制、lambda表达式;掌握了shape形状类的使用。

Java课程总结

  关于Java的畅想和口头battle就不在这过多废话了,前言扯了点有的没的,也算是一点想抒发的想法,现在主要说说我自己对Java面向对象思想的一点片面理解吧。

 OO编程就是面向对象的思想,不同于其他语言面向过程的思想。面向对象针对程序功能而设计对象,它的每一部分都是可分隔而单独存在,真因为这一特性,java能够拥有不俗的移植性,很多软件从pc断移植到移动端都依靠java的面向对象的思想为基础。

  oo的理解可以用这些原则来解释:

“开-闭”原则;  

单一功能原则

里氏替换原则

接口隔离原则

依赖倒置原则

  一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将导致职责依赖,相互之间就产生影响,从而大大损伤其内聚性和耦合度。通常意义下的单一职责,就是指只有一种单一功能,不要为类实现过多的功能点,以保证实体只有一个引起它变化的原因

  其次,测试对于程序的开发也有着举足轻重的作用,保证代码质量真的很重要。著名程序工程师任正非任老爷子说过:我们要从最基础的编码质量做起,视高质量代码为尊严和个人声誉。真的很认同这个观点,保证自己代码的质量本是是基本的事,但很多时候我们却保证不了。所以他才把代码质量提到那么高的高度,而代码质量离不开测试。代码质量保证了,功能才能稳定,稳定可靠的功能就是最好的宣传。保证代码质量就是程序员练内功,内功扎实,才能在上面构建更多的可能性。

课程收获

  计算机编程语言其实也算是我在经历12年教育后难得的兴趣了,虽然达不到废寝忘食悬梁刺股的学习境界,但却是能够为了一次pta而苦战凌晨。当然这算不上多努力,身边对学习如饥似渴者甚多。但相比其他课程还是要付出更多一点。这也全凭个人态度和理解。

通过这段时间对java的学习,我逐渐了解的面向对象的含义概念,并通过周末作业的练习我要逐渐习惯面向对象的编程思维;它能有效改进编程效率提高编程理解;编程过程中也经常性出现多或少的错误,无法完全理解题目含义,有时候编写的代码会习惯性沿袭面向过程的思维。导致编程低速抵效。这些都提醒我以后编写代码的过程中一定要跟家严谨,心平气和。

Java的课程要结束了,谈不上高兴也不归咎失落。学习一直在进行,Java是这样,以后工作是这样,生活也将是这样。

 

 

 

posted @ 2020-06-07 00:52  上白  阅读(121)  评论(0)    收藏  举报