201621123044 《Java程序设计》第六周实验总结

时间:2022-10-14 17:44:55

1. 本周学习总结

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

注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖面向对象的核心内容即可。

注2:颜色要少、连线不要复杂,必要的时候要在连线上进行说明。

201621123044 《Java程序设计》第六周实验总结

1.2 可选:使用常规方法总结其他上课内容。

2. 书面作业

1. clone方法

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

不成功;clone方法为Object对象不能被不同包的非子类访问,因而要使用clone的方法克隆一个新对象需重写clone的方法

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

1.覆盖的方法需要声明为public。2.调用super.clone()

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

出于访问权限的安全性的考虑,clone方法被protected修饰,其实现了浅拷贝,没有克隆包含在对象中的其他引用型属性;如果实现clone方法还能修改对象,那么这样的实现方法则十分不安全

2. 内部类

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

201621123044 《Java程序设计》第六周实验总结

201621123044 《Java程序设计》第六周实验总结

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

Comparator

shapeComparator所指向的对象使用匿名内部类实现Comparator,通过重写compare方法,实现Shape o1与Shape o2之间的比较

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

是需要创建ActionListener类型的对象,然后编写其匿名内部类。后来搞清楚之后,就很简单的实现了。

3. PTA实验总结

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

若直接写一个类包含IntegerStack相应的方法,则就限定了实现方法;而如果定义IntegerStack接口,然后定义其实现类,就可以根据不同的需求来用不同的形式储存数据,更加多样化。

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

这道题要先创建静态内部类,静态内部类不能直接访问外部类的非静态成员,需要使用外部类名.静态内部类调用。在各类中需要某一个方法,但其本身不是这个类的成员时,可以将该方法写入静态内部类中,再通过外部类调用。静态内部类与内部类的区别:静态内部类的对象不需要通过外部类对象来生成,可以直接使用外部类类名.静态内部类类名生成。

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

本题难点在于equal()的实现

使用Collections.sort对引用类型数组进行排序前提:继承Comparable、Comparator接口,并且分别重写compareTo方法、compare方法。

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

参考Case-StudentDao.zip案例

假设在不同的实现中,购物车里的商品有的是存放在ArrayList,有的是存放在数组中。

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

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

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

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

5.1 画出类的继承关系

201621123044 《Java程序设计》第六周实验总结

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

main函数的代码实现功能:将创建的四个对象按照Age年龄升序排列

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

不行,因为子类的实例化过程中,子类中所有的构造函数默认都不能访问父类中空参数的构造函数,只能通过super()来调用,故在子类构造对象时,访问子类构造函数时,父类也运行。这道题如果将子类中的super构造函数去掉,就不能调用父类里面的构造函数,当然不行了!

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

Person中,各类中的toString方法的重写,体现了多态这一特性。参考链接:

PersonTest.java

3.码云及PTA

3.2 截图PTA题集完成情况图

