201521123008《Java程序设计》第六周实验总结
1.本周学习总结

2.书面作业
1.clone方法
1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么?
因为被protected修饰,所以不能在类的外部使用。如果在自定义的类中覆盖clone方法,需要把protected改为public
1.2 自己设计类时,一般对什么样的方法使用protected进行修饰?以作业Shape为例说明。
protected的访问范围是同包/子类/本类,如果当希望这个方法只被同包和子类访问时,可以使用protected。在Shape中,getPerimeter与getArea这两种方法可以。
1.3 在test1包中编写简单的Employee类,在test2包中新建一个TestProtected类,并在main中尝试调用test1包中的Employee的clone方法克隆一个新对象,能否成功?为什么?
不能。需要把clone方法的protected改成public。
2.使用匿名类与Lambda表达式改写题集面向对象2-进阶-多态接口内部类的题目5-2
仅需粘贴关键代码与运行结果,图片不要太大。
匿名类
Comparator<PersonSortable2> NameComparator = new Comparator<PersonSortable2>(){
@Override
public int compare(PersonSortable2 o1, PersonSortable2 o2) {
if(!o1.getName().equals(o2.getName())){
if(o1.getName().compareTo(o2.getName())>0)
return 1;
else
return -1;
}
return 0;
}
};
Comparator<PersonSortable2> AgeComparator = new Comparator<PersonSortable2>(){
@Override
public int compare(PersonSortable2 o1, PersonSortable2 o2) {
if(!(o1.getAge()==o2.getAge())){
if(o1.getAge()>o2.getAge())
return 1;
else
return -1;
}
return 0;
}
};
Lambda
Comparator<PersonSortable2> AgeComparator = (o1,o2)->{
if(!(o1.getAge()==o2.getAge())){
if(o1.getAge()>o2.getAge())
return 1;
else
return -1;
}
return 0;
};
Comparator<PersonSortable2> NameComparator = (o1,o2)->{
if(!o1.getName().equals(o2.getName())){
if(o1.getName().compareTo(o2.getName())>0)
return 1;
else
return -1;
}
return 0;
};

3.分析下列代码,回答shapeComparator所指向的对象与Comparator接口有什么关系?
Comparator<Shape> shapeComparator = new Comparator<Shape>() {
@Override
public int compare(Shape o1, Shape o2) {
//你的代码
}
};
shapeComparator所指向的对象操作了Comparator这个接口,使用匿名内部类实现了Comparator接口并重写了其中的抽象方法。
4.GUI中的事件处理
4.1 写出事件处理模型中最重要的几个关键词。
事件/事件源/事件监听器
4.2 使用代码与注释,证明你理解了事件处理模型。
public class MainGUI {
public static void main(String[] args) {
JFrame f = new JFrame("Test");//
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton b = new JButton("Press Me!");//事件源
b.addActionListener(new ButtonHandler());//注册监听器
f.add(b);//
f.setSize(200, 100);//
f.setVisible(true);//
}
private static class ButtonHandler implements ActionListener{//监听器
public void actionPerformed(ActionEvent e) {
System.out.println("Action occurred");
System.out.println(e.getSource());//获得事件源
}
}
}
5.结对编程:面向对象设计(大作业2-非常重要,未完成-2)
继续完善上周的项目作业。考核点如下:
5.1 尝试使用图形界面改写。
5.2 给出两人在码云上同一项目的提交记录截图。

