20155315 2016-2017-2 《Java程序设计》第四周学习总结
教材学习内容总结
1.继承与多态
- Java中只有单一继承,也就是只能有一个父类;
多态即指一个父类可由多个子类继承。
继承可以复用代码,更大的用处是实现「多态」。
封装是继承的基础,继承是多态的基础
也就是说,多态与继承的结构就相当于是一个树形图。父类是结点而子类是树叶。
2.覆盖与重载
- 覆盖:重写父类方法时返回值类型必须一致;权限只能往大了改,不能越改越小;
- 重载:返回值及定义的类型和数量可以不一致;权限可修改;与覆盖一样方法的名称必须一致。
3. super与this
- super调用的是父类中的方法
- thisthis表示当前对象,也就是当前类对象。
4. 继承与接口
- 继承强调“是一种”的关系,指的是某一种特定的类。尽管在程序编译的时候不会出错,但是逻辑上会有很大的误会。在接口中也能使用继承。
- 接口是定义一种行为但不定义操作。接口操作有“拥有行为”的意思。
5.匿名内部类与Lambda
Lambda表达式是某些匿名内部类的简略写法,只能用来取代函数接口的简写。能够使用Lambda的依据是必须有相应的函数接口。
6.Enum
枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。enum定义了类,这其中列举的常熟实际上是public static final,是枚举类型实例,无法撰写程序直接实例化枚举类型,只有类中可以实例化。
教材学习中的问题和解决过程
问题1:Java中有抽象方法的类一定是抽象类,但抽象类中的方法不一定都是抽象方法。
解决1:查找抽象类与抽象方法的关系,抽象类的特点是必须有abstract关键字修饰,不可以通过new来创建对象。在抽象类中,可以有非抽象方法。或者说,有抽象方法就是抽象类,但是在抽象类中可以定义其他方法,不过不能被实例化。
问题2:接口与抽象类的区别
解决2:查找资料抽象类是继承的,一次只进行一种操作。拿书上的例子(P195)来看,鱼会游泳,定义Fish是抽象类,这之中就可以定义任何一种鱼作为Fish的子类,而人的话不属于Fish,不能用继承,这时候就要定义Swimmer接口,等待具体操作。
代码调试中的问题和解决过程
问题1:
程序1

解决1:
程序2
protected是表示在继承关系中的访问权限的,所以它用来修饰那些被继承的方法和属性。外部类只有public和默认两种修饰符。修改顶层类权限,将protected删去,程序可以运行。

问题2:
程序3

解决2:
程序4依旧是权限修饰出现问题,修改权限为public,运行成功,输出99。

代码托管
- 用statistics脚本查看代码行数

- 代码提交结果

