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

教材学习内容总结

继承

6.1.1 继承共同行为

  • 定义:继承基本上就是避免多个类间重复定义共同行为。
  • 优点:1.提高了代码的复用性。2.让类与类之间产生了关系,才有了多态的特性。

    3.减少代码冗余;维护变得简单;扩展变得容易。
  • extend来继承父类。

6.1.2 多态与is-a

  • 多态定义:使用单一接口操作多种类型的对象。
  • is-a关系定义:子类只能继承一个父类,“是一种”关系。
  • 编译程序在=从右向左会检查,右边是不是左边的子类。
  • 可以在程序中加入语句强制默认为一种类型eg:Swordsman swordsman=(Swords) role1;
  • java语言中只支持单继承,不支持多继承。(由于多继承易带来安全隐患:当多个父类中定义了相同功 能,但功能内容不同时,子类对象不确定要运行哪一个。但是java保留这种机制,并用另一种体现形式来完成表示。多实现。)

6.1.3 重新定义行为

  • 定义:在继承父类之后,定义与父类中相同的方法部署,但执行内容不同。
  • 注意:在重新定义父类中某个方法时,子类必须撰写与父类方法中相同的签署。
  • JDK5之后支持标注,如果要重新定义某方法,加上@override,就不用担心错字问题。

6.1.4 抽象方法、抽象类

  • 内含抽象方法的类,一定要在class前标示abstract,该方法不用撰写{}区块,直接以;结束。
  • 子类继承抽象类,对于抽象方法有哪些做法?1.继续标示该方法为abstract2.操作抽象方法。

6.2 继承语法细节

6.2.1 protected成员

  • 被声明为protected的成员,想通报中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。
  • 依权限小至大来区分,就是private、无关键字、protectedpublic,若不知使用哪个,就先使用private

6.2.2 重新定义的细节

  • 如果想取得父类中的方法定义,可以在调用方法前,加上super关键字,但不能定义为private(因为这就限定只能在类内使用)。
  • 注意:对于父类中的方法权限,只能扩大但不能缩小。若原来成员public,子类中重新定义时不可为private或protected.
  • JDK5之后重新定义方法时,如果返回值类型是父类中方法返回值类型的子类,也是可以通过编译的。

6.2.3 再看构造函数

  • 如果子类构造函数中没有指定执行父类中哪个构造函数,默认会调用父类中无参数构造函数,若父类中只有有参数的构造函数,会出现编译错误。
  • this()super()只能择一调用,而且一定要在构造函数第一行执行。

6.2.4 再看final关键字

  • 定义:最终。class前如果使用了final关键字定义满么表示这个类是最后一个,不会再有子类,就是不能被继承。
  • 特点:1.可以修饰类、函数、变量。 2.被final修饰的类不可以被继承。3.被final修饰的方法不可以被复写。4.被final修饰的变量是一个常量,只能赋值一次。5.内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量。

6.2.5 java.lang.Object

  • 如果定义类时没有使用extends关键字指定继承任何类,那一定是继承java.lang.Object
  • 任何类追溯至最上层父类,一定就是java.lang.Object

6.2.5 垃圾收集

创建对象会占据内存,如果程序执行流程中已无法再使用某个对象,该对象就只是耗内存的垃圾。
JVM有垃圾收集机制,收集到的垃圾对象所占据的内存空间,会被垃圾收集器释放。
垃圾对象:执行流程中,无法通过变量参考的对象。

接口

7.1 何谓接口

  • 格式:interface{}
  • 接口中将出现“多继承”通过两一种形式体现出来,即“多实现”。
  • 接口是不可以创建对象的,因为有抽象方法。
  • 接口可以被类多实现,也是对多继承不支持的转换形式。java支持多实现。
多态中成员函数的特点——编译看左边,运行看右边。
在多态中成员变量的特点——无论编译和运行,都参考左边(引用型变量所属的类)。
在多态中静态成员函数的特点——无论编译和运行,都参考左边。

