201521123064 《Java程序设计》第6周学习总结
1. 本章学习总结
1.1 面向对象学习暂告一段落,请使用思维导图,以封装、继承、多态为核心概念画一张思维导图,对面向对象思想进行一个总结。
注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖面向对象的核心内容即可。
注2:颜色要少、连线不要复杂,必要的时候要在连线上进行说明。

1.2 可选:使用常规方法总结其他上课内容。
① 学会使用Netbeans设计图形界面,并其进行编程,使程序可达我们所需的功能。
② 熟悉嵌套类、内部类、匿名内部类的使用,尤其是匿名内部类,它在图形界面设计中十分常用。有关匿名内部类,见第5周学习总结的1.2总结。
发现一篇好的博文:Java 内部类种类及使用解析
2. 书面作业
- Q1:clone方法
- 1.1 Object对象中的
clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么?
答:① 应确保自定义的类继承Object类,因为被protected关键字修饰的方法,只能被其同包的类或是子类所继承。
② 在自定义类中的clone方法必须和Object中的clone方法保持相同的名称、相同的参数、相同的返回类型。
- 1.2 自己设计类时,一般对什么样的方法使用protected进行修饰?以作业Shape为例说明。
答:① protected修饰的方法或属性,除同包的类或是其子孙类以外不可被访问。
② 以作业Shape为例,Circle类和Rectangle类为Shape类的子类,这两个类中都包含getPerimeter()与getArea()方法,所以在Shape类中,将Perimeter()与getArea()方法使用protected进行修饰。
- 1.3 在test1包中编写简单的
Employee类,在test2包中新建一个TestProtected类,并在main中尝试调用test1包中的Employee的clone方法克隆一个新对象,能否成功?为什么?
答:① 不能成功。
② 理由:test1包中的Employee类 ↓↓↓
test2包中的TestProtected类,会报错 ↓↓↓
若将test2包中的TestProtected类加上throws CloneNotSupportedException,即可编译成功 ↓↓↓
- Q2:使用匿名类与Lambda表达式改写题集 面向对象2-进阶-多态接口内部类 的题目5-2
仅需粘贴关键代码与运行结果,图片不要太大。
答:① 使用匿名类改写 ↓↓↓
// 按姓名排序
Comparator<PersonSortable> NameComparator = new Comparator<PersonSortable>() {
@Override
public int compare(PersonSortable o1, PersonSortable o2) {
return o1.getName().compareTo(o2.getName());
}
};
// 按年龄排序
Comparator<PersonSortable> AgeComparator = new Comparator<PersonSortable>() {
@Override
public int compare(PersonSortable o1, PersonSortable o2) {
return o1.getAge() - o2.getAge();
}
};
② 使用Lambda表达式改写 ↓↓↓
Comparator<PersonSortable> NameComparator = (o1, o2) -> o1.getName().compareTo(o2.getName()); // 按姓名排序
Comparator<PersonSortable> AgeComparator = (o1, o2) -> o1.getAge() - o2.getAge(); // 按年龄排序
③ 运行结果均为 ↓↓↓
Q3:分析下列代码,回答
shapeComparator所指向的对象与Comparator接口有什么关系?Comparator<Shape> shapeComparator = new Comparator<Shape>() {
@Override
public int compare(Shape o1, Shape o2) {
//你的代码
}
};
答:shapeComparator所指向的对象实现了Comparator接口,以下为JDK中对Comparator接口的方法摘要!
所以当shapeComparator所指向的对象可以调用Comparator接口的compare方法和equals方法。
- Q4:GUI中的事件处理
- 4.1 写出事件处理模型中最重要的几个关键词。
答:事件(Event):用户在GUI组件上进行的操作,如鼠标单击、输入文字、关闭窗口等。
事件源(Event Source):能够产生事件的GUI组件对象,如按钮、文本框等。
事件监听器(Event Listener):事件源触发一个事件,但是事件源本身并不处理该事件,而是委托给事件监听器来处理。
参考:Java GUI 事件处理机制总结
- 4.2 使用代码与注释,证明你理解了事件处理模型。
答:以本周博客作业Q5为例
输入账户密码后,点击“Login”即可弹出“Menu”,如图 ↓↓↓
其关键代码如下 ↓↓↓
if (username.equals("jmu2015064") && java.util.Arrays.equals(pass, password)){
new Menu().setVisible(true); //弹出Menu窗口
}
Q5:结对编程:面向对象设计(大作业2-非常重要,未完成-2) (还在修改。。)
继续完善上周的项目作业。考核点如下:5.1 尝试使用图形界面改写。
5.2 给出两人在码云上同一项目的提交记录截图。
5.3 与上周相比,项目的主要改动是什么?
参考资料:
结对编程参考资料
使用Processon画图
视频-使用Netbeans编写GUI
重要:Swing实验参考资料
JTable用法,用于呈现表格数据
Swing相关文章
答:① 码云提交记录:
② 购物流程:
先进入登录页面
输入账户密码后,点击“Login”即可弹出“Menu”
点击“搜索商品”后进入搜索页面
(搜索商品后添加商品那里没写好,还在修改中。。)
点击“购物车”后进入购物车页面
《大学英语》和《算法导论》一共170.9元!
③ 与上周相比,项目主要加入了一个登录界面。需要注意的是,Username是字符串类型,Password是字符数组类型。
④ 我和小伙伴的博客链接,如下 ↓↓↓
| 郭炜埕 | 姚佳希 | 项目地址 |
|---|---|---|
| 郭炜埕的博客链接 | 姚佳希的博客链接 | ShoppingCart码云地址 |
3. 码云上代码提交记录及PTA实验总结
题目集:jmu-Java-04-面向对象2-进阶-多态接口内部类
3.1. 码云代码提交记录

