20175221 《Java程序设计》第5周学习总结
20175221 《Java程序设计》第5周学习总结
教材学习内容总结
接口的定义
接口声明:interface 接口名
- 接口体中只可以有常量,而没有变量
- 接口体中只有抽象方法(可省略public final static abstract)
- 接口的实现
- 实现格式:class 类名 implements 接口名(可以实现一个或多个接口)
- 重写接口中的方法:
- 非抽象类:必须要重写接口中的所有方法,且加上public
- 抽象类:可以重写,也可以直接拥有其方法
- 接口的UML图、回调、多态
- 接口的UML图中,类是起始端,接口是终止端。
- 接口的回调是指,把可以实现接口的的类的对象引用赋给接口变量,该接口变量就可以调用被类实现的接口方法
- 接口也是一种数据类型,接口变量无法调用类中的其他的非接口方法。
- 接口的多态是指,变量在回调发方法时可能可能具有多种形态
- abstract和interface的关系
- 接口中只可以有常量,不能有变量
- abstract类和接口都可以有abstract方法
- abstract类中可以有非abstract方法,接口不可以
教材学习中的问题和解决过程
问题1:
父类中有个public void fight(),子类中有个public void fight( Weapon w),这两个方法的关系是Override?
问题1解决方案:
子类重写的方法,方法名字、参数个数、参数类型和父类的方法完全相同。这里是重载。
- 问题2:
- 如何理解在实现接口时,可以实现一个或多个接口
- 问题2解决方案:
- 查阅资料知
- 接口是抽象的最高境界
- Java除了平台无关的特点外,从语言的角度来看,Java的接口是该语言的又一特色。Java舍弃了C++语言中多重继承的机制,使得编写的代码更加健壮和便于维护,因为多继承不符合人的思维模式,就像生活中,人只有一个父亲,而不是多个。
- 尽管多继承可以使编程者更加灵活的设计程序,但是程序会显得难于阅读和维护。
- Java不支持多继承性,即一个类只能有一个父亲。通过继承方式只能得到一个多态。单继承性使得Java简单,易于管理和维护。那么为了克服Java单继承的缺点,Java使用了接口,一个类可以实现多个接口,Java的接口更加符合人的思维方式。
代码调试中的问题和解决过程
问题1:对实现接口回调的一些理解
问题1解决方案:
编写代码进行测试
- 首先创建接口test:

- 用Tom 实现这个接口,重写相应的方法

- 编写主类并运行结果

- 感觉就是和上转型对象实现的多态非常相似
代码托管(https://gitee.com/zxjacdl/zxj175221/tree/master/six.1)

statistics.sh脚本的运行结果截图
上周考试错题总结
错题1:
下列说法错误的是:
A. 继承的成员变量或方法的访问权限可以由子类重新定义。
B. 若子类和父类不在同一包,子类只继承父类中的protected和public访问权限的方法作为子类的方法。
C. 继承关系的UML类图用一个实线连接两个类,起始端是子类,重点端是父类,终点端使用空心三角形表示实线的结束。
D. 如果在类本身创建一个对象,则该对象不可以通过“.”运算符访问继承的protected变量。
错题1解决方案:
选 A D
A:继承后访问权限保持不变。
D:可以通过才对。.
其他(感悟、思考等,可选)
- 第六周的教材内容相对较少
- 于是趁着这个机会
- 把前边些天四五章还不算太掌握的内容又熟悉了一遍
- 敲了一下代码
- 总体感觉这周学习效率还挺高。
学习进度条(四月份继三月份)
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 8篇 | 100小时 | |
| 第一周 | 13/13 | 1/1 | 12/12 | |
| 第二周 | 309/322 | 1/2 | 13/25 | |
| 第三周 | 614/923 | 1/3 | 15/40 | |
| 第四周 | 384/1379 | 1/4 | 12/52 | |
| 第五周 | 565/1954 | 1/5 | 12/64 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。 耗时估计的公式 :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:12
实际学习时间:12
改进情况:继续保持稳定前进
(有空多看看现代软件工程 课件软件工程师能力自我评价表)
参考资料
[ Java 2 实用教程(第5版)]
- Java接口与多态简介(https://blog.csdn.net/zlambert/article/details/61420700)
20175221 《Java程序设计》第5周学习总结的更多相关文章
- 20175221 2018-2019-2 《Java程序设计》第一周学习总结
20175221 2018-2019-2 <Java程序设计>第一周学习总结 教材学习内容总结 本周通过观看书本配套视频,学到了如解释器,编译器等一些简单概念. 还懂得了java的一些简单 ...
- 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 ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
随机推荐
- 容器化系列 - 通过Grafana监测InfluxDB数据 on Docker
本文演示在Docker中运行Grafana和InfluxDB,并通过Grafana展示InfluxDB曲线图. 1 准备工作 1.1 安装Docker 请参考这里 1.2 下载镜像 $ docker ...
- C#开发WEBService服务 C++开发客户端调用WEBService服务
编写WEBService服务端应用程序并部署 http://blog.csdn.net/u011835515/article/details/47615425 编写调用WEBService的C++客户 ...
- c#二进制移位运算符 "<<"及">>","&","|","^"
移位运算符 & :按位与,其实与&&逻辑运算符有一致的地方: | :按位或,同样与||有类似的地方. ~:按位取反 ^:按位异或 <<:左移运算符 >> ...
- Java - String 的字面量、常量池、构造函数和intern()函数
一.内存中的 String 对象 Java 的堆和栈 对于基本数据类型变量和对象的引用,也就是局部变量表属于栈内存: 而通过 new 关键字和 constructor 创建的对象存放在堆内存: 直接的 ...
- 一道CTF题引发的思考——SSI注入
题目地址:http://210.32.4.22/index.php 一开始我一直考虑的用<!--#include file="文件"-->的格式进行读取文件,但是一直不 ...
- rm: cannot remove ‘overlay/’: Device or resource busy
umount /var/lib/docker/overlay #取消挂载就可以啦 rm -rf overlay/
- 好程序员web前端分享18个用CSS制作出来的东西
好程序员web前端分享18个用CSS制作出来的东西,与流行的看法相反,CSS不仅仅是用来提供一个WEB页面的基本风格,以使它看起来更有吸引力.还有很多其他的事情,CSS也可以做的很好.由于它创建动画和 ...
- L2-2 小字辈 (25 分)
本题给定一个庞大家族的家谱,要请你给出最小一辈的名单. 输入格式: 输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号.随后第二行 ...
- 【原创】IDEA一定要改的八条配置
引言 坦白说,我很少写这种操作类型的文章.因为这种文章没啥新意,大家操作步骤肯定是一样的.然而,我答应了我的同事小阳,给她出一篇!毕竟人家打算从Eclipse转IDEA了,于是以示鼓励,写一篇给她! ...
- Asp.Net Core SignalR 与微信小程序交互笔记
什么是Asp.Net Core SignalR Asp.Net Core SignalR 是微软开发的一套基于Asp.Net Core的与Web进行实时交互的类库,它使我们的应用能够实时的把数据推送给 ...