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

教材学习内容总结

Chapter 6

  • 继承基本上就是避免多个类间重复定义共同行为。
  • private成员会被继承,不过子类无法直接存取,必须通过父类提供的方法来存取(如果股类愿意提供访问方法的话)。
  • 子类只能继承一个父类。
  • 继承可避免类别间重复的行为定义。
  • 子类别与父类别间会有is-a的关系。
  • 多态:以抽象讲法解释,就是使用单一接口操作多种类型的对象。
  • Java以继承及界面来实现多态,是次态多态的一种实现。
  • 在重新定义父类别中某个方法时,子类别必须撰写与父类别方法中相同的签署。
  • 如果某方法区块中真的没有任何程序代码操作,可以使用abstract标示该方法为抽象方法,该方法不用撰写{}区块,直接“;”结束即可。
  • 子类继承抽象类
    • 继续标示该方法为abstract(该子类因此也是个抽象类,必须在class前标示abstract);
    • 操作抽象方法。
  • 被声明为protected的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。
  • 如果方法中没有同名参数,this可以省略,不过基于程序可读性,多打个this比较清楚。
  • Java 3个权关键字:publicprotectedprivate,共4个权限范围。权限关键字与权限范围的关系:
关键字 类内部 相同包类 不同包类
public 可存取 可存取 可存取
protected 可存取 可存取 子类可存取
可存取 可存取 不可存取
private 可存取 不可存取 不可存取
  • 如果一开始不知道使用那个权限,就先使用private,以后是需求再放开权限。
  • 重新定义方法,父类中的方法权限,只能扩大但不能缩小。

    e.g.原为public,子类重新定义时,不可为privateprotected

  • this()super()只能选择一个调用,而且一定要在构造函数第一行执行。
  • final关键字限定修改变量值。
  • 如果定义类时没有使用extend关键字指定继承任何类,那一定是继承java.lang.Object

    Chapter 7

-定义行为,可以使用interface关键字定义,接口中的方法不能操作,直接表示为abstract,而且一定是public

  • 类要操作接口,必须使用implements关键字。
  • 操作接口表示“拥有行为”。
  • 类可以操作两个以上类,即拥有两种以上的行为。
  • 类可以同时继承类、操作接口。
  • 使用interface来定义抽象的行为外观,方法要声明为public abstract,无须且不能有操作。省略public abstract,编译程序会协助补全。
  • 可以使用接口枚举场数,只能定义为public static final,可省略。
  • 若有两个接口都定义了某方法,操作两个接口的类并不会有错误。但是,在设计上要思考:两个接口都有定义的方法时候表示不同的行为?
  • enum定义了特殊的类,继承自java.lang.Enum,直接撰写程序继承Enum类会被编译器拒绝。

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

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

  • 照着书上的代码敲,然后分类放在文件夹时,经常出现缺少类的编译错误提示。

    • x因为有的代码书前面有,不会再每一节反复出现,所以直接把前一节或几节的.class文件复制过来就好了或者使用import。如果复制.java文件再过来编译,难免有凑代码行数之嫌,还增加了麻烦。
    • 查了很多资料发现出现这个提示的原因是:因为我使用了容器,却没有用泛型。虽然有错误提示,但是仍然能正常编译,并没有影响。

代码托管

  • 因为我换了系统,很多代码在kali上写的,但是pull在ubuntu上,所以代码统计有些问题,把前几天的代码都计算在今天。