3.2. PTA实验
函数(选做:4-1)、编程(5-3, 5-4)
一定要有实验总结
- 5-3:得分点有两个,输出格式和判断空栈满栈。要注意的是栈中的push、pop及empty方法需要考虑空栈满栈的情况,可定义top变量指向栈顶。
- 5-4:较5-3来说更为简单,需要注意寻找最大最小值的方法的返回值。
201521123064 《Java程序设计》第6周学习总结的更多相关文章
- 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 ...
随机推荐
- python细碎语法点
在系统入门python有的是没有遇到,有的是学过了缺乏使用没有记住,就开篇随笔记录这些基础的语法点,随时更新. with...as... 也就是说with是一个控制流语句,跟if/for/while/ ...
- 手脱UPX(堆栈平衡原理)
一开始看到pushad F8执行直到只有esp,eip,变化 在esp处follow in dump 下硬件访问断点 F9运行在硬件断点停下 到达一个长跳转(跳到OEP) 完成 ----------- ...
- Android护眼模式功能小记
最近自己在做一个小说阅读器,看到某阅有护眼模式功能,别人都有,我怎么能没有? 现在这功能已经不稀奇了,很多手机都带有这个功能. 实现起来不难,用一个蒙版遮在界面上面就行. 至于蒙版,可以用Window ...
- 米扑科技的开源项目:sitemap-php 自动生成网站地图
米扑科技旗下的产品,近期正在做SEO网站优化,其中子需求之一是调研实现了网站地图(sitemap.xml) 封装简化了许多功能模块,现在分享出来,源代码可在Github上下载,有简单的示例. Gith ...
- 二分图最大匹配:匈牙利算法的python实现
二分图匹配是很常见的算法问题,一般用匈牙利算法解决二分图最大匹配问题,但是目前网上绝大多数都是C/C++实现版本,没有python版本,于是就用python实现了一下深度优先的匈牙利算法,本文使用的是 ...
- Go语言的切片
Go 语言切片(Slice) Go 语言切片是对数组的抽象. Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片("动态数组" ...
- Java 图片处理解决方案:ImageMagick 快速入门
一.ImageMagick介绍 ImageMagick是一个免费的创建.编辑.合成图片的软件,可以实现图片切割.颜色替换.图片缩略图.图片水印等各种效果.ImageMagick是免费开源软件,支持大多 ...
- Linux学习总结(七)—— CentOS软件包管理:脚本安装
脚本安装就是软件编写者写好一个shell脚本或者java脚本,你只需要输入一些简单的信息便可直接安装.这种安装方式方便简单,类似于Windows下软件的安装方式. 下面以webmin的安装为例讲解脚本 ...
- .net项目架构改造之搭建基于java环境配置一览【上】
最近公司做了一个项目,需要嵌套在千牛的客户端上,项目代码必须上阿里的聚石塔,全程采用基于docker的自动化部署,我们的项目是基于.net架构.很遗憾 的是基于windows的docker上部署在访问 ...
- 【Zookeeper】3.4.9 基本配置
[hadoop@master1 ~]$ cat zookeeper/conf/zoo.cfg # The number of milliseconds of each tick 每个心跳的时长 单位为 ...









