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. leetcode 14

    14. Longest Common Prefix Write a function to find the longest common prefix string amongst an array ...

  2. 004远程登录Linux系统

    通过windows主机远程登录Linux主机 前提一:从windows能ping通Linux 前提二:关闭Linux防火墙,运行命令:/etc/init.d/iptables stop (1)使用Pu ...

  3. 替换 PDF 文字

    1.从http://pan.baidu.com/s/1pJlVBqN下载Foxit Phantom.exe: 2.安装这个软件: ① 弹出这个对话框时选择“运行”: ② 授权协议选择“同意”: ③ 选 ...

  4. 开发iOS应用程序需要的工具和编程技术

    似乎每个iOS应用开发学习者都是从这篇文章开始写博客的,我也不例外,也从这里写吧,内容雷同,但绝对是原创.因为一直相信,通过自己的理解写出来,是掌握技术一个很好的途径. Xcode苹果最为优秀的集成开 ...

  5. Android开发教程AnimationDrawable逐帧播放动画

    下面我们一起来看篇Android开发AnimationDrawable控制逐帧播放动画实现过程,希望文章对各位朋友带不一些帮助. 当我们点击按钮时,该图片会不停的旋转,当再次点击按钮时,会停止在当前的 ...

  6. 使用BootStrap制作用户登录UI

    先看看劳动成果 布局 左右各一半(col-md-6) 左侧登录框占左侧一半的10/12 右侧是登录系统的注意事项 使用到的BootStrap元素 well 输入框组(input-group) 按钮(b ...

  7. 使用CSS创建有图标的网站导航菜单

    在我创建的每一个互联网应用中,我都试图避免创建完全由图片组成的菜单.在我看来,网页菜单系统中应该使用文字.这样做也会让菜单变得更干净利落.清晰和易读,不用考虑应用程序如何读取它,以及页面放大的时候也不 ...

  8. MySQL自用脚本(不定期更新)

    查询指定SQL的trace信息 mysql -uUSER -pPWD -hHOST -e "\ use ins_tc_prd; \ set session optimizer_trace=' ...

  9. AngularJs记录学习01

    <!doctype html> <html ng-app="myapp"> <head> <meta http-equiv="C ...

  10. NLP自然语言处理学习笔记三(集成开发环境)

    前言: 我们在做自然语言学习的过程中使用Python进行编程.是用解析器的方式确实有些麻烦.在这里给大家推荐一款集成开发环境IDE可以很方便的对Python进行项目管理,代码自动提示,运行调试等. 简 ...