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

教材学习内容总结

chapter5

  • 子类与父类

    • 子类的定义使用关键字extends
    • 任何类都是Object类的子孙类,每个类(除了Object类)有且仅有一个父类,一个类可以有多个或零个子类
  • 子类的继承性
    • 如果子类和父类在同一个包中,子类继承父类中所有不是private的成员变量和方法
    • 当子类和父类不再同一个包中,子类只继承父类中的protected和public访问权限的成员变量和方法
  • 子类与对象
    • 当用子类的构建方法创建一个子类的对象时,父类的成员变量也都分配了内存空间
    • 子类对象可以调用继承的方法,操作没有继承的成员变量
  • 成员变量的隐藏和方法重写
    • 子类所声明的成员变量的名字和从父类继承来的成员变量的名字相同(声明的类型可以不同),在这种情况下,子类会隐藏所继承的成员变量
    • 子类继承的方法所操作的成员变量一定是被子类继承或隐藏的成员变量
    • 方法重写中,子类定义方法的名字、参数的个数、参数的类型必须和父类的方法完全相同(注意和方法重载的差别)
    • 重写父类的方法时,不允许降低方法的访问权限,但可以提高访问权限
  • super关键字
    • 子类不继承父类的构造方法
    • super必须是子类构造方法的头一句
  • final关键字
    • final类不能被继承,即不能有子类
    • 不允许子类隐藏可以继承的final方法
    • 如果变量被修饰为final,那它就是常量
  • 对象的上转型对象
    • 不可以将父类创建的对象的引用赋值给子类声明的对象
    • 如果子类重写了父类的某个实例方法后,上转型对象调用这个实例方法一定是调用了子类重写的实例方法
  • abstract方法只能出现在abstract类中
  • 如果一个非抽象类是某个抽象类的子类,那么它必须重写父类的抽象方法

    chapter6

  • 接口声明使用关键字interface
  • 接口体中只有常量没有变量,且只有抽象方法,常量和方法的访问权限一定都是public
  • 使用关键字implements声明类实现接口,如果实现多个接口,用逗号隔开接口名
  • 如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中的所有方法
  • 如果父类实现了某个接口,那么子类也就自然实现了该接口
  • 接口变量可以存放实现该接口的类的实例的引用,即存放对象的引用
  • 接口无法调用类中其它的非接口方法

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

  • 问题1:例子6System.out.println(t.intValue())中关键字intValue的用法
  • 问题1解决方案:intValue()是把Integer对象类型变成int的基础数据类型,相关知识点详见Java中 intValue,parseInt,Valueof 这三个关键字的区别
  • 问题2:第五章课后习题3(4),在我理解中代码3结果应为18,可是运行结果显示为98
    • 代码

    • 结果

  • 问题2解决方案:这题涉及到两个知识点,一是如果子类重写了父类的静态方法,那么子类对象的上转型对象只能调用父类的静态方法;二是如果子类重写了父类的某个实例方法后,上转型对象调用这个实例方法时一定是调用子类重写的实例方法。在题目中正确分析、理解这两个知识点问题便解决了

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

  • 问题1:调试第五章例子2时出现如下错误

  • 问题1解决方案:记清楚创建对象使用的格式为类名 对象名 = new 类名,减少输入错误的发生
  • 问题2:调试第五章例子6时出现如下错误

  • 问题2解决方案:补上intValue中漏掉的t即可

代码托管

(statistics.sh脚本的运行结果截图)

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

随着不断地深入学习,各个知识点间的联系和区别也渐渐显露出来,许多新学到的知识都需要结合之前学过的内容才能更好地理解。例如要注意区别本周所学的方法重写与上周所学的方法重载,学会比较abstract类与接口的异同等等。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 37/37 1/1 15/15
第二周 398/429 2/3 15/30
第三周 753/1167 1/4 20/50
第四周 1296/2109 2/6 20/70

参考资料

20165215 2017-2018-2 《Java程序设计》第4周学习总结的更多相关文章

  1. 20165215 2017-2018-2 《Java程序设计》第九周学习总结

    20165215 2017-2018-2 <Java程序设计>第九周学习总结 教材学习内容总结 URL类 URL 类是 java.net 包中的一个重要的类,使用 URL 创建对象的应用程 ...

  2. 20165215 2017-2018-2《Java程序设计》第一周学习总结

    20165215 2017-2018-2 <Java程序设计>第一周学习总结 教材学习内容总结 跟随网课学习了<Java2 实用教程>的第一章,进行了基础的编译练习 在Ubun ...

  3. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  4. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  5. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  6. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  7. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  8. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  9. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  10. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

随机推荐

  1. (4.28)for xml path 在合并拆分上的作用演示

    for xml path 用于合并与拆分 1.合并 很多时候需要在SQL Server中创建逗号分隔列表.这可以使用SQL Server的DOR XML PATH功能完成.与select语句一起使用时 ...

  2. magento开发手册之目录结构

    magento是一个很优秀的电商系统,很多朋友会用它部署自己的电商网站,少不了二次开发.下面我们随着ytkah来一起认识一下magento开发手册之目录结构吧. /app – 程序根目录 /app/e ...

  3. 火币网API文档——WebSocket API Reference

    订阅 KLine 数据 market.$symbol.kline.$period 成功建立和 WebSocket API 的连接之后,向 Server 发送如下格式的数据来订阅数据: { " ...

  4. 技巧:低版本VS打开高版本VS创建的工程

    错误一:当用低版本VS打开高版本VS创建的工程时,会出现: 方案:将该工程的解决方案文件的后缀由xxx.sln改成了xxx.txt然后,查看其内容如下: Microsoft Visual Studio ...

  5. IE8.0如何关闭启用内存保护帮助减少联机攻击?

    默认情况下,该选项卡是灰色的(表示用户不能直接修改),win7电脑可以通过“以管理员身份”运行 IE 来放开该功能,但个别电脑即便用这种方法仍无法解决,此时,您可以试试如下方法: 1.在“运行”框中输 ...

  6. 关于运行python脚本产生__pycache__

    是什么? 用python编写好一个工程,在第一次运行后,总会发现工程根目录下生成了一个__pycache__文件夹,里面是和py文件同名的各种 *.pyc 或者 *.pyo 文件. python脚本编 ...

  7. LINUX的DNS怎么设置?linux下如何修改DNS地址

    LINUX的DNS怎么设置?linux下如何修改DNS地址 https://jingyan.baidu.com/article/870c6fc32c028eb03fe4be30.html Linux下 ...

  8. syslog-ng内容讲解

    一.基础syslog-ng作为syslog的替代工具,可以完全替代syslog的服务,并且通过定义规则,实现更好的过滤功能.系统自带版本: 引用 # rpm -qa|grep syslog-ngsys ...

  9. node代码打包为 exe文件---端口进程关闭demo

    最近用到 java,用tomcat起的服务,经常服务关了,对应的进程还在跑,导致再次启动服务失败,需要手动关闭进程. 使用 dos命令虽然只有两行,总是输,也很烦. netstat -ano | fi ...

  10. 关于ASP.NET预编译(转自dudu)

    为什么要用预编译? 博客园博客程序中.aspx和.ascx文件总共加起来有3000多个(博客模板中有大量的.ascx文件).如果使用动态编译,每次只要更新bin文件夹中的任何一个dll文件,动态编译至 ...