20155236 2016-2017-2 《Java程序设计》第四周学习总结

教材学习内容总结

1.继承基本上就是避免多个类间重复定义共同行为。
继承的三个好处:减少代码冗余;维护变得简单;扩展变得容易。
构造方法不能被继承。
2.s-a指的是类的父子继承关系,中文称为“是一种”关系。
多态:用抽象讲法解释,就是使用单一接口操作多种类型的对象。
3.被声明为protected的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。与我们熟知的关键字public之间来说,它的权限较小。
4.如果类有继承关系,在创建子类实例后,会先进行父类定义的初始流程,再进行子类中的初始流程,也就是创建子类实例后,会先执行父类构造函数定义的流程,再执行子类构造函数定义的流程。
5.Java中所有对象一定是一种Object.在Java中,自来只能继承一个父类,如果在定义类的时候没有指定要继承哪一类,那么这个类就一定是继承。
6.类要操作接口,必须使用implements关键字。操作某接口时,对接口中定义的方法有两种处理方式,一是操作接口中定义的方法,二是再度将该方法标示为abstract。
7.临时继承某个类或操作某个接口并建立实例,可使用匿名内部类:new 父类()|接口(){// 类本体操作 };。

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

  • 在编译第二个程序时,因为类的关系导致无法编译,于是下载了idea,这上面很方便,把每个代码放入同一project里问题就可以解决。

  • 检查多态语法逻辑是否正确,方式是从右向左读,即右边类型是不是左边类型的子类?不是的话会编译失败,如果加扮演cast语法,虽然可以通过编译,但是执行时是扮演失败,会抛出classCastException.

  • 在drawfight()方法中声明的role类型的参数,方法中调用的,到底是Role中定义的fight()还是个别子类中定义的fight()?
    Swordsman上挂有Role的牌子,我们只是要求有Role牌子的对象攻击,那么发动攻击的对象就是Swordsman实例。我们所写的drawfight(Swordsman)意味着,我们此次操作的是挂有role牌子的Swordsman实例。

  • 想问一下老师,什么叫做操作抽象方法?

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

  • 在“重新定义行为”这一节中,我们应先将role类中添加fight()方法,再给Swordsman与Magician两个子类中加入对于fight的描述。因为有了idea,所以我们可以统一修改role。

  • 想问一下老师,这个程序我按照书上的打下来后,并不能停止访客名称的录入,无法输出访客名单= =不知道为什么。

代码托管

  • 代码提交过程截图:
  • 代码量截图:

上周考试错题总结

  • 填空:Linux Bash中,(grep)命令可以进行全文搜索。
    grep命令能使用正则表达式搜索文本,并把匹配的行打印出来。
  • 判断:Java中类总会有默认构造方法。(X)
    对于java而言,如果每个类中,你不先写构造方法,它都默认存在一个无参的构造方法。故本题错。

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

子类和父类中定义某个方法时,必须保持一致,不然就会出现行为丢失。但我们现在可以在定义方法前加上@Override去要求编译程序检查。感觉这周的内容,自学的话并不能很懂。。。老师能不能在课堂上讲一下重点,我有点懵逼了。。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 20/20 1/1 10/10
第二周 58/78 1/2 6/16
第三周 200/278 1/3 10/26
第四周 660/938 1/4 10/36

20155236 2016-2017-2 《Java程序设计》第四周学习总结的更多相关文章

  1. Java程序设计第四周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 答:①String类是final类,不能定义String的子类. ② instanceof ...

  2. 对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈

    对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈 “这部分同学博文总结没有写,实验作业没有提交.”——1.关于博文作业.实验作业教学功能的正解:学习知识.暴露问题.衔接课上.2 ...

  3. 杨其菊201771010134《面向对象程序设计(java)》第四周学习总结

    <面向对象程序设计(java)> 第四周学习总结 第一部分:理论知识 1.类与对象 a.类(class)是构造对象的模板或蓝图.由类构造对象的过程称为创建类的实例: java中类声明的格式 ...

  4. 201871010106-丁宣元 《面向对象程序设计(java)》第四周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第四周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-da ...

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

    20155318 2016-2017-2 <Java程序设计>第九学习总结 教材学习内容总结 学习目标 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义泛型 ...

  6. 《Java程序设计》第二学习总结

    <Java程序设计>第二学习总结 教材学习内容总结 类型 byte(字节) shot(短整型) int(整型) long(长整型) float(浮点型) double(双精度) char( ...

  7. 20145304 刘钦令 Java程序设计第二周学习总结

    20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...

  8. 20145304 刘钦令 Java程序设计第一周学习总结

    20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...

  9. 20145120黄玄曦 《java程序设计》 寒假学习总结

    1和2.我对未来规划不多,我认为好好学习积累知识能帮助我应对未来的挑战,这是我的学习动力之一,此外,了解新知识满足好奇心也是我的主要的学习动力. 3.我认为专业课学习比公务员考试重要,我认为专业知识是 ...

  10. 201621123007 Java程序设计第一周 学习总结

    第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...

随机推荐

  1. 简单复利计算c语言实现

    #include<stdio.h>#include<math.h>float i; //利率 float p; //期初金额 float F; //未来值 int n; //期 ...

  2. (很难啊)如何实时获取DBGrid 中当前单元格输入的内容? [问题点数:100分,结帖人yifawu100]

    如何获取DBGrid 中当前单元格输入的内容? 还没输入完成,我想实时获取 Cell中的内容,以便作其他处理,用什么事件呢? 所以Field的Onchange事件是没用的. DBGrid1.Selec ...

  3. Linux命令01

    Linux简介及Ubuntu安装 Linux,免费开源,多用户多任务系统.基于Linux有多个版本的衍生.RedHat.Ubuntu.Debian 安装VMware或VirtualBox虚拟机.具体安 ...

  4. nowcoder 203A Knight(贪心+打表)

    题目链接 题目描述 有一张无限大的棋盘,你要将马从(0,0)移到(n,m). 每一步中,如果马在(x,y),你可以将它移动到(x+1,y+2),(x+1,y-2),(x-1,y+2),(x-1,y-2 ...

  5. Alternate Task UVA - 11728 (暴力。。分解质因子)

    题意: 输入一个正整数S,(S  <= 1000)求一个最大的正整数N,使得N的所有正因子之和为S. 解析: ..求1000以内的所有数的正因子和 ...输出.. #include <io ...

  6. 学习Spring Boot:(九)统一异常处理

    前言 开发的时候,每个controller的接口都需要进行捕捉异常的处理,以前有的是用切面做的,但是SpringMVC中就自带了@ControllerAdvice ,用来定义统一异常处理类,在 Spr ...

  7. BZOJ2159 Crash 的文明世界 【第二类斯特林数 + 树形dp】

    题目链接 BZOJ2159 题解 显然不能直接做点分之类的,观察式子中存在式子\(n^k\) 可以考虑到 \[n^k = \sum\limits_{i = 0} \begin{Bmatrix} k \ ...

  8. 第七周linux学习

    <Linux内核分析> 一.可执行程序是怎么得来的? 编译器预处理(负责把include的文件包含进来及宏替换等工作):编译成汇编代码:编译器编译成目标代码:再链接成可执行文件:操作系统加 ...

  9. 文件查找 locate 和 find

    locate locate命令依赖于一个数据库文件,系统默认每天会检索一次系统中的所有文件,然后将检索到的文件记录到数据库中; 在执行查找时,可直接到数据库中查找记录,所以locate比find反馈更 ...

  10. Linux下vim 快捷键

    vim按d表示剪切 按dd剪切一行 vim命令:命令模式 /关键字 n继续向下查找vim的多行注释: 1.按ctrl + v进入 visual block模式 2.按上下选中要注释的行 3.按大写字母 ...