201621123062《java程序设计》第五周作业总结
1. 本周学习总结
1.1 写出你认为本周学习中比较重要的知识点关键词
关键词:interface、Comparable、comparator
1.2 尝试使用思维导图将这些关键词组织起来。注:思维导图一般不需要出现过多的字。
1.3 可选:使用常规方法总结其他上课内容。
1.Arrays.sort的具体用法
2.第四次作业讲解
3.不同接口之间的区别
2. 书面作业
2.1. 面向对象设计大作业(团队项目,2-3人)
内容:继续完善上次的大作业。
注意: 再过几次课要讲Java图形界面编程,到时候要将该系统升级为图形界面。系统的业务逻辑部分应该变化不大,变化较大的地方的是输入与输出部分。编码的时候,请不要将处理输入(System.in)与输出(System.out)的代码与某个业务处理方法绑死。
2.1.1 项目简介表格:
团队成员表格
学生 | 负责任务 | 博客地址 |
---|---|---|
吴雅思 | 商品类、购物车类 | 吴雅思的博客链接 |
林诗乐 | 账户类、收货人类 | 林诗乐的博客链接 |
2.1.2 系统常用功能框架图
2.1.3 系统总体类图
2.1.4 购物车、商品、系统关键代码截图(主要截取自己负责的部分)
结果:
2.1.5 其他:跟上次的系统比较,系统的设计等有何修改。其他感想。
修改:购物车不应该继承商品类,一些类的命名也规范了一点。写了一些主函数,我想做商品的添加操作,但是!!!添加一直实现不了,有个问题解决了好久一直不行,百度类似的问题是出在输入的数据上,但是我感觉输入这一块的数据类型都是对的。。。。
感想:发现写一个小系统都好难,比如商品件数到底应该放在商品类还是购物车里,这些小细节都需要考虑。目前还没有实现能够脱离控制台的代码,,慢慢写吧。。。。。
2.2.abstract:阅读GuessGame抽象类的设计与使用源代码
2.2.1 Guess改造前代码很简单,而改造后的代码使用了抽象类、抽象方法,看起来更复杂,这样的改造到底有什么好处呢?
好处:阅读改造前代码可以发现未定义抽象类时代码与控制台是绑定的,而改造成抽象类后,不需要与控制台绑定,在其他地方也能实现这段代码。
2.2.2 GuessGame(改造后).java中有抽象方法与非抽象方法,你觉得抽象类中什么样的方法应该声明为abstract,什么方法不需要声明为abstract直接实现即可。
应该声明为抽象方法:方法的类型暂时不确定,该方法放到子类中才会有具体的代码。
直接实现:方法的类型是确定的,且该方法的实现是具体的,不抽象。
2.2.3 重要:在这个例子中,变化的是什么,不变的是什么?尝试结合abstract等概念进行说明。
变化: Guess定义成了抽象类,print()、println()、nextInt()都是抽象方法,利用抽象类,猜数字游戏可以在很多种环境下执行,不受控制台限制。
不变:随机数字的操作并不改变
2.3. Comparable与Comparator
2.3.1 结合PTA 7-1中你的代码说明,为什么某个类实现了Comparable接口,就可以直接使用Arrays.sort对该类型的数组进行排序?
查找资料:
Arrays类有一个静态方法sort,利用这个方法可以传入我们要排序的数组进去排序,因为我们传入的是一个数组的引用,所以排序完成的结果也通过这个引用来更改数组。对于整数、字符串排序,jdk提供了默认的实现,如果要对一个对象数组排序,则要自己实现 java.util.Comparator接口。
代码截取:
class PersonSortable implements Comparable<PersonSortable>{
public int compareTo(PersonSortable o){
if(name.compareTo(o.name)==0){
if(age>o.age)
return age-o.age;
if(age==o.age)
return 0;
else
return -1;
}
else return name.compareTo(o.name);
}
原因:通过编写接口方法,实现了对排序的要求,从而实现 java.util.Comparator接口,就能直接使用Arrays.sort。(这题不是很清楚)
2.3.2 结合PTA 7-2 中你的代码说明,有了Comparable接口为什么还需要Comparator接口呢?
原因:Comparable接口并不适用于多种方式的排序,而Comparator接口则适用于多种方式的排序。本题要求名字和年龄的排序,用Comparator接口。
2.3.3 以前的作业Shape, Rectangle,Cirlce
中,Shape类中什么方法应声明为abstract
?说出原因。
方法:getArea()
原因:并不知道getArea()方法的类型,定义为抽象类后就能在子类的代码中具体实现。
2.3.4 有很多Shape类型对象如Rectangle、Circle。希望使用Arrays.sort对他们进行排序,请写出相应代码。并简述应在哪个类上实现Comparable接口比较好?
相应代码:(本题有参考同学代码)
结果:
Comparable接口:shape是所有形状的父类,如果在shape类上实现接口,其他相应的子类都可以在各自的方法中用具体代码实现。
2.3.5 以3.4你编写的代码为例,简述面向Comparable接口编程、面向父类编程的好处。(注意:一定要结合自己编写的代码)
好处:面向接口编程可以不用管后台的数据是什么样的,有了共同的方法就可以操作。而面向父类编程可以使子类继承父类的基础上,对同一种方法有不同实现。例如本题的shape父类,它的其他子类,都有求周长排序的方法,但是实现起来是各不相同的。
2.4.面向接口案例分析
阅读Case-StudentDao.zip案例
2.4.1 a.画出类关系图
b.StudentDao接口有什么用?
作用:通过StudentDao接口,StudenDaoListImpl与StudentDaoArrayImp分别用各自的不同代码实现了接口中的三个函数。
2.4.2 StudenDaoListImpl与StudentDaoArrayImpl有何共同之处?有何区别?
共同之处:都使用了StudentDao接口,都有三个函数:
public boolean writeStudent(Student student);
public Student readStudent(String name);
public void diplayAllStudent();
区别:实现三个函数的代码是不一样的。
2.4.3 结合Test.java中的main函数,简述面向接口编程的好处。
好处:在main函数中定义了StudentDao接口的类,面向接口编程后,用户可以使用统一的接口,然后各自编写不同代码实现自己的需求。接口也是一种多态的体现。
2.5什么是面向接口编程?面向接口编程的是什么?
面向接口编程:从Test.java的代码分析:
StudentDao sdm = new StudentDaoArrayImpl(50);//使用数组实现
StudentDao sdm = new StudenDaoListImpl();//使用列表实现
可见面向接口编程应该是使用者用一个共同的方法使用接口,可以实现自己的需求,并且不需要知道接口里面具体是怎么操作的。(不知道理解的对不对?)
百度资料:
指的是系统每部分的实现和实现之间,通过interface所确定的协议来共同工作。
好处:使用者可以往后台写数据,无需考虑后台是什么,各自编写不同代码实现自己的需求。
3.码云及PTA
3.1. 码云代码提交记录
在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图
3.2 截图PTA题集完成情况图
需要有两张图(1. 排名图。2.PTA提交列表图)
排名图:
PTA提交列表图:
3.3 统计本周完成的代码量
周数 | 行数 | 新增行数 | 文件数 | 新增文件数 |
---|---|---|---|---|
1 | 57 | 57 | 5027 | 5027 |
2 | 400 | 400 | 10 | 10 |
3 | 508 | 508 | 23 | 13 |
5 | 609 | 609 | 31 | 8 |
6 | 612 | 612 | 40 | 9 |
201621123062《java程序设计》第五周作业总结的更多相关文章
- 201621123062《java程序设计》第九周作业总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 思维导图1:(对集合部分做了一些改动和细化) 思维导图2:(泛型) 1.2 选做:收集你认为有用的代码片段 代 ...
- 201521123025<java程序设计>第五周学习总结
1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...
- Java程序设计第五周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 2. 书面作业 **代码阅读:Child压缩包内源代码 Child.java源代 ...
- 201521123027<java程序设计>第14周作业总结
1.本周作业总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2.书面作业 Q1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自己 ...
- Java ee第五周作业
Applet: Applet是采用Java编程语言编写的小应用程序,该程序可以包含在 HTML(标准通用标记语言的一个应用)页中,与在页中包含图像的方式大致相同. 含有Applet的网页的HTML文件 ...
- Java第十五周作业
Cola公司的雇员分为以下若干类:(知识点:多态) [必做题]• 4.1 ColaEmployee :这是所有员工总的父类,属性:员工的姓名,员工的生日月份.方法:getSalary(int mont ...
- Java程序设计(五)作业
题目1:Lisa正在编写一个能够计算三科--数学.英语.程序设计基础--平均成绩(平均成绩=三科总成绩/3)和智育成绩(智育成绩=三科总成绩*0.7)的程序.由于两个成绩的获得都要先计算总成绩,因此她 ...
- 2017-2018-1 JAVA实验站 第四、五周作业
2017-2018-1 JAVA实验站 第四.五周作业 JAVA实验站小组成员 学号 名字 职务 20162318 张泰毓 组长 20162303 石亚鑫 组员 20162304 张浩林 组员 201 ...
- 201671010140. 2016-2017-2 《Java程序设计》java学习第五周
java学习第五周心得体会 本周,是Java学习第五周,随着时间推移,随着课本内容的推进,我们接触到的程序也开始变得越来越复杂,不再是二三章那些用来练手的小程序了,这一点,在我们的例题运 ...
- 20175313 张黎仙《Java程序设计》第九周学习总结
目录 学号 20175313 <Java程序设计>第九周学习总结 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 学号 20 ...
随机推荐
- java自带的类压缩和下载,以及递归删除动态的文件(shiro项目中来的十)
详见项目,不用借助于任何外在的jar包,通过jre自带的实现.
- 前台序列化传过来的值,后台获取之后封装到map当中,让后在转化成json格式,最后在把json里面的参数里面的某一个值进行分割,最后在存到json格式的数据中去。
一,html脚本 <script type="text/javascript"> $(function() { $(".btn-submit").c ...
- ajax就收data的参数
一,变量 "data": ${cityData},//数据(必传) 二,json data:{"state":"Front"},
- 干货:JVM 堆内存和非堆内存
堆和非堆内存 按照官方的说法:"Java 虚拟机具有一个堆(Heap),堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟机启动时创建的."" ...
- Docker学习——Lepus部署
Lepus部署(基于docker)及mysql慢查询配置 介绍 Lepus是一个由Python+PHP开发的数据库企业级监控系统,可用于MySQL/Oracle/MongoDB/Redis 下载镜像 ...
- [BZOJ1610] [Usaco2008 Feb] Line连线游戏 (set)
Description Farmer John最近发明了一个游戏,来考验自命不凡的贝茜.游戏开始的时 候,FJ会给贝茜一块画着N (2 <= N <= 200)个不重合的点的木板,其中第i ...
- Python中的栈溢出及解决办法
1.递归函数 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示, ...
- Nginx负载均衡——扩展功能(NGINX Plus)
本文主要是介绍了NGINX Plus的相关功能,横跨了NGINX Plus R5/R6/R7/R9等各个不同版本的更新. 什么是NGINX Plus? 顾名思义,就是Nginx的加强版或者扩展版.我们 ...
- 8Manage:聚焦研发企业利器——研发项目管理
[导读]研发是企业保持核心竞争力的基石.那么对于研发企业来说,如何计划研发项目目标.保障项目的稳定运行,如何分配人才.资源,把控项目成本呢?这些一系列问题摆在管理者面前!引入8Manage研发项目管理 ...
- C++通过COM接口操作PPT
一. 背景 在VS环境下,开发C++代码操作PPT,支持对PPT模板的修改.包括修改文本标签.图表.表格.满足大多数软件生成PPT报告的要求,先手工创建好PPT模板,在程序中修改模板数据. 二. 开发 ...