学号 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

《Java程序设计》 第四周学习总结的更多相关文章

  1. 20145213《Java程序设计》第四周学习总结

    20145213<Java程序设计>第四周学习总结 教材学习内容总结 本周任务是学习面向对象的继承.接口以及之后的如何活用多态.(还真是路漫漫其修远兮啊!)教材也是延续上周艰深晦涩的语言风 ...

  2. 《Java程序设计》第四周学习总结

    20145224-陈颢文 <Java程序设计>第四周学习总结 教材学习内容总结 第六章 继承与多态 ·继承就是面向对象中,子类继承父类,避免重复的行为定义.重复再程序设计上是非常不好的信号 ...

  3. 20155304 2016-2017-2 《Java程序设计》第四周学习总结

    20155304 2016-2017-2 <Java程序设计>第四周学习总结 教材学习内容总结 第六章 继承: 概念: 面向对象中,为避免多个类间重复定义共同行为.(简单说就是将相同的程序 ...

  4. 201521123038 《Java程序设计》 第四周学习总结

    201521123038 <Java程序设计> 第四周学习总结 1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 1.通过 ins ...

  5. 201521123061 《Java程序设计》第四周学习总结

    201521123061 <Java程序设计>第四周学习总结 1. 本章学习总结 (1)思维导图: --- (2)上课内容总结: 第四周学习了Java中的继承与多态,思维导图中已经给出了本 ...

  6. 20175204 张湲祯 2018-2019-2《Java程序设计》第四周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第四周学习总结 教材学习内容总结 -第五章子类与继承要点: -子类与父类: 1.通过使用关键字extends来定义一个类 ...

  7. 20175314 《Java程序设计》第四周学习总结

    20175314 <Java程序设计>第四周学习总结 教材学习内容总结 每个子类只能有一个父类,而一个父类可以有多个子类.可以使用关键字extends来定义一个类的子类:class 子类名 ...

  8. 20155312 张竞予 2006-2007-2 《Java程序设计》第四周学习总结

    20155312 2006-2007-2 <Java程序设计>第四周学习总结 课堂笔记 Ctrl+shift+T调出三个窗口,分别是"vi编写代码","jav ...

  9. 20165318 2017-2018-2 《Java程序设计》第四周学习总结

    20165318 2017-2018-2 <Java程序设计>第四周学习总结 IDEA安装 按照娄老师Intellj IDEA 简易教程,我下载了IDEA但是由于没有注册学校邮箱,我没办法 ...

  10. 20172325 2016-2017-2 《Java程序设计》第四周学习总结

    20172325 2016-2017-2 <Java程序设计>第四周学习总结 教材学习内容总结 1.对类.对象.声明变量的定义和属性有了进一步的了解 2.学会如何编写一个类并运用到需要的程 ...

随机推荐

  1. Atitit 关于处理环保行动联盟和动物解放阵线游击队的任命书 委任状

    Atitit 关于处理环保行动联盟和动物解放阵线游击队的任命书 委任状 Uke 集团文化部部长兼emir 大酋长圣旨到!! In god we trust ,Emir Decree大酋长圣旨:: En ...

  2. docker save提示no space left on device错误

    使用df -h看了看,硬盘的确是够用的,于是排除了是硬盘容量的问题. 再细看错误提示: 目录是/var/lib/docker/tmp/docker-export-xxxx/xxxxx,猜测是docke ...

  3. Git入门到高级系列1-git安装与基础命令

    视频课程地址 腾讯课堂 为什么要进行项目文件的版本管理 代码备份和恢复 团队开发和协作流程 项目分支管理和备份 git 是什么? git是一个分布式的版本控制软件.版本控制是一种记录一个或若干文件内容 ...

  4. delphi怎样把子窗体显示在pagecontrol的tabsheet

    https://bbs.csdn.net/topics/391980918 unit Unit1; interface uses Winapi.Windows, Winapi.Messages, Sy ...

  5. netMarketing类库: 类库说明

    这个类库是作者工作中使用的私人类库,本类库适用于自动化行业的软件工程师使用.如果大家在使用中有任何疑问和建议欢迎联系作者, 或者在页面留言. (一) 引用类库 本类库的环境为.net framewor ...

  6. RTT(往返时间)和RPC

    RTT(Round-Trip Time)往返时间在计算机网络中它是一个重要的性能指标.表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认,不包含数据传输时间)总共经 ...

  7. mysql 批量导入 Packets larger than max_allowed_packet are not allowed

    解决方法  :http://blog.csdn.net/gtosky4u/article/details/8581281

  8. excel函数vloopup使用方法

    邮件处理,查找null手机号码  G1=VLOOKUP(F1,A:B,2,FALSE)      H1=VLOOKUP(F1,A:F,7,FALSE)参数1是:查找列,参数2是:范围,参数3是:查找的 ...

  9. Mac下,如何把项目托管到github

    以前一直使用的是svn,如下图: 附个下载链接:链接: https://pan.baidu.com/s/1nv6z5XJ 密码: pwqe:不太熟悉的小伙伴可以参考我写的一篇本地搭建svn服务器的博客 ...

  10. 使用Newtonsoft将DataTable转Json

    Newtonsoft提供的将DataTable转成Json: /// <summary> /// DataTable转Json /// </summary> /// <p ...