上周考试错题总结

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

    • 对Linux命令还是有很多没有掌握。
  • 填空:~0b1010的十进制值是(-11)。
    • 忘记在前面补0。取反码应该是11110101,因为是负数取补码10001011,即-11。
  • 填空:两个Integer对象比较大小,可以使用(comareTo())方法
    • 书上知识没有记住,误记成了equal(),现在已经掌握了、
  • 判断:Java中类总会有默认构造方法。(X)
    • 概念不牢。
  • 填空:“30”转化为byte类型的30的语句是(Byte.parseByte(“30”);)。
    • 前面知识没有及时复习,导致掌握不够牢固。
  • 判断:private不能用在构造方法上,这样就无法创建对象了。(X)
    • 对private没有掌握。
  • 填空:Java中类的成员变量必须进行初始化,否则会出语法错误。(X)
    • 将c与java有些混淆。
  • 填空:Java中方法参数只用(传值)调用。
    • 没有记住。

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

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
目标 5000行 30篇 400小时
第一周 18/18 1/1 10/10
第二周 172/190 1/2 18/38
第三周 464/654 1/3 23/61
第四周 876/1530 1/4 28/89

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:28小时

  • 实际学习时间:28小时

  • 改进情况:终于有一周实际和计划相同,可能这是因为第七章和第八章内容太多了,为了完成任务不得不努力。有压力才能有动力这句话真的很有道理。

  • 有空多看看现代软件工程 课件 软件工程师能力自我评价表

参考资料

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

  1. 20155306 2016-2017-2 《Java程序设计》第九周学习总结

    20155306 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 16.1 JDBC入门 Java语言访问数据库的一种规范,是一套API ...

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

    20155236 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC入门 1.JDBC简介 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 【Win10+eclipse+MinGW+QT安装教程】已有eclipse环境下配置QT插件出错详解

    (纪念一下装了一整天濒临绝望的自己[/doge]) (以下所有下载项一律使用32位) step1:下载安装eclipse.适配的jdk.MinGW和QT 1.下载32位eclipse for c++以 ...

  2. 使用Hash直接登录Windows(HASH传递)

    抓取windows hash值 得到administrator的hash: 598DDCE2660D3193AAD3B435B51404EE:2D20D252A479F485CDF5E171D9398 ...

  3. 聊聊host中ip/域名映射记录的解析规则

    今天宝叔突然在群里发了个问题; host做如下配置,a.com会指向哪里?或者说ping一下a.com结果会是什么? 127.0.0.1 a.com 192.168.4.106 a.com 192.1 ...

  4. hdu-3333 Turing Tree 离线区间+树状数组(区间不同数的和)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3333 题目大意: 给出一数组,以及m个查询区间,每次查询该区间不同数字的和.相同数字只加一次. 解题 ...

  5. EF和linq to sql 关系

    LINQ to SQL 允许你用任何类来代表数据库中的数据.表.同样的,EF也允许你用任何类来代表苏据库中的数据.表. 所不同的的地方是Linq to sql 用这些被修饰过的类直接同数据库打交道,存 ...

  6. [转]Ribbon界面介绍(1)

    小弟最近在学习VS2010中Ribbon界面的介绍,相比与C#的界面设计的强大,C++的界面实在太难做了,但没办法,项目需求,又不得不做,遍查网络上的资料,发现有用的基本上就是MSDN的帮助,又是全英 ...

  7. VS2012与VS2015同时安装用VS2012创建MFC程序时弹出编译错误”fatal error C1083: 无法打开包括文件:“mprapidef.h”: No such file or directory”的解决办法

    在WIndows 7操作系统上同时安装VS2012与VS2015并用VS2012创建MFC程序时弹出编译错误”fatal error C1083: 无法打开包括文件:“mprapidef.h”: No ...

  8. 用javascript调用表单验证事件时,为什么return false了还是把表单submit了?

    表单提交前,都会有定义一个验证的方法以对用户提交的内容进行限定,今天写到了这个,但出现了一个好郁闷的东西,就是一点提交了,调用我自己写的一个CheckForm()方法时,我明明写了return fal ...

  9. myeclipse2014黑色主题风格设置

    http://jingyan.baidu.com/article/915fc41494db8451384b2043.html?st=2&os=0&bd_page_type=1& ...

  10. 【Javascript-基础-Object】创建对象

    创建单个对象--字面量方式 创建多个对象 使用字面量方式创建多个对象时,会产生大量的重复代码.开发者在寻找创建多个对象方法的过程中,基本经历了一下集中方法: 工厂模式 > 构造函数模式 > ...