需要有两张图(1. 排名图。2.PTA提交列表图

201621123044 《Java程序设计》第六周实验总结

201621123044 《Java程序设计》第六周实验总结

3.3 统计本周完成的代码量

周次 总代码量 新增代码量 总文件数 新增文件数
1 183 183 9 9
2 498 315 15 6
3 718 220 26 11
4 921 203 31 5
5 1251 330 37 6

需要将每周的代码统计情况融合到一张表中。

201621123044 《Java程序设计》第六周实验总结的更多相关文章

  1. 201771010123汪慧和《面向对象程序设计JAVA》第六周实验总结

    一.理论部分: 1.继承 用已有类来构建新类的一种机制.当定义了一个新类继承了一个类时,这个新类就继承了这个类的方法和域,同时在新类中添加新的方法和域以适应新的情况. 2.类.超类.子类 (1)类继承 ...

  2. 201521123008《Java程序设计》第二周实验总结

    本周学习总结 ① 数据类型,其中char是占用两个字节的内存空间,其他和以前学过的一样.除了十进制位,整型也可以用八进制或者十六进制表示.浮点型不精确. ②运算符,算术,赋值,逻辑,位运算. ③str ...

  3. 201521123008<java程序设计>第三周实验总结

    1.本周学习总结 2.书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; pub ...

  4. 201521123122 《java程序设计》第九周学习总结

    201521123122 <java程序设计>第九周实验总结 1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 常用异常 题目5-1 1.1 截图 ...

  5. 201621123005《Java程序设计》第九次实验总结

    201621123005<Java程序设计>第九周实验总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 ...

  6. 201521123122 《java程序设计》 第六周实验总结

    201521123122 <java程序设计>第六周实验总结 1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想 ...

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

    20175314 <Java程序设计>第九周学习总结 教材学习内容总结 根据课本的介绍下载了MySQL和Navicat for MySQL并成功对后者进行破解 MySQL客户端管理工具(如 ...

  8. 20165235 祁瑛 2018-4 《Java程序设计》第九周学习总结

    20165235 祁瑛 2018-4 <Java程序设计>第九周学习总结 教材学习内容总结 URL类 UR类是java.net包中的一个重要类,使用URL创建的对象的应用程序称作称作客户端 ...

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

    20155312 2016-2017-2 <Java程序设计>第九周学习总结 课堂内容总结 两个类有公用的东西放在父类里. 面向对象的三要素 封装 继承 多态:用父类声明引用,子类生成对象 ...

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

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

随机推荐

  1. gulp的基本使用

    gulp 了解 首先我们了解一下什么是gulp, gulp是前端自动化构建工具,在开发过程中很多重复的任务,我们都可以正确的使用gulp来完成,gulp基于nodejs,使用gulp可以做很多事情 例 ...

  2. 利用jQueryRotate旋转插件开发大转盘抽奖

    前言: 公司原来开发大转盘抽奖活动用的是flash 我发现swf文件竟然有6m大,吓尿了! 其实完全可以用js写的,但是自身前端功力有限,且时间紧迫,所以直接用旋转插件就好,兼容各方面都可以保证. 1 ...

  3. fir&period;im Weekly - 聊聊让人向往的远程开发工作

    6月30 日,苹果开发者后台贴出一封关于广电总局的醒目通知,申报一个游戏 APP 上架AppStore,你需要文网文+ICP证+软著+版号,审批难度将越来越大,不禁让人感慨中国独立开发者的成长 &qu ...

  4. &lbrack;tp3&period;2&period;1&rsqb;让默认页面&colon; 加载Home模块的Index控制器&semi;而让admin&period;php默认去加载Admin模块的Adminc控制器&period;

    QQ:让index.php默认加载Home模块的Index控制器;而让admin.php默认去加载Admin模块的Adminc控制器.AA:复制index.php命名为admin.php复制(新建)A ...

  5. 【转】简明vim练级攻略

    本文来自:http://coolshell.cn/articles/5426.html vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一 ...

  6. Nginx正向代理让无法直接上网的机器通过代理上网

    Nginx正向代理让无法直接上网的机器通过代理上网 在阿里云平台买了几台ECS.但是只要其中一台开通了公网.由于要初始化系统环境,需要网络安装相关依赖. Nginx正向代理配置: 一.Nginx 正向 ...

  7. Centos操作系统在虚拟机VMware上的安装

    1.下载centos操作系统,提供百度云盘链接:http://pan.baidu.com/s/1pLHOR03 2.打开上篇在VMware中新建好的空白虚拟机,将centos安装在此空白虚拟机上,步骤 ...

  8. NOIP2012junior—P1—质因数分解

    NOIP2012junior-P1-质因数分解 时间: 1000ms / 空间: 131072KB [背景] NOIP2012[描述] 已知正整数n 是两个不同的质数的乘积,试求出较大的那个质数. [ ...

  9. windows安装IDEA

    1.安装下载 https://www.jetbrains.com/idea/download/#section=windows 2.服务器激活地址: 39.129.9.34:8888 https:// ...

  10. 使用pycharm调试django项目

    要使用pycharm调试django 打断点调试后台代码,首先要进行一下配置: 1.debug 配置 打开debug界面 2.选择python点+加号,然后选择python 3.名字debug,这个看 ...