上周考试错题总结
- 1.填空:Linux Bash中,(++grep++ )命令可以进行全文搜索。理解情况:在前几周的考试中,我通过错题和查找资料了解了find的用法,但是grep比较少接触到,因此这次题目出来之后,我上网查找了grep与find的区别。grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来;find在目录结构中搜索文件,并执行指定的操作。也就是说,grep是查找匹配条件的行,find是搜索匹配条件的文件。
- 4.填空:System.out.println(“”+52+25);的结果是(++5225++)理解情况:在Java中,“+”即代表加法也代表连接。若输出引号在前,表示之后的数字是连接的关系;过输出引号在后,则表示之前的数字先相加再输出。
- 13.CH04 填空:可以使用java.util.Arrays的(++fill()++)方法把数组初始化成相同的值。理解情况:fill()是一个填充数组的方法,若数组无初始值,就可用此方法初始化。
- 19.CH04 填空:“30”转化为byte类型的30的语句是(++Byte.parseByte(“30”);++)。理解情况:使用“类型.parse类型(number)”将字符串剖析为基本类型。
- 24.CH05 判断:Java中类总会有默认构造方法。(++X++)理解情况:只有编译程序自动加入的构造函数,才是默认构造函数;如果自行撰写了构造函数,编译程序就不会自动建立默认构造函数。因此,Java中类不总有默认构造方法。
收获
这周我通过老师的博客学习了用JDB调试程序。学习第6、第7章,发现这两章的学习主要还是概念的学习,尤其是继承、多态与接口的关系。将课后习题先自己做再编译,更加深了我的理解。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 20/20 | 1/1 | 10/10 | 安装了JDK、IDEA和Git,写了第一个Java程序 |
| 第二周 | 97/117 | 2/3 | 20/30 | 用Linux上传代码,熟悉修改文件的命令行 |
| 第三周 | 336/453 | 2/4 | 35/65 | 在Linux上安装JDK和IDEA,更熟悉vi的操作指令以及修改时需要注意的地方。 |
| 第四周 | 851/1304 | 1/5 | 25/90 | 学习用JDB调试程序 |
- 计划学习时间:20小时
- 实际学习时间:25小时
参考资料
20155315 2016-2017-2 《Java程序设计》第四周学习总结的更多相关文章
- Java程序设计第四周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 答:①String类是final类,不能定义String的子类. ② instanceof ...
- 对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈
对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈 “这部分同学博文总结没有写,实验作业没有提交.”——1.关于博文作业.实验作业教学功能的正解:学习知识.暴露问题.衔接课上.2 ...
- 杨其菊201771010134《面向对象程序设计(java)》第四周学习总结
<面向对象程序设计(java)> 第四周学习总结 第一部分:理论知识 1.类与对象 a.类(class)是构造对象的模板或蓝图.由类构造对象的过程称为创建类的实例: java中类声明的格式 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第四周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第四周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-da ...
- 20155318 2016-2017-2 《Java程序设计》第九学习总结
20155318 2016-2017-2 <Java程序设计>第九学习总结 教材学习内容总结 学习目标 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义泛型 ...
- 《Java程序设计》第二学习总结
<Java程序设计>第二学习总结 教材学习内容总结 类型 byte(字节) shot(短整型) int(整型) long(长整型) float(浮点型) double(双精度) char( ...
- 20145304 刘钦令 Java程序设计第二周学习总结
20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...
- 20145304 刘钦令 Java程序设计第一周学习总结
20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...
- 20145120黄玄曦 《java程序设计》 寒假学习总结
1和2.我对未来规划不多,我认为好好学习积累知识能帮助我应对未来的挑战,这是我的学习动力之一,此外,了解新知识满足好奇心也是我的主要的学习动力. 3.我认为专业课学习比公务员考试重要,我认为专业知识是 ...
- 201621123007 Java程序设计第一周 学习总结
第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...
随机推荐
- TCP/IP 协议图--传输层中的 TCP 和 UDP
TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP. TCP 是面向连接的.可靠的流协议.流就是指不间断的数据结构,当应用程序采用 TCP 发送消息时,虽然可以保证发送的顺序,但 ...
- codeforces 812E Sagheer and Apple Tree(思维、nim博弈)
codeforces 812E Sagheer and Apple Tree 题意 一棵带点权有根树,保证所有叶子节点到根的距离同奇偶. 每次可以选择一个点,把它的点权删除x,它的某个儿子的点权增加x ...
- MyBatis(2)-全局配置文件
本文的代码是在MyBatis(1)-简单入门基础之上进行学习的,如有不懂请先看此博文MyBatis(1)-简单入门! 1)配置文件的安装 --->在联网的情况下,点击去下载http://myba ...
- 【转】如何开发自己的HttpServer-NanoHttpd源码解读
现在作为一个开发人员,http server相关的内容已经是无论如何都要了解的知识了.用curl发一个请求,配置一下apache,部署一个web server对我们来说都不是很难,但要想搞清楚这些背后 ...
- 无网络环境下使用docker加载镜像
无网络环境下使用docker加载镜像 你需要做的主要有3步骤: 先从一个有网络的电脑下载docker镜像 [root@localhost ~]# docker pull hub.c.163.com ...
- [转]未能加载文件或程序集 CrystalDecisions.Web Version=10.2.3600解决方法
找到你开发的机器上VS安装目录中的SDK\v2.0\BootStrapper\Packages\CrystalReports\CRRedist2005_x86.msi和SDK\v2.0\BootStr ...
- loadrunner脚本中参数化和返回值输出log到外部文件
loadrunner脚本中参数化和返回值输出log到外部文件 很多时候,我们在做性能测试之前,需要造数据,但是使用的这些参数化数据和生成的返回数据在后面的测试都会用的,所以我们需要在造数据过程中,将参 ...
- cocos2d-x 3.x 物理碰撞机制
近期又弄了物理引擎.写一下吧,以下有在其它博客学习到的知识.加上自己的理解,总结下. cocos2d-x 3.X 中全新的封装的物理引擎给了开发人员最大的便捷,你不用再繁琐与各种物理引擎的细节,全然的 ...
- 利用kage把msf变成可视化远控平台
项目下载https://github.com/WayzDev/Kage/releases 这里用kali系统演示 1,先下载kage: 2,右击给予执行权限 3,启动msf msfconsole -q ...
- Qt图标自定义
https://mp.csdn.net/postedit/83449333 参考连接