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

教材学习内容总结

继承与多态

  • 继承:在Java中,子类只能继承一个父类,关键字为extends,子类和父类之间会有一个is-a关系,利用这个原则就可以判断编译成功和失败。

  • 重新定义:子类在继承父类后,定义与父类相同的方法部署,但是执行内容不同。标注@Override表示要求编译程序检查该方法是不是重新定义了某个方法。

  • 抽象方法和抽象类:方法中没有任何代码操作时可以使用abstract标表示为抽象方法,另外也要在在class之前标上abstract。

  • 被声明为protected的成员在相同包中可以直接存取,在不同的包中可以在继承后的子类中存取。

  • 重新定义细节:在Java中如果想要取得父类的方法定义,可以在调用方法前,加上super关键字,调用的父类方法不能是private。

  • 构造函数:子类在执行构造函数时可以用super()指定父类中特定的某个构造函数。

  • final关键字:父类用final定义的方法时,子类不能重新定义方法。

  • Object:在定义类时不写extend时会继承Object,java.lang.Object是所有类的父类。

  • 垃圾收集:在执行流程中无法通过变量参考到的对象会被GC认定为垃圾对象。

接口与多态

  • 接口:在Java中可以使用interface关键字定义行为,类要操作接口,必须使用implements关键字。

  • 对继承和接口的理解:继承是“是一种”关系,接口是“拥有行为”关系

  • 行为的多态:判断操作接口是否能够通过编译的方式有两种:当左边是行为右边是对象时,判断右边是不是拥有左边的行为;当左边是对象右边是行为时,判断拥有右边行为的对象是不是一定是左边的对象。

  • 解决需求的变化:在Java中虽然类只能继承一个类,但是可以拥有多个行为,也可以在继承某个类时并拥有某个行为。接口是可以继承另一个接口的。

  • 定义没有操作的接口方法时必须是public和abstract,也可以省略不写。但是类在操作接口时候一定要在接口定义的方法前写上public。

  • 接口中定义的常数称为枚举常数,在定义时必须赋值。

  • 匿名内部类:临时继承或者操作某个接口时可以使用匿名内部类。

  • 使用enum枚举常数:类似于限定某个接口操作的可接受的值得范围。

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

  • 关于is-a关系的问题:(如图1)Soldier76是一个Role的子类,新建一个Soldier76的对象,贴上一个Role类的标签astraea,在Soldier76中重新定义了名为UltimateSkill的方法。现在这个新建的对象贴着Role类的标签,但还是拥有Soldier76的方法。(如图2)虽然先将astraea1定义为Role类的对象,但是让astraea1扮演(Cast)Soldier76类的对象后,对象将拥有Soldie76的方法。

  • 关于继承和接口的差异分析:继承和接口都可以定义没有任何操作的抽象方法。在定义没有操作的接口方法时必须是public和abstract,也可以省略不写。但是类在操作接口时候一定要在接口定义的方法前写上public,而继承父类的子类不需要。

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

  • 关于父类和子类的构造函数的分析:子类的构造函数中可以使用super()指定使用某个特定的父类中的构造函数,而由于子类是继承了父类的方法,父类构造函数的操作对子类构造函数中的值是有效的。

  • 重新定义方法hashcode需要在方法前加上public因为hashcode是来自java.lang.Object中的方法。

代码托管

  • 代码提交过程截图:

  • 代码量截图:

上周考试错题总结

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

  • CH04 填空:“30”转化为byte类型的30的语句是(Byte.parseByte(“30”);)。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 20篇 400小时
第一周 10/10 1/4 12/12
第二周 120/130 1/5 9/21
第三周 210/340 1/6 9/30
第四周 460/800 1/7 9/39
  • 计划学习时间:9小时

  • 实际学习时间:9小时

  • 改进情况:娄老师在上周的博客评论中要求多写代码,所以这周有空就写代码,虽然提交比较集中,但是每个代码的标题上都有时间信息,可以看到每天的写代码代码情况。

参考资料

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

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

    20155334 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章:整合数据库 16.1 JDBC入门 JDBC(Java DataBase Conn ...

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

    20155321 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 厂商在实现JDBC驱动程序时,依方式可将驱动程序分为四种类型: JDBC-OD ...

  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. spring quartz动态修改执行时间

    1.获取schedule <bean name="startQuartz" lazy-init="false" autowire="no&quo ...

  2. Javabean非空变量校验工具

    摘要 调研java Class getDeclaredFields() 与getFields()的区别,设计请求参数为Javabean时,基于反射机制校验其中非空变量的公共方法. java Class ...

  3. Python中的下划线(转)

    译文原文:https://segmentfault.com/a/1190000002611411 原文地址这篇文章讨论Python中下划线_的使用.跟Python中很多用法类似,下划线_的不同用法绝大 ...

  4. python 版Faster Rcnn

    直接按照官网https://github.com/rbgirshick/py-faster-rcnn上的教程对faster Rcnn进行编译的时候,会发有一些层由于cudnn版本的更新,会报错如下: ...

  5. Vue的双向数据绑定原理是什么?

    vue.js是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调. ...

  6. 【JMeter】【性能测试】配置元件

    HTTP Cookie Manager 用来存储浏览器产生的用户信息 Clear Cookies each Iteration:每次迭代请求,清空cookies,GUI中定义的任何cookie都不会被 ...

  7. 剑指offer-合并两个排列的链接

    题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则.   public ListNode Merge(ListNode list1,ListNode ...

  8. 部署 tomcat

    解压 root@mysql soft]# ll 总用量 -rw-r--r--. root root 11月 : apache-tomcat-.tar.gz -rw-r--r--. root root ...

  9. CentOS 7.2编译安装nginx1.10.3+MySQL5.5.38+PHP5.5.38

    1.关闭firewallad 关闭防火墙 systemctl stop firewalld.service 禁止firewall开机启动 systemctl disable firewalld.ser ...

  10. ACM-最短路之中的一个个人的旅行——hdu2066

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/lx417147512/article/details/27235809 ************** ...