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

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,之后是需求再放开权限。html

  • 从新定义方法,父类中的方法权限,只能扩大但不能缩小。java

    e.g.原为public,子类从新定义时,不可为privateprotectedgit

  • this()super()只能选择一个调用,并且必定要在构造函数第一行执行。ubuntu

  • final关键字限定修改变量值。函数

  • 若是定义类时没有使用extend关键字指定继承任何类,那必定是继承java.lang.Object学习

Chapter 7

-定义行为,可使用interface关键字定义,接口中的方法不能操做,直接表示为abstract,并且必定是publicthis

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

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

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

  • 照着书上的代码敲,而后分类放在文件夹时,常常出现缺乏类的编译错误提示。
    • x由于有的代码书前面有,不会再每一节反复出现,因此直接把前一节或几节的.class文件复制过来就行了或者使用import。若是复制.java文件再过来编译,不免有凑代码行数之嫌,还增长了麻烦。


- 查了不少资料发现出现这个提示的缘由是:由于我使用了容器,却没有用泛型。虽然有错误提示,可是仍然能正常编译,并无影响。.net

代码托管

  • 由于我换了系统,不少代码在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小时

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

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

参考资料

相关文章
相关标签/搜索