7.2接口语法细节

  • 接口中的public abstract可以省略
  • 接中可以使用extends继承接口,并且可以继承多个接口
  • 匿名内部类与Lambda
  • JDK8 前在匿名内部类中访问局部变量,则该局部变量必须为final

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

  • 最开始尝试编译运行Role与Swordman,点开run却没有
  • 这些并不是主程序,没有main入口。

代码托管

  • 代码提交过程截图:

  • 代码量截图:

上周考试错题总结

  • 填空:Linux Bash中,(grep )命令可以进行全文搜索。

    • 对Linux命令还是有很多没有掌握。
  • 填空:两个Integer对象比较大小,可以使用(comareTo())方法
    • 书上知识没有记住,误记成了equal(),现在已经掌握了、
  • 判断:Java中类总会有默认构造方法。(X)
    • 概念不牢。

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

-一周两章的内容确实不少,需要下更大功夫,更多的时间去理解,敲代码,不过感觉学到了游戏的初步小程序,感觉内心很满足,希望以后也可以编写自己的小游戏!

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 23/61
第四周 300/1300 2/9 20/81
  • 计划学习时间:23小时

  • 实际学习时间:15小时

20155319 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. Windows 下安装Python包(Numpy)的错误:Unable to find vcvarsall.bat

    情景简介: Windows 环境下安装Python2.7的Numpy扩展包时提示:error: Unable to find vcvarsall.bat 经过不懈的Google/Bing,发现不仅安装 ...

  2. SVM中为何间隔边界的值为正负1

    在WB二面中,问到让讲一下SVM算法. 我回答的时候,直接答道线性分隔面将样本分为正负两类,取平行于线性切割面的两个面作为间隔边界,分别为:wx+b=1和wx+ b = -1. 面试官就问,为什么是正 ...

  3. Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier

    php 连接 sqlserver 时, 程序生成的sql语句, 如果在 sqlserver客户端执行时, 可以正确返回结果, 在程序中执行, 总返回 false, 打开调试也没有任何错误. 无意中发现 ...

  4. String 的字面量、常量池、构造函数和intern()函数

    一.内存中的 String 对象 Java 的堆和栈 对于基本数据类型变量和对象的引用,也就是局部变量表属于栈内存: 而通过 new 关键字和 constructor 创建的对象存放在堆内存: 直接的 ...

  5. leaflet 中文API

    LeafLet js 官网:http://leafletjs.com/index.html LeafLet js 官网demo: http://leafletjs.com/examples.html ...

  6. [LuoguP4711]分子质量(小模拟+玛丽题)

    --这个题我居然可以把他\(1A\)--真是让我不知其可\(qwq\) \(Link\) \(emmmm\)好像发现了什么固定的套路(?)-- 大概就是这种题总会有 1.读入数 方案:快读即可. 2. ...

  7. 内核调试工具——strace

    简介 strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核 ...

  8. Oracle 11G 隐含参数“_controlfile_autobackup_delay”

    RMAN设置控制文件自动备份,当发生数据库备份时,或建表空间,删除log文件等物理结构发生改变时,oracle会自动备份控制文件. Oracle 10g会立刻备份,Oracle 11g会有几分钟的延迟 ...

  9. Linux-- 文件编辑器 vi/vim(1)

    初识 vi/vim 文本编辑器 1.vi 和 vim 相同,都是文本编辑器,在 vi 模式下可以查看文本,编辑文本,是 Linux 最常用的命令,vi 模式下分为三部分,第一部分一般模式,在一般模式中 ...

  10. PHP-----PHP程序设计基础教程----第三章函数

    3.1 初识函数 3.1.1 函数的定义 语法: function 函数名([参数1,参数2,......]) { 函数体 } (1)function:在声明函数时必须使用的关键字 (2)函数名:创建 ...