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. Android IOS WebRTC 音视频开发总结(四四)-- webrtc图书

    本文主要介绍即将出版的webrtc图书相关信息,支持原创,转载必须说明出处,更多详见www.rtc.help --------------------------------------------- ...

  2. 关于tableView的优化

    现在市场上的iOS应用程序界面中使用最多的UI控件是什么? 答案肯定是UITableView,几乎每一款App都有很多的界面是由UITableView实现的,所以为了做出一款优秀的App,让用户有更好 ...

  3. 破解source insignt方法

    source insignt版本:官网3.5版本 方法:在桌面建立一个文本文档,将下面内容拷贝进去,保存为.reg文件(注意拓展名问题,自己设置),然后双击即可. win7  64bit Window ...

  4. HTTP请求状态类

    <?php /** * 常用常量文件 * */ /** * HTTP协议请求状态 */ class HttpRequest { //100类 ----用于指定客户端应相应的某些动作---- co ...

  5. struts2 最新漏洞 S2-016、S2-017修补方案

    昨天struts2爆了一个好大的漏洞,用道哥的话来说就是:“今天下午整个中国的黑客圈像疯了一样开始利用这个漏洞黑网站,大家可以感受一下.” 看下乌云这两天的数据: 相关报道: 灾难日:中国互联网惨遭S ...

  6. 获取屏幕分辨率(C/C++)

    C/C++获取屏幕分辨率的方法 int main(int argc, char* argv[]) { // 需要添加头文件: // #include <Windows.h> system( ...

  7. linux启动后自动登录并运行自定义图形界面程序

    在<Ubuntu CTRL+ALT+F1~F6 进入命令模式后不支持中文显示的解决办法>一文中提到linux启动在以后运行一个独占显示器的图形程序的两种办法. 1.不启动xserver,使 ...

  8. Redis源码研究--字典

    计划每天花1小时学习Redis 源码.在博客上做个记录. --------6月18日----------- redis的字典dict主要涉及几个数据结构, dictEntry:具体的k-v链表结点 d ...

  9. SVN客户端解决authorization failed问题

    遇到authorization failed问题 进人 [root@localhost conf]# pwd /opt/svndata/shell/conf [root@localhost conf] ...

  10. PHP面向对象之旅:static变量与方法

    static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为“类属性”或“类方法”. 如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号“ ...