201521123077 《Java程序设计》第6周学习总结
1. 本周学习总结
1.1 向对象思想总结
1.2 使用常规方法总结其他上课内容
- Swing一些常用组件的基本用法
- Object类的clone及hashcode方法
2. 书面作业
1. clone方法
1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么?
注意参数类型也要完全一样不然会变成重载
然后重写该方法的时候如果是想要实现深拷贝 要对每一个属性都要实现深拷贝才行
1.2 自己设计类时,一般对什么样的方法使用protected进行修饰?以作业Shape为例说明。
仅想让该类的子类及同包内的类访问该类的属性的时候可以用protected修饰。
Shape类:
包内子类:
包外子类:
包内类:
包外类:
1.3 在test1包中编写简单的Employee类,在test2包中新建一个TestProtected类,并在main中尝试调用test1包中的Employee的clone方法克隆一个新对象,能否成功?为什么?
继承的clone方法是protected的,所以包外不可见,所以不能用。
2.使用匿名类与Lambda表达式改写题集面向对象2-进阶-多态接口内部类题目5-2
匿名内部类:
3. 分析下列代码,回答shapeComparator所指向的对象与Comparator接口有什么关系?
Comparator<Shape> shapeComparator = new Comparator<Shape>(){
@Override
public int compare(Shape o1, Shape o2){
//你的代码
}
};
shapeComparator所指向的对象是实现了Comparator接口并将Shape类型参数化传入泛型化的Comparator<>接口的对象。
4. GUI中的事件处理
4.1 写出事件处理模型中最重要的几个关键词。
- 事件源
- 事件监听器
- 事件业务处理
4.2 使用代码与注释,证明你理解了事件处理模型。
点击按钮后出现文本
5. 结对编程:面向对象设计(大作业2-非常重要,未完成-2)
5.1 尝试使用图形界面改写。
初始界面:
按价格排序:
条件查找:
对查找内容排序:
按照销量:
多用户独立购物车以及密码暴力试错保护限于时间没有做显性演示
5.2 给出两人在码云上同一项目的提交记录截图。
5.3 与上周相比,项目的主要改动是什么?
将用户交互部分做了改变
e.g.
(System.in)->actionListener
(sysout)->setText
3. 码云上代码提交记录及PTA实验总结
题目集:jmu-Java-04-面向对象2-进阶-多态接口内部类
4. 实验总结
5-3
pop方法不需要将top位置原来的值清空,只需要将“top指针”下移
5-4
在类里通过方法返回对一个内部类的引用是一种很优雅的方式