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


    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小时

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

    参考资料

  • 相关阅读:
    数据库事务隔离级别-- 脏读、幻读、不可重复读
    【洛谷7518】[省选联考 2021 A/B 卷] 宝石(树上倍增+并查集)
    【CF666D】Chain Reaction(暴搜+细节讨论)
    【洛谷5064】[Ynoi2014] 等这场战争结束之后(操作树+值域分块)
    【洛谷7437】既见君子(状压+矩阵树定理)
    【洛谷5046】[Ynoi2019 模拟赛] Yuno loves sqrt technology I(分块)
    【LOJ2462】「2018 集训队互测 Day 1」完美的集合(树上连通块问题+扩展卢卡斯)
    【洛谷4339】[ZJOI2018] 迷宫(神仙题)
    【CF639E】Bear and Paradox(贪心+二分)
    【洛谷5444】[APIO2019] 奇怪装置(数论)
  • 原文地址:https://www.cnblogs.com/besti20155228/p/6581354.html
Copyright © 2020-2023  润新知