20175320 2018-2019-2 《Java程序设计》第4周学习总结

教材学习内容总结

  • 本周学习了教材的第五章的内容。在这章中介绍了子类与继承,着重讲了子类继承的规则以及使用superfinal关键字的使用方法,介绍了方法的重写以及基于重写的面向抽象的编程方法。
  • 继承是一种由已有的类创建新类的机制,子类继承一般类的属性和行为,并根据需要增加它自己的新的属性和行为。
  • java使用关键字extends来定义一个类的子类,并不支持多重继承,Object是所有类的祖先类。
  • 子类和父类在同一个包中,子类继承其父类中不是private的变量和方法,子类和父类不在同一个包中时,子类只继承父类中的protected和public访问权限的变量及方法。
  • 当用子类的构造方法创建一个子类的对象时,不仅子类中声明的成员变量被分配了内存,而且父类的成员变量也都分配了内存空间。子类中还有一部分方法是从父类继承的,这部分方法却可以操作这部分未继承的变量。
  • instanceof运算符左面的操作元是对象,右面的操作元是类,当左面的操作元是右面的类或其子类所创建的对象时,instanceof运算的结果是true,否则是false。
  • 子类可以通过声明与父类相同名字的变量来隐藏继承的成员变量,通过重写可以隐藏已继承的方法。
  • 重写时方法的类型和父类的方法的类型一致或者是父类的方法的类型的子类型,并且这个方法的名字、参数个数、参数的类型和父类的方法完全相同,重写方法既可以操作继承的成员变量、调用继承的方法,也可以操作子类新声明的成员变量、调用新定义的其他方法,但无法操作被子类隐藏的成员变量和方法。
  • 子类一旦隐藏了继承的成员变量,那么子类创建的对象就不再拥有该变量,该变量将归关键字super所拥有。
  • 当用子类的构造方法创建一个子类的对象时,子类的构造方法总是先调用父类的某个构造方法,由于子类不继承父类的构造方法,因此,子类在其构造方法中需要使用super来调用父类的构造方法。
  • final关键字可以修饰类、成员变量和方法中的局部变量。final类不能被继承,final方法不允许子类重写,成员变量或局部变量如被修饰为final,则改变量为一常量,且需要在声明时指定该常量的值。
  • 对象的上转型对象是子类负责创建的,上转型对象可以访问子类继承或隐藏的成员变量,也可以调用子类继承的方法或子类重写的实例方法。上转型对象操作子类继承的方法或子类重写的实例方法,如果子类重写了父类的静态方法,那么子类对象的上转型对象不能调用子类重写的静态方法,只能调用父类的静态方法。
  • 多态性就是指父类的某个方法被其子类重写时,可以各自产生自己的功能和行为。
  • 对于abstract方法,只允许声明,不允许实现,而且不允许使用final和abstract同时修饰一个方法或类,也不允许使用static修饰abstract方法,即abstract方法必须是实例方法。
  • 面向抽象编程可以使程序的设计者把主要的精力放在程序的设计上,而不必拘泥于细节的实现。
  • 使用多态进行程序设计的核心技术之一是使用上转型对象,即将abstract类声明的对象作为其子类对象的上转型对象,那么这个上转型对象就可以调用子类重写的方法。

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

  • 问题1:不知道例子5_7super.n = n;中的super关键字是否是必要的。
  • 问题1解决方案:将该语句去掉后进行编译运行,发现结果与代码修改前是一致的。
  • 问题2:不理解为什么static不可以修饰abstract方法。
  • 问题2解决方案:经查找书本了解到上转型对象不能调用子类重写的静态方法。

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

  • 问题1:产生了如图所示错误。
  • 问题1解决方案:发现是错误行的上一行忘记添加了分号。
    -问题2:产生了如图所示错误。
  • 问题2解决方案:发现是没有切换到正确的文件夹中。

代码托管

上周考试错题总结

  • 如果类中没有编写构造方法,系统会默认该类只有一种构造方法。
  • 忽略了B选项的正确性。

其他(感悟、思考等,可选)

