20145129 《Java程序设计》第4周学习总结

教材学习内容总结

  • 继承与多肽

    • 继承共同行为
      1. 继承是避免多个类间重复定义共同行为。(将相同的代码提升为父类)
      2. 关键字extends:表示这个类扩充另一个类的行为即继承。
      3. 优点:维护时只需修改父类,继承父类的子类无需修改。
    • 多态与is-a
      1. is-a: Java中子类只能继承一个父类,因为子类与父类之间会有“is-a”的关系,中文“是一种”。
      2. 运用“是一种”来判断编译是否失败以及将扮演(Cast)看做叫程序闭嘴的语法。
      3. 并留意参考的对象实际类型,判断何时扮演成功,何时会抛出“ClassCastException”(失败)。
      4. 多态: 使用单一接口(指对象上可操作方法)操作多种类型的对象。
    • 重新定义行为
      1. 在继承父类之后,定义与父类中相同的方法部署,但执行内容不同。
      2. 标注@Override:表示要求编译程序检查该方法是否真的重新定义了父类中某个方法,如果不是就会引发编译错误。
      3. 若想取得父类中的方法定义,可在调用方法前加super关键字,不能定义为private。
      4. 对于父类中的方法权限,只能扩大但不能缩小。
      5. 重新定义方法时除了可以定义权限较大的关键字外,其他部分必须与父类中方法签署完全一致。
      6. 重新定义方法时,如果返回类型是父类中方法返回类型的子类,也是可以通过编译的。
    • 抽象方法、抽象类
      1. abstract抽象方法:Java中规定内含抽象方法的类,一定要在class前标示abstract来表示这是一个定义不完整的抽象类。(若某方法区块中真的没有任何程序代码操作可采用此方法)
      2. 用抽象类创建实例,就会引发编译错误。
      3. 子类如果继承抽象类,对于抽象方法有两种做法:一、继续标示该方法为abstract;二、操作抽象方法。
  • 继承语法细节
    • protected成员
      1. 在不同包类只让子类可以直接存取。
      2. Java中实际上有4个权限范围,除了前面学到的,其中没有定义关键字的默认就是包范围即当在不同包类不可存取。
    • 重新定义的细节(参考上文)
    • 构造函数
      1. 构造函数可以重载,父类中可以重载多个构造函数,如果子类构造函数中没有指定执行父类中哪个构造函数,默认调用父类中无参数构造函数。
      2. 若定义了有参数的构造函数,可以加入无参数构造函数,即使内容为空也无所谓,增加使用弹性。
    • final关键字
      1. 在指定变量值之后,不想再改变变量值,可在声明变量时加上final限定,若日后修改了final变量会出现编译错误。
      2. 若对象数据成员被声明为final,但没有明确使用=指定值,那表示延迟对象成员的指定,在构造函数执行流程中,一定要有对该数据成员指定值的动作,否则编译错误。
      3. class前使用final关键字定义,表示这个类是最后一个,不会有子类,也就是不会被继承。
      4. 定义方法时也可以限定该方法为final,表示这是最后一次定义方法,子类不可以重新定义final方法。
    • java.lang.Object
      1. 若定义类时没有使用extends关键字指定继承任何类,那一定是继承java.lang.Object。
      2. java.lang.Object是所有类的顶层父类。
      3. (??对定义ArrayList类那部分有些模糊。)
      4. 重新定义 toString()
      5. 重新定义equals()
    • 关于垃圾收集
      1. 对于不再有用的对象,JVM有垃圾收集机制,收集到的垃圾对象所占据的内存空间,会被垃圾收集器释放。
  • 接口与多态
    • 接口定义行为
      1. Java中可以使用interface关键字定义行为。
      2. 接口可以用于定义行为但不定义操作。
      3. 类要操作接口,必须使用implements关键字。操作某接口时,对接口定义的方法有两种方式:一、操作接口中定义的方法;二、将该方法标示为abstract。
      4. 操作接口表示“拥有行为”。
    • 行为的多态
      1. 与上文中提到的多态类似。只不过在判断中把“是一种”换做“拥有...行为”。
    • 解决需求变化
      1. 类可以操作两个以上的类,也就是拥有两种以上的行为。
      2. 类可以同时继承某个类,并操作某些接口。
      3. 写程序需要保证程序的弹性。
  • 接口语法细节
    • 接口的默认
      1. 接口中的方法没有操作时,一定得是公开且抽象,可以省略“public abstract”此时编译程序会自动加上,并默认是public。
    • 匿名内部类
      1. 在有临时继承某个类或操作某个接口并建立实例的需求,由于这类子类或接口操作类只能使用一次,不需要为这些类定义名称,此时可以使用匿名内部类。
    • 使用enum枚举常数
      1. 使用enum枚举常数,实际上enum定义了特殊的类,继承自java.lang.Enum,这是由编译程序处理,直接撰写程序继承Enum类会被编译程序拒绝。
      2. enum实际上定义了类,而enum中列举的常数,实际上是"public static final",且为枚举类型实例,无法撰写程序直接实例化枚举类型,因为构造函数权限设定为private,只有类中才可以实例化。

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

