学号 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. Java程序设计第四周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 答:①String类是final类,不能定义String的子类. ② instanceof ...

  2. 杨其菊201771010134《面向对象程序设计(java)》第四周学习总结

    <面向对象程序设计(java)> 第四周学习总结 第一部分:理论知识 1.类与对象 a.类(class)是构造对象的模板或蓝图.由类构造对象的过程称为创建类的实例: java中类声明的格式 ...

  3. 对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈

    对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈 “这部分同学博文总结没有写,实验作业没有提交.”——1.关于博文作业.实验作业教学功能的正解:学习知识.暴露问题.衔接课上.2 ...

  4. 201871010106-丁宣元 《面向对象程序设计(java)》第四周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第四周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-da ...

  5. 20155318 2016-2017-2 《Java程序设计》第九学习总结

    20155318 2016-2017-2 <Java程序设计>第九学习总结 教材学习内容总结 学习目标 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义泛型 ...

  6. 《Java程序设计》第二学习总结

    <Java程序设计>第二学习总结 教材学习内容总结 类型 byte(字节) shot(短整型) int(整型) long(长整型) float(浮点型) double(双精度) char( ...

  7. 20145304 刘钦令 Java程序设计第二周学习总结

    20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...

  8. 20145304 刘钦令 Java程序设计第一周学习总结

    20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...

  9. 20145120黄玄曦 《java程序设计》 寒假学习总结

    1和2.我对未来规划不多,我认为好好学习积累知识能帮助我应对未来的挑战,这是我的学习动力之一,此外,了解新知识满足好奇心也是我的主要的学习动力. 3.我认为专业课学习比公务员考试重要,我认为专业知识是 ...

  10. 201621123007 Java程序设计第一周 学习总结

    第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...

随机推荐

  1. c#中栈和堆的理解

    之前对栈(stack)和堆(heap)的认识很模糊,今天看了一篇关于堆栈的文章<译文---C#堆VS栈>后,仿佛有种拨开云雾见青天的感觉,当然只是一些浅显的理论的认识,这里做一些简单的记录 ...

  2. js button onclick动作赋值操作

    昨天遇到的小问题 记录下 主要的东西其实都在这里:http://www.jb51.net/article/35107.htm 我稍微写一下: <script> function show( ...

  3. 中国区Windows Azure 提供的功能以及与国外的差异

    当前中国服务提供的功能 目前,中国服务中包括以下 Azure 功能. 计算 - 虚拟机(用于 IaaS 服务) 计算 - 云服务(用于 PaaS 服务) 计算 - 网站 数据服务 - 存储(用于 Bl ...

  4. EasyUI - DataGrid 组建 - [ 排序功能 ]

    效果: 红框的字段看,为设置了,列排序,向后台Post数据sort/order. 原理:向后台POST数据,sort/post数据. html代码: <table id="tab&qu ...

  5. Kerberos主从配置文档

    Kerberos主从配置文档   1. Kerberos主从同步机制 在Master上通过以下命令同步数据: kdb5_util dump /var/kerberos/krb5kdc/slave_db ...

  6. The Little Prince-12/07

    The Little Prince-12/07 "My little man, where do you come from? What is this ‘where I live,‘ of ...

  7. 00006 - Linux中使用export命令设置环境变量

    功能说明:设置或显示环境变量. #################################################################################### ...

  8. Java基础之断言

    断言是在Java 1.4中引入的.它能让你验证假设.如果断言失败(即返回false),就会抛出AssertionError(如果启用断言). 什么时候使用断言? 断言不应该用于验证输入数据到一个pub ...

  9. python 项目自动生成 requirements.txt 文件

    生成 requirements.txt 文件的目的: 安装 pthon 项目时需要把此项目所有依赖的第三方包安装完成.项目依赖的第三方包统一放到 requirements.txt 文件中即可. 怎么自 ...

  10. Ubuntu 无线驱动问题

    最近一次更新系统后开机发现电脑只能连有线网络连不上无线网络.我平时都是连无线网络,没有买网线.所以查了下无线驱动相关问题资料,发现是由于更新系统造成无线网卡驱动莫名不见了.刚开始还以为是电脑将无线禁用 ...