Java编程语言中有许多内容是环环相扣的,有时一个问题的答案可以在前面的知识点中找到,这就要求我们要熟悉基础概念,弄清楚每一个关键词,每一条语句的限制条件。另外一定要多多练习,这样才能发现一些意想不到的问题,且在使用中加深对关键词以及语法的理解。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 1002/2407 1/5 29/87

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难,软件工程 估计方法

  • 计划学习时间:20小时
  • 实际学习时间:25小时
  • 改进情况:多看看现代软件工程 课件 软件工程师能力自我评价表

参考资料

  • Java学习笔记(第8版)

转载于:https://www.cnblogs.com/nameless-student/p/10579595.html

20175320 2018-2019-2 《Java程序设计》第4周学习总结相关推荐

  1. 20175317 《Java程序设计》第一周学习总结

    20175317 <Java程序设计>第一周学习总结 教材学习内容总结 本周学习了Java大致的开发步骤,完成了课件自带的习题. 学习了在windows与Linux系统下不同的编译方法,掌 ...

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

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

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

    20172318 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 在教材中基本明白了计算机系统的运行方式,了解了对于高级语言是使用是掌握好编程的关键,掌握了一 ...

  4. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  5. 20175208 《Java程序设计》第九周学习总结

    20175208 2018-2019-2 <Java程序设计>第九周学习总结 一.教材学习内容总结: 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系 ...

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

    20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...

  7. 20155313 2016-2017-2 《Java程序设计》第二周学习总结

    20155313 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 1.1 基本类型 整数:可细分为short整数(占2字节).int整数(占4字节)与long ...

  8. 20155226 2016-2017-2 《Java程序设计》第一周学习总结

    20155226 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 第一周主要学习了一二章的内容,也浏览了剩余章节,以下是本周主要学习内容总结 1.首先了解了[ ...

  9. 20172325 2018-2019-1 《Java程序设计》第二周学习总结

    20172325 2018-2019-1 <Java程序设计>第二周学习总结 教材学习内容总结 3.1集合 集合是一种聚集.组织了其他对象的对象.集合可以分为两大类:线性集合和非线性集合. ...

  10. 张旭升20162329 2006-2007-2 《Java程序设计》第一周学习总结

    20162329 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 通过打书上的代码熟悉了Java编程的基本过程 教材学习中的问题和解决过程 1.因为我的虚拟机 ...

最新文章

  1. MAT之GA:GA优化BP神经网络的初始权值、阈值,从而增强BP神经网络的鲁棒性
  2. 郑州银行评选神策数据为“最佳年度合作伙伴”
  3. 【收藏】严重影响IDEA启动速度的插件
  4. 利用HTML5 canvas合并图片并解决Filaed to execute 'toDataURL' on 'HTMLCanvasElement'异常
  5. 使用Maven进行Selenium测试自动化
  6. 使用系统规则测试System.in和System.out
  7. emacs中安装markdown-mode
  8. Golang切片的三种简单使用方式及区别
  9. PP视频怎么设置退出程序时清空本地播放记录
  10. R语言如何并行处理[parallel package][向量化操作并行优化]
  11. ASP.NET加密和解密数据库连接字符串
  12. JS中的变量和输入输出
  13. c语言float和char几个字节,C语言当中int,float,double,char这四个有什么区别?
  14. Multisim使用入门教程
  15. Mac上批量修改文件的编码格式
  16. SpringBoot中使用Aspect实现切面,超详细
  17. java实现阿里云短信验证
  18. Oracle12.2c统一审计(unified auditing)六问
  19. 物联网(IOT) 数据库需求和当前技术解析
  20. 通讯桥接器NET30-FX在三菱编程软件GX Works2中的应用

热门文章

  1. 配置docker静态IP地址
  2. JS 实现2+2=5的代码 实现原理解析
  3. ASP.NET Hashtable输出JSON格式数据 - 贵源网络 - 博客园
  4. 风雨网规路:跌倒了,是件坏事吗?
  5. ruby,rails环境架设配置 转载一文章.
  6. android:descendantFocusability用法简析
  7. Android 单击+双击+短按+长按 逻辑
  8. 回文字符串—回文子串—中心扩散法
  9. python的os模块基本使用
  10. 消息队列—主要消息中间件优势对比