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. 等待事件P1 P2 P3含义

    从以下两个视图中查到的session中,有P1,P2,P3参数select * from v$sessionselect * from v$session_waitselect * from v$se ...

  2. Win10离线安装.NET Framework 3.5的方法技巧(附离线安装包下载)

    原文链接: https://www.windows10.pro/win10-net-framework-3-5/ 在Windows10中,当我们安装某些软件的时候会提示“你的电脑上的应用需要使用以下W ...

  3. 阿里八八——预则立&&他山之石

    团队计划--α版本Issues 概况 采访团队:"一起买"开发团队 采访形式:团队--团队 团队采访 内容提炼 项目选题 团队选题本身并没有大的亮点,但是可以从功能下手,多想想项目 ...

  4. 高可用web框架

    nginx nginx简介 Nginx是一个自由.开源.高性能及轻量级的HTTP服务器及反转代理服务器.Nginx以其高性能.稳定.功能丰富.配置简单及占用系统资源少而著称. Nginx 超越 Apa ...

  5. nfs 安装配置

    系统环境:centos 6.4 x86_64 minimal,记得是199个安装包. 两台机器(可以是虚拟机): 192.168.1.150--->a机器 192.168.1.11-----&g ...

  6. python30 excel修改模块xlutils

    xlrd只读,xlwt只写,xlutils模块则将读写功能结合起来.https://pypi.org/project/xlutils/ 修改excel通过xlutils的copy函数将<clas ...

  7. Guava包学习---Sets

    Sets包的内容和上一篇中的Lists没有什么大的区别,里面有些细节可以看一下: 开始的创建newHashSet()的各个重载方法.newConcurrentHashSet()的重载方法.newTre ...

  8. leetcode 121. Best Time to Buy and Sell Stock 、122.Best Time to Buy and Sell Stock II 、309. Best Time to Buy and Sell Stock with Cooldown

    121. Best Time to Buy and Sell Stock 题目的要求是只买卖一次,买的价格越低,卖的价格越高,肯定收益就越大 遍历整个数组,维护一个当前位置之前最低的买入价格,然后每次 ...

  9. csv文件的使用,csv空白行问题

    首先w+和wb区别 两者都是用于以只写方式打开指定文件指定文件原来不存在,则在打开时由系统新建一个以指定文件名命名的文件,如果原来已存在一个以该文件名命名的文件,则在打开时将该文件删去,然后重新建立一 ...

  10. linux挂在新硬盘

    login as: rootroot@192.168.109.128's password:Last login: Fri Mar 22 14:12:08 2019 from 192.168.109. ...