一.本周学习总结

  • 1.1 面向对象学习暂告一段落,请使用思维导图,以封装、继承、多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结。

二.书面作业

  • 1. clone方法

    • 1.1 在test1包中编写Employee类,在test2包中新建一个Test类,并在其main中新建test1包中的Employee的对象,然后使用clone方法克隆一个新对象,能否成功?为什么?

      由上图可知,clone为protected,因而只能在test1中使用clone去克隆Employee的对象,而无法在test2中使用。

    • 1.2 如果要为自定义的类覆盖clone方法,需注意什么?

      要实现Cloneable接口

    • 1.3 Object对象中的toString, equals, hashCode方法都使用public修饰,而clone方法却被protected修饰,请尝试解释原因。为什么不声明为public呢?

      public全都能访问,protected只能同包访问,如果被设为public,那么重写clone方法就应该只能是public,就会被任意类访问。

  • 2. 内部类

    • 2.1 使用匿名类与Lambda表达式改写题集面向对象2-进阶-多态接口内部类的题目7-2。请贴图关键代码与运行结果,请在运行结果中出现你的学号与姓名。

    • 2.2. 分析下列代码,回答shapeComparator所指向的对象与Comparator接口有什么关系?

        Comparator<Shape> shapeComparator = new Comparator<Shape>()
      {
      @Override
      public int compare(Shape o1, Shape o2)
      {
      //你的代码
      }
      };

      shapeComparator所指向的对象使用匿名类实现了Comparator接口并重写了compare方法。

    • 2.3 题集:6-1(匿名内部类)实验总结。你觉得使用匿名内部类有什么好处?

      匿名内部类无需额外创建一个类(如题中的ActionListener类就不要额外创建),简化了代码,隐藏了操作,体现了封装性。

  • 3. PTA实验总结

    • 3.1 PTA(自定义接口)。并回答:相比较不写接口,直接写一个类包含IntegerStack相应的方法来说,定义IntegerStack接口,然后定义其实现类这种方式有什么好处?

      定义接口再去定义实现方法使得代码更灵活,比如本题中当数组不能够很好存储时可改为动态数组来实现,但是如果直接类中包含方法则直接写死,后续碰到问题较难修改。

    • 3.2 PTA(静态内部类)。并回答:你觉得什么时候应该使用静态内部类?静态内部类与内部类有什么区别?

      静态内部类和内部类的区别在于静态内部类的对象可以直接生成而不需要通过外部类成员,因而当外部类需要使用内部类,而内部类无需使用外部类时就可以使用静态内部类。

    • 3.3 PTA(继承覆盖综合练习-Person、Student、Employee、Company)。并回答:使用Collections.sort对引用类型数组进行排序需要有一个什么前提条件?

      使用Collections.sort对引用类型数组进行排序的一个前提条件是要实现比较接口并重写比较方法。

  • 4.大作业-继续完善(尝试使用接口改造你们的系统)

    • 4.1 现在希望将系统中购物车的操作抽象到相应的DAO接口。

    • 4.2 为该接口定义至少两个实现(如数组、列表、文件)。截图自己负责部分的关键代码,要求出现名字与学号。

      数组实现:

      列表实现:

    • 4.3 给出你们的Main程序,说明定义DAO接口的好处。

      如上,使用数组实现时要考虑数组大小,若是定义Dao接口,可改用更方便准确的列表来实现,修改代码会很方便。

  • 5. 代码阅读:PersonTest.java(abstract、多态、super)

    • 5.1 画出类的继承关系

    • 5.2 main函数的代码实现什么功能?

      将所以对象按年龄从小到大排序并输出。

    • 5.3 如果将子类中的super构造函数去掉行不行?

      不行,如果去掉super()就无法调用父类的构造函数了。

    • 5.4 PersonTest.java中哪里体现了多态?

      每一个子类在调用父类的toString方法时都进行了各自特定的覆盖,这就体现了多态。

三.码云及PTA

  • 3.1. 码云代码提交记录

  • 3.2 截图PTA题集完成情况图

  • 3.3 统计本周完成的代码量

周次 总代码量 新增代码量 总文件数 新增文件数
1 193 193 6 6
2 625 432 35 29
3 1076 451 41 6
4 1472 396 47 6
5 1932 460 53 6
6 2235 303 57 4

201621123023《Java程序设计》第6周学习总结的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

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

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. 自动删除 Elasticsearch 索引

    #!/bin/bash # author: Wang XiaoQiang# crontab -e# 0 0 * * * /root/script/del_esindex.sh # auto delet ...

  2. <转>Linux环境进程间通信(五): 共享内存(上)

    http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index1.html 采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写 ...

  3. C++ Assert()函数

    assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include <assert.h> void assert( i ...

  4. Makefile 自动搜索 c 和 cpp 文件, 并生成 .a 静态库文件

    最近 又弄linux 下的 .a 静态库编译, 于是想 做个 一劳永逸的Makefile, 经过一番折腾, 最后成功了 只需要 改两个 参数 就可以执行了(MYLIB 和 VPATH), 代码 如下: ...

  5. Struts2项目走向流转

    ----------------siwuxie095 Struts2 项目走向流转 1.HTTP 请求流转过程 2.配置文件连接点详解 [made by siwuxie095]

  6. 洛谷P1186 玛丽卡 spfa+删边

    洛谷P1186 玛丽卡http://blog.csdn.net/huihao123456/article/details/73414139题目描述 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. ...

  7. SSL与TLS有什么区别

    SSL与TLS有什么区别(最全面的知识点都在这) 发布日期:2018-10-12SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协 ...

  8. razor DisplayNameFor ViewModel为集合时显示列名的问题

    @{ViewModel nullModel = null; } @Html.DisplayNameFor(model => nullModel .FullName) https://stacko ...

  9. Spring 注解 整理

    首先 在xml中配置 xmlns:context="http://www.springframework.org/schema/context" http://www.spring ...

  10. 03 Complementing a Strand of DNA

    Problem In DNA strings, symbols 'A' and 'T' are complements of each other, as are 'C' and 'G'. The r ...