20165215 2017-2018-2 《Java程序设计》第4周学习总结
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:例子6
System.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周学习总结的更多相关文章
- 20165215 2017-2018-2 《Java程序设计》第九周学习总结
20165215 2017-2018-2 <Java程序设计>第九周学习总结 教材学习内容总结 URL类 URL 类是 java.net 包中的一个重要的类,使用 URL 创建对象的应用程 ...
- 20165215 2017-2018-2《Java程序设计》第一周学习总结
20165215 2017-2018-2 <Java程序设计>第一周学习总结 教材学习内容总结 跟随网课学习了<Java2 实用教程>的第一章,进行了基础的编译练习 在Ubun ...
- 学号 20175212 《Java程序设计》第九周学习总结
学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
随机推荐
- 代码控如何实现配置fiddler
很多小哥哥总觉得测试点点点很low,总想码代码.那么fiddler除了一些手动设置外,还可以进行丰富的代码编写,用以完成任务. 打开fiddler,工具栏选择Rules->Customize R ...
- 20180318 一个VS2015运行DataTable问题
1. 环境VS 2015 社区版,使用"DataTable" 为了即使查看DataTable中的数据,点击放大镜 ,加载提示错误. 解决方案: 第一步: 第二步: “选项” -- ...
- pt-table-checksum 使用实践
在另外部署的机器上执行: pt-table-checksum h='192.168.122.47',u='root',p='cc.123',P=3306 -d cat --nocheck-r ...
- MySQL准入规范及容量评估
一.数据库设计 1.表结构设计 -表中的自增列(auto_increment属性)推荐使用bigint类型 -首选使用非空的唯一键, 其次选择自增列或发号器 不使用更新频繁的列,尽量不选择字符串列,不 ...
- 让IIS6支持任意扩展名和未知扩展名的下载
IIS6的安全性提高了很多,为了防止扩展名欺骗带来的安全性问题,限制了扩展名MIME类型. IIS6 只为对具有已知文件扩展名的文件的请求提供服务.如果请求内容的文件扩展名未映射到已知的扩展,则服务器 ...
- Repository mirror 解析
1 Repository(仓库) 1.1 Maven仓库主要有2种: remote repository:相当于公共的仓库,大家都能访问到,一般可以用URL的形式访问 local repository ...
- shell 脚本中如何添加多行注释
shell中有时会用到多行注释,一种时vim的快捷方式,我不太熟悉,一种是如下 :<<! ......! 使用: :<< !.......! 比如: :<< ! ...
- 2019年UI和UX设计趋势:大概是最全的汇总了!
朋友们,很快,2018就要跟我们说
- Linux性能优化gprof使用
gprof用于分析函数调用耗时,可用之抓出最耗时的函数,以便优化程序. gcc链接时也一定要加-pg参数,以使程序运行结束后生成gmon.out文件,供gprof分析. gprof默认不支持多线程程序 ...
- export,import ,export default 彻底弄痛
ES6模块主要有两个功能:export和import 说白了就是一个淡出一个导入,就相当于以前的公共js样,哪个页面要用,就script 引入这个js ,然后 无耻的调用这个js中的方法了. ex ...