在对第六章学习中对定义ArrayList类那部分有些模糊,具体还在请教同学。

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

编写代码过程中并没出现太大问题。(下图为代码托管截图)

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

对书中所讲代码进行实际操作后发现,不是所有代码都要写一遍...总是在写完一段代码后看书发现这段代码并没有太大的意义,而真正需要动手操作的部分还在后面,这样效率一下低了很多。 对于本周学习我基本上把80%的课余时间用在了学习Java上不仅仅是看书还有看视频还有上网了解书上内容然而这两章虽然页数没有前几章多但是信息量非常庞大需要联系前两章内容,在这周结束时我也并不能完全消化它。表示我尽力了。

学习进度条

| | 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|重要成长|

| -------- | :----------------:|:----------------:|:---------------: |:-----:|

| 目标 | 3000行 | 15篇 | 300小时 | |

| 第一周 | 50/50 | 2/2 | 14/14 |

| 第二周 | 100/150 | 1/3 | 10/24 |

| 第三周 | 300/450 | 1/4 | 15/39 |

| 第四周 | 350/800 | 1/4 | 50/74 |

20145129 《Java程序设计》第4周学习总结的更多相关文章

  1. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  2. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  3. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  4. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  5. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  6. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  7. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  8. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  9. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

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

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. windows server 2008 r2 搭建文件服务器

    目的需求:在测试环境下模拟公司现状需求,利用windows server 搭建文件服务器 工具必备:(1)vmware workstation,(2)windows server 2008 r2.is ...

  2. 用户 'IIS APPPOOL\Classic .NET AppPool' 登录失败。

    “用户 'IIS APPPOOL/Classic .NET AppPool' 登录失败”的解决方法   错误: “/”应用程序中的服务器错误. 用户 'IIS APPPOOL\Classic .NET ...

  3. InnoDB 存储引擎—索引

    1.引言         InnoDB 存储引擎支持以下几种觉的索引:             1.1    B+ 树索引 (平衡树索引)             1.2    全文索引       ...

  4. CentOS学习笔记--文件权限概念

    Linux 文件权限概念 当你的屏幕出现了『Permission deny』的时候,不要担心,『肯定是权限设定错误』啦!(以下节选自 鸟哥的 Linux 私房菜 第六章.Linux 的文件权限与目录配 ...

  5. 在信号处理函数中调用longjmp

    错误情况及原因分析 前两天看APUE的时候,有个程序要自己制作一个sleep程序,结果在这个程序中就出现了在信号处理函数中调用longjmp函数的情况,结果就出现了错误,具体错误是啥呢,请参见下面这段 ...

  6. Silverlight - GPU加速

    1. 在Silverlight plug-in上设置 <param name="enableGPUAcceleration" value="true" / ...

  7. [译]MongoDB 3.0发布说明

    原文来自:http://docs.mongodb.org/manual/release-notes/3.0/ 2015年3月3日 MongoDB 3.0现已可供使用.关键新特性包括支持WiredTig ...

  8. ThinkPHP之中的getField、Find、select、返回数据类型详解(ThinkPHP之中所有数据读取了)

    小李子:用于演示作用的数据库表:customers 官方解读: “ 读取数据集其实就是获取数据表中的多行记录(以及关联数据),使用select方法 ” $customers=D('customers' ...

  9. Index of my articles

    65:一个表格说明RelativeLayout中的几个重要属性[Written By KillerLegend] (2013-10-16 21:59) 64:win7修改软件[授权给…]后面的名称 ( ...

  10. php中的日期

    1.在PHP中获取日期和时间 time()返回当前时间的 Unix 时间戳. getDate()返回日期/时间信息. gettimeofday()返回当前时间信息.date_sunrise()返回给定 ...