5.3 与上周相比,项目的主要改动是什么?
成功组队= =
3.码云
4.PTA
5.3 用栈来存储输入的值,所以可以建一个标记top,记录栈顶位置,看看是否栈空或栈满。
5.4 在类中要使用内部静态类方法的时候,可以类名.方法名调用。
201521123008《Java程序设计》第六周实验总结的更多相关文章
- 201521123008<java程序设计>第三周实验总结
1.本周学习总结 2.书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; pub ...
- 201521123008《Java程序设计》第二周实验总结
本周学习总结 ① 数据类型,其中char是占用两个字节的内存空间,其他和以前学过的一样.除了十进制位,整型也可以用八进制或者十六进制表示.浮点型不精确. ②运算符,算术,赋值,逻辑,位运算. ③str ...
- 201771010123汪慧和《面向对象程序设计JAVA》第六周实验总结
一.理论部分: 1.继承 用已有类来构建新类的一种机制.当定义了一个新类继承了一个类时,这个新类就继承了这个类的方法和域,同时在新类中添加新的方法和域以适应新的情况. 2.类.超类.子类 (1)类继承 ...
- 201521123122 《java程序设计》第九周学习总结
201521123122 <java程序设计>第九周实验总结 1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 常用异常 题目5-1 1.1 截图 ...
- 201621123005《Java程序设计》第九次实验总结
201621123005<Java程序设计>第九周实验总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 ...
- 201521123122 《java程序设计》 第六周实验总结
201521123122 <java程序设计>第六周实验总结 1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想 ...
- 20175314 《Java程序设计》第九周学习总结
20175314 <Java程序设计>第九周学习总结 教材学习内容总结 根据课本的介绍下载了MySQL和Navicat for MySQL并成功对后者进行破解 MySQL客户端管理工具(如 ...
- 20165235 祁瑛 2018-4 《Java程序设计》第九周学习总结
20165235 祁瑛 2018-4 <Java程序设计>第九周学习总结 教材学习内容总结 URL类 UR类是java.net包中的一个重要类,使用URL创建的对象的应用程序称作称作客户端 ...
- 20155312 2016-2017-2 《Java程序设计》第九周学习总结
20155312 2016-2017-2 <Java程序设计>第九周学习总结 课堂内容总结 两个类有公用的东西放在父类里. 面向对象的三要素 封装 继承 多态:用父类声明引用,子类生成对象 ...
- 20155227 2016-2017-2 《Java程序设计》第九周学习总结
20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...
随机推荐
- HTML 基本标签01
↑ !DOCTYPE 文档类型声明:让浏览器,按html5的标准对代码进行解释与执行 文档类型声明必不可少,而且,必须放在文档最上方 如果不写文档类型声明,浏览器会默认按照兼容模式运行,可能会出现不明 ...
- 前端到后台ThinkPHP开发整站(2)
我这次使用的ThinkPHP版本是:3.2.3版本,还有会使用到一个弹出层插件,叫 layer,官网地址是:http://layer.layui.com/.废话不多说,进入撸码环节. 1.通用方法编写 ...
- PhantomJS 与python的结合
待完善 一.简介 PhantomJS是一个基于webkit的JavaScript API.它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码.任何你可 ...
- SpringMVC注解@RequestMapping之produces属性导致的406错误
废话不多说,各位,直接看图说话,敢吗?这个问题网上解决的办法写的狠是粗糙,甚至说这次我干掉它完全是靠巧合,但是也不否认网上针对406错误给出的解决方式,可能是多种情况下出现的406吧?我这次的流程就是 ...
- 深入分析动态管理Fragment
一.Fragment与Activity的关系 要理解动态管理Fragment首先要理解一下Fragment与Activity的关系 Fragment可以理解为将Activity划分为若干个片段,Fra ...
- Oracle12c 在windonServer2012中安装的步骤
oracle12c在windownServer2012中安装步骤 前期工作:<这个必须要安装:而且c$的C必须大写> 第一步:控制面板>所有控制面板项>管理工具>服务& ...
- PCA主成分分析
特征降维就是降低特征矩阵维数,减少噪声和冗余,减少过度拟合. Principal factor analysis简称PCA,其思想是将n维特征映射到k维上(k<n),这k维是全新的正交特征.这k ...
- AngularJS 动画总结
对读过的几篇文章的总结,尽量保证逻辑性,不断补充.精简.更正. 后面会列出参考文章地址,方便以后取用.感谢各位作者以及翻译者. AngularJS 动画思考 一.如何使用 1)我们需要构建什么 2)如 ...
- 【MD5解密】免费帮大家解MD5
除睡觉时间外最慢2小时内回复!结合各种国内外免费收费引擎和高效彩虹表,需要解的在评论下方评论即可
- 美国总统大选,黑客组织“匿名者”(Anonymous)也来凑热闹
美国总统大选,黑客组织"匿名者"(Anonymous)也来凑热闹 黑客组织"匿名者"向美国总统共和党候选人唐纳德•特朗普宣战,发誓将从4月1日开始向其发动大规模 ...