zoukankan      html  css  js  c++  java
  • 《Java程序设计》 第四周学习总结

    学号 20175313 《Java程序设计》第四周学习总结

    教材学习内容总结

    第五章主要内容

    • 了解子类的继承性

      • 子类和父类在同一包中的继承性(除private外其余都继承)
      • 子类和父类不在同一包中的继承性(只继承public和protected)
    • 掌握成员变量的隐藏和方法重写

      • 成员变量的隐藏:注意与this的区别。
        • 用关键字super对其进行操作。
        • 通过调用从父类继承的方法对其进行操作。
      • 方法重写:注意与方法重载的区别。
        • 语法规则:这个方法的名字、参数个数、参数类型和父类的方法要完全相同,但是方法的类型可以是父类方法类型的子类。
        • 重写目的:通过方法重写可以隐藏继承的方法,或是把父类的状态和行为改变成自身的状态和行为。
    • 理解何为多态性以及如何产生多态

      • 所谓多态就是指父类的某个方法被其子类重写时,可以各自产生自己的功能的行为。(后面的abstract会用到)
      • 将子类创建的对象的引用放到一个父类的对象中,就得到了该对象的一个上转型对象,那么这个上转型对象在调用这个方法时就可能具有多种形态。
    • 熟悉abstract的使用以及相关规则

      • 对于abstract方法,只允许声明,没有方法体。
      • 不允许用final和static修饰abstract类或方法。
      • abstract类不能用new运算符创建对象。但该对象可以成为其子类对象的上转型对象调用子类重写的方法。
    • 学会面向抽象编程

      • 目的:应对用户需求的变化。
      • 核心:让类中的每种可能的变化对应地交给抽象类的子类去负责。

    教材学习中的问题和解决过程

    • 问题1:不太明白该代码编译不通过的原因。

    输入图片说明
    输入图片说明

    • 问题1解决方案:通过查阅课本并对上方问题进行深入剖析,最终理解的该代码出错的原因。
    • 理解情况:super必须是子类构造方法的头一条语句,该代码中子类B的头一条语句中并没有出现super,则默认super(),因此当父类中定义多个构造方法是,应当包括一个不带参数的构造方法,而A中不曾出现,因此出现了编译失败,若在A类中加上一个无参数的构造方法,则结果应该为2。
    • 运行结果截图:

    输入图片说明
    输入图片说明

    • 问题2:对于子类的上转型对象能否调用子类重写的静态方法,不是很清楚。

    输入图片说明
    输入图片说明
    输入图片说明

    • 问题2解决方案:上机运行改程序,查看结果。
    • 运行结果截图:

    输入图片说明

    • 结果表明:如果子类重写了父类的静态方法,那么子类对象的上转型对象不能调用子类重写的静态方法,只能调用父类的静态方法。

    代码调试中的问题和解决过程

    • 问题:运行结果与教材上所给的不相符(教材133页例题)。

    输入图片说明
    解决方案:通过调试发现bottom可以成功的作为Geometry子类的上转型对象,但是height的值始终为0;
    后来发现是在Pillar类中少写了一句关于对height的操作。
    调试过程截图:
    输入图片说明

    输入图片说明

    输入图片说明

    输入图片说明

    输入图片说明

    代码托管

    (https://gitee.com/xiannvyeye/test)

    输入图片说明
    输入图片说明

    这周考试错题总结

    • 错题1

    输入图片说明
    正确答案:A
    我选择的是:B

    • 错误原因:不太清楚,我还是认为我的答案是正确的。
    • 理解情况:
      • instanceof的使用方法:instanceof运算符左面的操作元是对象,右面是操作元是类,当左面的操作元是右面的类或其子类所创建的对象时,instanceof运算的结果是true,否则是false。
      • 我的理解:
        1. 依照此定义,若一个实例对象是其子类所创建的对象,那么instanceof的值为true,但是它不是右边操作元的对象;
        2. 若一个实例对象是instanceof右边操作元所创建的,那么instanceof的值仍然为true,而它不是右边操作元的对象。
        3. 所以我认为无法通过instanceof的结果来判断实例对象是否属于一个类。
    • 错题2

    输入图片说明
    正确答案:ABCD
    我的答案:CD

    • 错误原因:对final这个关键字的使用理解的不够透彻,没有全面的看待它,只看到一些片面之处。
    • 理解情况:通过查看资料final类以及String类是否可以被继承,已经能够明白这道题了。

    心得体会

    • 这周刚成立结对小伙伴,我们暂时还没有开始一起学习,所以我在打代码的过程中出现了许多粗心的地方,导致我浪费的很多时间去调试,找Bug,我觉得我们结对之后这种事情的发生率一定会大幅度降低。
    • 第五章的内容较少,正是因为内容少,反而使我懈怠,周四才开始看,所以很多内容都是大致看一下,导致课后习题、测试题频繁由于概念问题出现错误。所以我觉得一定要合理分配时间。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 13/13 1/1 23/23
    第二周 317/330 1/6 22/45
    第三周 703/1044 1/7 31/76
    第四周 1263/2094 2/9 18/84

    参考资料

  • 相关阅读:
    metal的gpu query
    体积雾 global fog unity 及改进
    hdr rt format对颜色的影响
    unity deferred lighting
    unity linear space时 photoshop blend的正确设置
    unity linear work flow
    一些数据 bandwidth之类
    deferred rendering with msaa
    unity 显示mipmaplevel
    【转】在C#中使用SendMessage
  • 原文地址:https://www.cnblogs.com/xiannvyeye/p/10582316.html
Copyright © 2011-2022 走看看