201521123119《Java程序设计》第5周学习总结
1. 本周学习总结
1.1 尝试使用思维导图总结有关多态与接口的知识点。

2. 书面作业
代码阅读:Child压缩包内源代码
Q1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误。并分析输出结果。
不能翻译通过。

改正后输出结果如下:

Q1.2 另外一个包中的OutOfParentPackage.java,能否编译通过?提示什么错误?分析原因。
不能通过。

因为Parent类没有定义权限关键词,所以权限范围默认是包范围,不同包类的不可存取。
Q1.3 回答:如果为了访问到protected修饰的属性或方法应该怎么办?
protected 在同一个包里和 public 类型一样,其他类也是能够访问到的。如果在不同包里的 protected 类型的成员变量就只能通过子类来访问。
abstract进阶:阅读GuessGame抽象类的设计与使用源代码
Q2.1 Guess改造前代码很简单,而改造后的代码使用了抽象类、抽象方法看起来很复杂,那这样的改造到底有什么好处呢?
改造前,未使用抽象类,只能控制台输出;改造后,使用了抽象类,既可以在控制台输出,也可以使用对话框图形界面等输入。
Q2.2 如果想将该游戏改造成图形界面,应该进行一些什么操作?
可以新建一个图形界面的类去继承前面所提到的抽象类。
Q2.3 结合该例子,你觉得什么时候应该使用abstract?
abstract(抽象)修饰符,可以修饰类。会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。如果是只想将一类对象的共同点抽象出来,成为代表该类共同特征的一个抽象概念,就可以用abstract修饰这个类的这个特征当作父类。
Q2.4 重要:在这个例子中,变化的是什么,不变的是什么?尝试结合abstract、继承等概念进行说明。
变化的是环境,不变的是这个抽象类
Comparable与Comparator
Q3.1 描述Comparable接口的用途。为什么某个类实现了Comparable接口就可以直接使用Arrays.sort对其进行排序?
Comparable接口是排序接口,此接口强行对实现它的每个类的对象进行整体排序,并重写Comparable接口中的compareTo。实现此接口的对象列表(和数组)可以通过 Collections.sort (和 Arrays.sort )进行自动排序。 Arrays.sort(); //sort方法可以实现对对象数组排序,但是必须实现 Comparable接口。 Arrays.sort(); //sort方法可以实现对对象数组排序,但是必须实现 Comparable接口。
Q3.2 有了Comparable接口为什么还需要Comparator接口呢?
Comparable和Comparator都是用来实现集合中元素的比较、排序的。Comparable是在集合内部定义的方法实现的排序,位于java.lang下,而Comparator是在集合外部实现的排序,位于java.util下。
面向接口案例分析
阅读Case-StudentDao.zip案例
Q4.1 画出类关系图,描述每个类与接口的作用。

Q4.2 StudenDaoListImpl与StudentDaoArrayImpl有何区别?
StudenDaoListImpl使用的是列表(List),而StudentDaoArrayImpl的是使用数组。
Q什么是面向接口编程?面向接口编程的好处是什么?
面向接口编程就是先把需求提取出来,作为接口。需求具体实现通过该接口的实现类来完成。当需求变化时,只需编写新的实现类不需要改写现有代码,减少对系统的影响。
Q结对编程:面向对象设计(大作业2-非常重要)
内容:使用Java代码完成上周做的面向对象设计大作业,需要有初步界面。实现的功能尽量简单,少而精,只包含必要的功能,不要追求高大全。
写出:类图(尽量精简,不用太多子类,两个即可)、系统常用功能描述、关键代码与界面
形式: 两人依托码云合作完成。请在这里贴出你们的学号、姓名与任务分工。
注意: 再过几次课要讲Java图形界面编程,到时候要将该系统升级为图形界面。系统的业务逻辑部分应该变化不大,变化大的是输入与输出部分。所以编码的时候,输入(Scanner)与输出(System.out)的代码,请不要将其与某个业务处理函数绑死。
选做加分: 给出两人在码云上同一项目的提交记录截图,额外加分。注:两个人在码云上新建一个项目。
3. 码云上代码提交记录及PTA实验总结
题目集:jmu-Java-04-面向对象2-进阶-多态接口内部类
3.1. 码云代码提交记录
在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图
3.2. PTA实验
实验总结:使用Comparable接口,运用compareTo的方法。它的返回值直接决定排序是升序还是降序。
想要运用compareTo需要用到Comparable接口。
使用Comparable或者Comparator接口前需要查询相关文档,了解使用方法。
201521123119《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 ...
随机推荐
- Quartus16.0如何使用TCL脚本
前言 TCL脚本语言在EDA工具中使用频繁,本文主要介绍使用TCL脚本文件进行引脚分配,避免手动分配以及分配出错: 流程 1.准备好你的TCL脚本文件,举个栗子(脚本文件内容): 2.在Quartus ...
- mycat学习心得
最近老大要求我们学习mycat,并运用到实际项目中.现在简单分享下自己的学习心得,也算是只是积累吧. 什么是mycat? 用我的话理解就是:mycat是一种技术,采用mycat后可以提高程序的速度,也 ...
- TX2(1)--Jetson TX2 刷机并安装JetPack3.0
一般而言,刷机是在Ubuntu16.04的系统上进行,本人在ubuntu16.04系统上进行了初步的测试,暂时存在一些问题,因此建议首先配备一台Ubuntu14.04的host主机(不建议使用虚拟机) ...
- shiro
1 权限管理 1.1 什么是权限管理 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己 ...
- 十分钟帮你搭建专业的内容付费平台(APP/网站)
内容付费变现时代,从商业运营角度出发,全面付费系统多方面支付节点,强化优质付费价格核心,ThinkSNS+(简称TS+),专注于帮助创业者变现,抓取社群经济,让您拥有专属的知识变现软件系统. 一.内容 ...
- SDWebImage4.0.0 源码解析
在开发iOS的客户端应用时,经常需要从服务器下载图片,虽然系统提供了下载工具:NSData.NSURLSession等等方法,但是考虑到图片下载过程中,需要考虑的因素比较多,比如:异步下载.图片缓存. ...
- [UWP]了解模板化控件(5.1):TemplatePart vs. VisualState
1. TemplatePart vs. VisualState 在前面两篇文章中分别使用了TemplatePart及VisualState的方式实现了相同的功能,其中明显VisualState的方式更 ...
- Deadclock on calling async methond
Issue: HttpClient.GetAsync(…) never returns when using await/async Related Posts: http://stackoverfl ...
- Python第一天---第一个Python程序
1.我的环境是windows下,需要安装notepad++,安装Python2,配置环境变量(百度下可以见) 2.打开cmd窗口-----输入I: [输入要在哪个磁盘存储python代码(我的在I: ...
- 文本排序的王者:玩透sort命令
本文目录: 1.1 选项说明 1.2 sort示例 1.3 深入研究sort sort是排序工具,它完美贯彻了Unix哲学:"只做一件事,并做到完美".它的排序功能极强.极完整,只 ...