201421123042 《Java程序设计》第5周学习总结
1. 本周学习总结
1.1 写出你认为本周学习中比较重要的知识点关键词
接口 Comparable Arrays.sort -has a Lambda表达式
1.2尝试使用思维导图将这些关键词组织起来。注:思维导图一般不需要出现过多的字。
1.3 可选:使用常规方法总结其他上课内容。
本周学习了引用类型的接口,接口的定义和实现。
2. 书面作业
作业参考文件下载
PTA题集:面向对象2-进阶-多态、接口与内部类
1.面向对象设计大作业(团队项目,2-3人)
内容:继续完善上次的大作业。
注意: 再过几次课要讲Java图形界面编程,到时候要将该系统升级为图形界面。系统的业务逻辑部分应该变化不大,变化较大的地方的是输入与输出部分。编码的时候,请不要将处理输入(System.in)与输出(System.out)的代码与某个业务处理方法绑死。
参考资料:
使用Processon画图
作业提交结构如下:
1.1项目简介表格:
项目码云地址
团队成员表格
学生 | 负责任务 | 博客地址 |
---|---|---|
陈晓菲 | 商品类以及菜单类 | 博客地址 |
廖文姑 | 用户类以及输入输出接口 | 博客地址 |
贾海涛 | 购物车类及测试类 | 博客地址 |
1.2系统常用功能框架图
提示:在XMind文本方框中,可通过按Shift+Enter将字竖起来。
1.3 系统总体类图
类图绘制参考资料:
UML类图几种关系的总结
1.4 购物车、商品、系统关键代码截图(主要截取自己负责的部分)
1.5 其他:跟上次的系统比较,系统的设计等有何修改。其他感想。
答:主要是实现了一个菜单类,里面添加了注册登录等方法,还通过实现了一个输入输出接口,让控制台不与某个类进行绑定。搜索功能很遗憾还是没有实现。
在整个讨论过程中我主要负责用户和接口,每个人有空的时间都不一样所以在时间上很难协调,导致我们讨论时间不长,在有些模块的衔接方面还存在一些问题。
2. abstract:阅读GuessGame抽象类的设计与使用源代码
2.1Guess改造前代码很简单,而改造后的代码使用了抽象类、抽象方法,看起来更复杂,这样的改造到底有什么好处呢?
答:改造前使用抽象类仅局限于在控制台操作,改造后使用抽象类就可以在控制台也可以使用对话框图形界面等输入。
2.2 GuessGame(改造后).java中有抽象方法与非抽象方法,你觉得抽象类中什么样的方法应该声明为abstract,什么方法不需要声明为abstract直接实现即可。
答:具体实现方法时未定义或不确定其执行环境时用abstract类,有些类可以不用abstract来直接实现。
2.3 重要:在这个例子中,变化的是什么,不变的是什么?尝试结合abstract等概念进行说明。
答:变的是实现方法,不变的是结果,
3. Comparable与Comparator
3.1结合PTA 7-1中你的代码说明,为什么某个类实现了Comparable接口,就可以直接使用Arrays.sort对该类型的数组进行排序?
答:PTA 7-1中,写重写其中比较方法使得元素进行排序,
3.2结合PTA 7-2 中你的代码说明,有了Comparable接口为什么还需要Comparator接口呢?
答:PTA 7-2 中,Comparator接口通过创建多个比较器实现对类的排序方法。
3.3以前的作业Shape, Rectangle,Cirlce中,Shape类中什么方法应声明为abstract?说出原因。
答:在Sharp类中的计算图形周长和面积的方法应声明为abstract,虽然每个图形都有计算周长和面积的方法,但是对于不同的图形,其计算方法也有不同,我们在定义时,没有办法确定其具体实现步骤,所以要定义为抽象类,然后在继承的子类中根据不同的形状来实现其具体方法。
3.4有很多Shape类型对象如Rectangle、Circle。希望使用Arrays.sort对他们进行排序,请写出相应代码。并简述应在哪个类上实现Comparable接口比较好?
答:
使用抽象类Shape实现Comparable接口比较好。
3.5 以3.4你编写的代码为例,简述面向Comparable接口编程、面向父类编程的好处。(注意:一定要结合自己编写的代码)
答:按照不同的方法实现对象的排序,好处就是比较方便。
4. 面向接口案例分析
阅读Case-StudentDao.zip案例
4.1a.画出类关系图。b.StudentDao接口有什么用?
StudentDao接口定义了三个抽象,
4.2StudenDaoListImpl与StudentDaoArrayImpl有何共同之处?有何区别?
答:StudentDaoArrayImpl定义是用来存放学生信息,但只限于存放一定数目的学生信息;而StudenDaoListImpl定是存放学生信息,空间上不会受到约束。
4.3 结合Test.java中的main函数,简述面向接口编程的好处。
答:面向接口的编程使得程序更加的灵活,比如例子给出的写入学生的数据,不管接口的具体是用数组还是列表实现,在写入学生的数据的时候不用考虑实现的细节。工程上开发的时候,比如写一个功能,但是没有指定是图形界面还是文字界面,那么使用接口来实现功能,就不用考虑这种细节。
5. 什么是面向接口编程?面向接口编程的好处是什么?
结合题目4案例中的Test.java的代码进行分析。不要百度原封不动照搬!
答:Arrays,sort就是面向 Comparable接口进行编程,这就是所谓的面向接口编程,面向接口的好处主要就是代码的重用性,可扩展性,比较灵活以后维护起来也方便,
3码云及PTA
题目集:面向对象2-进阶-多态接口内部类
3.1. 码云代码提交记录
在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图
3.2 截图PTA题集完成情况图
需要有两张图(1. 排名图。2.PTA提交列表图)
3.3 统计本周完成的代码量
需要将每周的代码统计情况融合到一张表中。
|总代码量|新增代码量|总文件数|新增文件数|
---------------------------------------
|周次|总代码量|新增代码量|总文件数|新增文件数|
|-:|-:|-:|-:|-:|
|1|0|0|0|0|
|2|0|0|0|0|
|3|0|0|0|0|
|4|0|0|0|0|
|5|0|0|0|0|
|6|647|647|13|13|
D:>
周次 | 总代码量 | 新增代码量 | 总文件数 | 新增文件数 |
---|---|---|---|---|
1 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 0 | 0 |
3 | 125 | 125 | 2 | 2 |
4 | 141 | 141 | 3 | 3 |
5 | 674 | 647 | 13 | 13 |
201421123042 《Java程序设计》第5周学习总结的更多相关文章
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- webpacke踩坑-新手
1.题叶-webpack入门指南 2.webpack入门系列 3.w3ctech的webpack入门及实践 4.Express结合Webpack的全栈自动刷新 5.webpack 单页面应用实战 6. ...
- [AH/HNOI2017]单旋
这道题可以用LCT做,开set,LCT,二叉树 操作1:直接开set,找到它要插入的位置,一定是前驱,后缀中deep最大的(显然手玩) 操作2:set+LCT询问路径,直接手动提上去,因为树的形态不变 ...
- Js - JQ事件委托( 适用于给动态生成的脚本元素添加事件)
最近一段时间打了一个大仗,现在总算消停点,才有时间来做个总结吧算是: 移动端遇到一个项目,是一个列表的侧滑栏,在我这里用jq写的交互事件.自测各方面都挺好的,美滋滋的给了研发.研发也美滋滋的开始开发. ...
- MySQL性能调优与架构设计
1.Scale(扩展):从数据库来看,就是让数据库能够提供更强的服务能力 ScaleOut: 是通过增加处理节点的方式来提高整体处理能力 ScaleUp: 是通过增加当前处理节点的处理能力来提高整体的 ...
- 【MyBatis源码分析】插件实现原理
MyBatis插件原理----从<plugins>解析开始 本文分析一下MyBatis的插件实现原理,在此之前,如果对MyBatis插件不是很熟悉的朋友,可参看此文MyBatis7:MyB ...
- c#多线程同步之Semaphore
一提到Semaphore(信号量)的使用,还挺有意思的,它允许多个线程同时访问多个稀有资源,我立马想到银行的ATM机取钱的场景.看下面的代码: ); public static void StartT ...
- QT 中setUserData和setProperty问题
在5.9的官方文档里是找不到QObject中的setUserData 的,相反他提供了setProperty(). void setUserData(uint id, QObjectUserData ...
- 利用TPC-H为MYSQL生成数据
## 利用TPC-H为MYSQL生成数据 导言 这篇文章是看了joyee写的TPC-H数据导入MySQL教程以及另一篇网上的MySQL TPCH测试工具简要手册 后写的,有些内容是完全转载自以上两篇文 ...
- 关于win系统下Anaconda与TensorFlow的安装相关事宜以及错误:ImportError: No module named 'tensorflow'的解决
1.安装TensorFlow之前应该先安装Anaconda,不需要安装python,否则会出问题,我安装的版本是Anaconda3-4.2.0-Windows-x86_64,在这个链接上可以找到--h ...
- 深度揭秘腾讯云TSF日调用量超万亿次背后技术架构
腾讯云TSF是整合外部开源框架和腾讯内部历经多年锤炼的PaaS平台打造而成的企业级分布式应用服务开发与托管平台,本文重点对TSF中负责服务托管的PaaS平台进行揭秘,从技术角度解析TSF 平台是如何每 ...